@tricoteuses/assemblee 1.9.12 → 1.10.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 (237) hide show
  1. package/README.md +0 -5
  2. package/lib/api.js +1 -1
  3. package/lib/api.mjs +1 -1
  4. package/lib/bugs/acteur-00010/plugin.test.js +5 -5
  5. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  6. package/lib/bugs/acteur-00010.js +17 -18
  7. package/lib/bugs/acteur-00010.mjs +1 -1
  8. package/lib/bugs/agenda-00002/plugin.test.js +6 -6
  9. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  10. package/lib/bugs/agenda-00002.js +31 -32
  11. package/lib/bugs/agenda-00002.mjs +3 -3
  12. package/lib/bugs/agenda-00008/plugin.test.js +5 -5
  13. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  14. package/lib/bugs/agenda-00008.js +17 -18
  15. package/lib/bugs/agenda-00008.mjs +1 -1
  16. package/lib/bugs/agenda-00011/plugin.test.js +10 -10
  17. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  18. package/lib/bugs/agenda-00011.js +28 -29
  19. package/lib/bugs/agenda-00011.mjs +3 -3
  20. package/lib/bugs.js +27 -29
  21. package/lib/bugs.mjs +3 -3
  22. package/lib/cleaners/actes_legislatifs.js +5 -5
  23. package/lib/cleaners/actes_legislatifs.mjs +1 -1
  24. package/lib/cleaners/acteurs.js +5 -5
  25. package/lib/cleaners/acteurs.mjs +1 -1
  26. package/lib/cleaners/amendements.js +5 -5
  27. package/lib/cleaners/amendements.mjs +1 -1
  28. package/lib/cleaners/debats.js +1 -1
  29. package/lib/cleaners/debats.mjs +1 -1
  30. package/lib/cleaners/documents.js +5 -5
  31. package/lib/cleaners/documents.mjs +1 -1
  32. package/lib/cleaners/dossiers_legislatifs.js +5 -5
  33. package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
  34. package/lib/cleaners/index.d.ts +0 -1
  35. package/lib/cleaners/index.js +1 -8
  36. package/lib/cleaners/index.mjs +1 -2
  37. package/lib/cleaners/organes.js +2 -2
  38. package/lib/cleaners/organes.mjs +1 -1
  39. package/lib/cleaners/questions.js +1 -1
  40. package/lib/cleaners/questions.mjs +1 -1
  41. package/lib/cleaners/reunions.js +5 -5
  42. package/lib/cleaners/reunions.mjs +1 -1
  43. package/lib/cleaners/scrutins.js +8 -8
  44. package/lib/cleaners/scrutins.mjs +1 -1
  45. package/lib/cleaners/xml.js +8 -8
  46. package/lib/cleaners/xml.mjs +1 -1
  47. package/lib/datasets.d.ts +1 -13
  48. package/lib/datasets.js +10 -29
  49. package/lib/datasets.mjs +2 -21
  50. package/lib/dates.js +3 -4
  51. package/lib/dates.mjs +1 -1
  52. package/lib/dossiers_legislatifs.js +8 -8
  53. package/lib/dossiers_legislatifs.mjs +1 -1
  54. package/lib/file_systems.js +15 -14
  55. package/lib/file_systems.mjs +3 -3
  56. package/lib/git.js +5 -5
  57. package/lib/git.mjs +1 -1
  58. package/lib/index.d.ts +1 -0
  59. package/lib/index.js +8 -1
  60. package/lib/index.mjs +2 -1
  61. package/lib/inserters.js +4 -4
  62. package/lib/inserters.mjs +1 -1
  63. package/lib/loaders.d.ts +0 -5
  64. package/lib/loaders.js +255 -299
  65. package/lib/loaders.mjs +1 -13
  66. package/lib/logger.js +1 -1
  67. package/lib/logger.mjs +1 -1
  68. package/lib/organes.js +1 -1
  69. package/lib/organes.mjs +1 -1
  70. package/lib/parsers/documents.js +11 -11
  71. package/lib/parsers/documents.mjs +1 -1
  72. package/lib/parsers/index.d.ts +1 -0
  73. package/lib/parsers/index.js +8 -1
  74. package/lib/parsers/index.mjs +2 -1
  75. package/lib/parsers/recherche_amendements.js +17 -15
  76. package/lib/parsers/recherche_amendements.mjs +1 -1
  77. package/lib/parsers/textes_lois.d.ts +22 -15
  78. package/lib/parsers/textes_lois.js +264 -752
  79. package/lib/parsers/textes_lois.mjs +249 -597
  80. package/lib/raw_types/acteurs_et_organes.js +9 -9
  81. package/lib/raw_types/acteurs_et_organes.mjs +1 -1
  82. package/lib/raw_types/agendas.d.ts +1 -0
  83. package/lib/raw_types/agendas.js +11 -10
  84. package/lib/raw_types/agendas.mjs +3 -2
  85. package/lib/raw_types/amendements.js +9 -9
  86. package/lib/raw_types/amendements.mjs +1 -1
  87. package/lib/raw_types/debats.js +9 -9
  88. package/lib/raw_types/debats.mjs +1 -1
  89. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -0
  90. package/lib/raw_types/dossiers_legislatifs.js +13 -9
  91. package/lib/raw_types/dossiers_legislatifs.mjs +5 -1
  92. package/lib/raw_types/questions.js +9 -9
  93. package/lib/raw_types/questions.mjs +1 -1
  94. package/lib/raw_types/scrutins.js +9 -9
  95. package/lib/raw_types/scrutins.mjs +1 -1
  96. package/lib/scripts/bugs_helper.js +25 -26
  97. package/lib/scripts/bugs_helper.mjs +3 -3
  98. package/lib/scripts/clean_reorganized_data.js +256 -245
  99. package/lib/scripts/clean_reorganized_data.mjs +18 -29
  100. package/lib/scripts/diff_amendements.js +9 -8
  101. package/lib/scripts/diff_amendements.mjs +1 -1
  102. package/lib/scripts/document_dossiers_legislatifs.js +24 -27
  103. package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
  104. package/lib/scripts/get_today_reunions.js +3 -2
  105. package/lib/scripts/get_today_reunions.mjs +1 -1
  106. package/lib/scripts/merge_scrutins.js +9 -8
  107. package/lib/scripts/merge_scrutins.mjs +1 -1
  108. package/lib/scripts/parse_textes_lois.js +6 -5
  109. package/lib/scripts/parse_textes_lois.mjs +1 -1
  110. package/lib/scripts/process_open_dataset.d.ts +0 -2
  111. package/lib/scripts/process_open_dataset.js +19 -19
  112. package/lib/scripts/process_open_dataset.mjs +3 -5
  113. package/lib/scripts/raw_types_from_amendements.d.ts +0 -1
  114. package/lib/scripts/raw_types_from_amendements.js +122 -198
  115. package/lib/scripts/raw_types_from_amendements.mjs +105 -60
  116. package/lib/scripts/reorganize_data.js +14 -15
  117. package/lib/scripts/reorganize_data.mjs +3 -3
  118. package/lib/scripts/retrieve_deputes_photos.js +40 -31
  119. package/lib/scripts/retrieve_deputes_photos.mjs +10 -2
  120. package/lib/scripts/retrieve_documents.d.ts +1 -1
  121. package/lib/scripts/retrieve_documents.js +230 -138
  122. package/lib/scripts/retrieve_documents.mjs +87 -38
  123. package/lib/scripts/retrieve_open_data.js +27 -30
  124. package/lib/scripts/retrieve_open_data.mjs +5 -8
  125. package/lib/scripts/retrieve_pending_amendments.js +14 -14
  126. package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
  127. package/lib/scripts/retrieve_senateurs_photos.js +10 -10
  128. package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
  129. package/lib/scripts/retrieve_textes_lois.js +17 -15
  130. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  131. package/lib/scripts/shared/cli_helpers.d.ts +11 -0
  132. package/lib/scripts/shared/cli_helpers.js +13 -2
  133. package/lib/scripts/shared/cli_helpers.mjs +12 -1
  134. package/lib/scripts/test_iter_load.js +5 -19
  135. package/lib/scripts/test_iter_load.mjs +2 -9
  136. package/lib/scripts/test_load.js +2 -2
  137. package/lib/scripts/test_load.mjs +1 -1
  138. package/lib/scripts/test_load_big_files.js +2 -2
  139. package/lib/scripts/test_load_big_files.mjs +1 -1
  140. package/lib/scripts/validate_json.js +17 -18
  141. package/lib/scripts/validate_json.mjs +3 -3
  142. package/lib/shared_types/codes_actes.d.ts +2 -0
  143. package/lib/shared_types/codes_actes.js +3 -1
  144. package/lib/shared_types/codes_actes.mjs +3 -1
  145. package/lib/strings.js +1 -1
  146. package/lib/strings.mjs +1 -1
  147. package/lib/types/acteurs_et_organes.js +9 -9
  148. package/lib/types/acteurs_et_organes.mjs +1 -1
  149. package/lib/types/agendas.d.ts +1 -0
  150. package/lib/types/agendas.js +11 -10
  151. package/lib/types/agendas.mjs +3 -2
  152. package/lib/types/amendements.js +9 -9
  153. package/lib/types/amendements.mjs +1 -1
  154. package/lib/types/debats.js +9 -9
  155. package/lib/types/debats.mjs +1 -1
  156. package/lib/types/dossiers_legislatifs.d.ts +14 -0
  157. package/lib/types/dossiers_legislatifs.js +51 -9
  158. package/lib/types/dossiers_legislatifs.mjs +43 -1
  159. package/lib/types/legislatures.js +1 -1
  160. package/lib/types/legislatures.mjs +1 -1
  161. package/lib/types/questions.js +9 -9
  162. package/lib/types/questions.mjs +1 -1
  163. package/lib/types/scrutins.js +9 -9
  164. package/lib/types/scrutins.mjs +1 -1
  165. package/lib/urls.js +2 -2
  166. package/lib/urls.mjs +1 -1
  167. package/package.json +14 -20
  168. package/lib/cleaners/textes_loi.d.ts +0 -1
  169. package/lib/cleaners/textes_loi.js +0 -12
  170. package/lib/cleaners/textes_loi.mjs +0 -5
  171. package/lib/examples/PIONANR5L15B0020/input.d.ts +0 -2
  172. package/lib/examples/PIONANR5L15B0020/input.js +0 -10
  173. package/lib/examples/PIONANR5L15B0020/input.mjs +0 -193
  174. package/lib/examples/PIONANR5L15B0020/input.ts +0 -193
  175. package/lib/examples/PIONANR5L15B0020/loi.json +0 -26
  176. package/lib/examples/PIONANR5L15B0020/loi_populated.json +0 -29
  177. package/lib/examples/PIONANR5L15B0020/meta.json +0 -28
  178. package/lib/examples/PIONANR5L15B0020/motifs.json +0 -5
  179. package/lib/examples/PIONANR5L15B0020/motifs_populated.json +0 -6
  180. package/lib/examples/PIONANR5L15B0020/sommaire.json +0 -3
  181. package/lib/examples/PRJLANR5L16B0914/input.d.ts +0 -2
  182. package/lib/examples/PRJLANR5L16B0914/input.js +0 -10
  183. package/lib/examples/PRJLANR5L16B0914/input.mjs +0 -322
  184. package/lib/examples/PRJLANR5L16B0914/input.ts +0 -322
  185. package/lib/examples/PRJLANR5L16B0914/loi.json +0 -14
  186. package/lib/examples/PRJLANR5L16B0914/loi_populated.json +0 -20
  187. package/lib/examples/PRJLANR5L16B0914/meta.json +0 -35
  188. package/lib/examples/PRJLANR5L16B0914/motifs.json +0 -4
  189. package/lib/examples/PRJLANR5L16B0914/motifs_populated.json +0 -5
  190. package/lib/examples/PRJLANR5L16B0914/sommaire.json +0 -3
  191. package/lib/examples/PRJLANR5L16B2014/README.md +0 -2
  192. package/lib/examples/PRJLANR5L16B2014/input.d.ts +0 -2
  193. package/lib/examples/PRJLANR5L16B2014/input.js +0 -10
  194. package/lib/examples/PRJLANR5L16B2014/input.mjs +0 -577
  195. package/lib/examples/PRJLANR5L16B2014/input.ts +0 -577
  196. package/lib/examples/PRJLANR5L16B2014/loi.json +0 -369
  197. package/lib/examples/PRJLANR5L16B2014/meta.json +0 -31
  198. package/lib/examples/PRJLANR5L16B2014/motifs.json +0 -5
  199. package/lib/examples/PRJLANR5L16B2014/sommaire.json +0 -51
  200. package/lib/examples/PRJLANR5L16B2424/alineas.json +0 -44
  201. package/lib/examples/PRJLANR5L16B2424/input.d.ts +0 -2
  202. package/lib/examples/PRJLANR5L16B2424/input.js +0 -10
  203. package/lib/examples/PRJLANR5L16B2424/input.mjs +0 -322
  204. package/lib/examples/PRJLANR5L16B2424/input.ts +0 -322
  205. package/lib/examples/PRJLANR5L16B2424/loi.json +0 -74
  206. package/lib/examples/PRJLANR5L16B2424/loi_populated.json +0 -87
  207. package/lib/examples/PRJLANR5L16B2424/meta.json +0 -31
  208. package/lib/examples/PRJLANR5L16B2424/motifs.json +0 -4
  209. package/lib/examples/PRJLANR5L16B2424/motifs_populated.json +0 -5
  210. package/lib/examples/PRJLANR5L16B2424/sommaire.json +0 -3
  211. package/lib/examples/PRJLANR5L16B2462/input.d.ts +0 -2
  212. package/lib/examples/PRJLANR5L16B2462/input.js +0 -10
  213. package/lib/examples/PRJLANR5L16B2462/input.mjs +0 -1308
  214. package/lib/examples/PRJLANR5L16B2462/input.ts +0 -1308
  215. package/lib/examples/PRJLANR5L16B2462/loi.json +0 -74
  216. package/lib/examples/PRJLANR5L16B2462/loi_populated.json +0 -310
  217. package/lib/examples/PRJLANR5L16B2462/meta.json +0 -29
  218. package/lib/examples/PRJLANR5L16B2462/motifs.json +0 -6
  219. package/lib/examples/PRJLANR5L16B2462/motifs_populated.json +0 -6
  220. package/lib/examples/PRJLANR5L16B2462/sommaire.json +0 -50
  221. package/lib/examples/README.md +0 -3
  222. package/lib/raw_types/textes_loi.d.ts +0 -93
  223. package/lib/raw_types/textes_loi.js +0 -429
  224. package/lib/raw_types/textes_loi.mjs +0 -378
  225. package/lib/schemas/texte_loi/Alinea.json +0 -36
  226. package/lib/schemas/texte_loi/ExposeMotifs.json +0 -24
  227. package/lib/schemas/texte_loi/MetaDonnees.json +0 -126
  228. package/lib/schemas/texte_loi/ProjetLoi.json +0 -64
  229. package/lib/schemas/texte_loi/Sommaire.json +0 -48
  230. package/lib/schemas/texte_loi/TexteLoi.json +0 -225
  231. package/lib/schemas/texte_loi/TexteLoiPartiel.json +0 -237
  232. package/lib/scripts/process_textes_loi_dataset.d.ts +0 -7
  233. package/lib/scripts/process_textes_loi_dataset.js +0 -373
  234. package/lib/scripts/process_textes_loi_dataset.mjs +0 -239
  235. package/lib/types/textes_loi.d.ts +0 -94
  236. package/lib/types/textes_loi.js +0 -429
  237. package/lib/types/textes_loi.mjs +0 -378
package/lib/loaders.js CHANGED
@@ -41,7 +41,6 @@ exports.iterLoadAssembleeOrganes = iterLoadAssembleeOrganes;
41
41
  exports.iterLoadAssembleeQuestions = iterLoadAssembleeQuestions;
42
42
  exports.iterLoadAssembleeReunions = iterLoadAssembleeReunions;
43
43
  exports.iterLoadAssembleeScrutins = iterLoadAssembleeScrutins;
44
- exports.iterLoadAssembleeTexteLoi = iterLoadAssembleeTexteLoi;
45
44
  exports.loadAssembleeData = loadAssembleeData;
46
45
  exports.loadAssembleeDataFromBigFiles = loadAssembleeDataFromBigFiles;
47
46
  exports.loadAssembleeDocumentFile = loadAssembleeDocumentFile;
@@ -90,20 +89,19 @@ var _legislatures = require("./types/legislatures");
90
89
  var _scrutins = require("./types/scrutins");
91
90
  var _questions = require("./types/questions");
92
91
  var _debats = require("./types/debats");
93
- var _textes_loi = require("./types/textes_loi");
94
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
95
- 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 e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
96
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
92
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
93
+ 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 e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
94
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
97
95
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
98
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
99
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
100
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
101
- 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); }
102
- 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; }
103
- function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = new RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
104
- 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); }
105
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } /// Load data from files
106
- var documentUidRegex = /*#__PURE__*/_wrapRegExp(/^((ACIN|ALCN|AVCE|AVIS|DECL|ETDI|LETT|MESS|MION|PION|PNRE|PRJL|RAPP|RINF|RION)(AN|CG|SN)(R\d+)[LS](\d+)(B|BTA|BTC|TAP)(\d+)(\x2D.*)?)|((MION)(AN|SN)(R\d+)[LS](\d+)\x2DN(\d+))$/, {
96
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
97
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
98
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, 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 o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
99
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
100
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
101
+ function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
102
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
103
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } /// Load data from files
104
+ var documentUidRegex = /*#__PURE__*/_wrapRegExp(/^((ACIN|ALCN|AVCE|AVIS|DECL|ETDI|LETT|MESS|MION|PION|PNRE|PRJL|RAPP|RINF|RION)(AN|CG|SN)(R\d+)[LS](\d+)(B|BTA|BTC|TAP)(\d+)(-.*)?)|((MION)(AN|SN)(R\d+)[LS](\d+)-N(\d+))$/, {
107
105
  documentType: 2,
108
106
  chambre: 3,
109
107
  republique: 4,
@@ -608,48 +606,6 @@ function iterLoadAssembleeComptesRendus(dataDir, legislature) {
608
606
  }, _callee10, null, [[1, 11, 14, 17]]);
609
607
  })();
610
608
  }
611
- function iterLoadAssembleeTexteLoi(dataDir, legislature) {
612
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
613
- return /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {
614
- var _iterator12, _step12, _step12$value, texteLoi, datasetLegislature;
615
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
616
- while (1) switch (_context11.prev = _context11.next) {
617
- case 0:
618
- _iterator12 = _createForOfIteratorHelper(iterLoadAssembleeItems(dataDir, legislature, _datasets.datasets.textesLoi, _textes_loi.Convert.toTextesLoi, [], "json", options));
619
- _context11.prev = 1;
620
- _iterator12.s();
621
- case 3:
622
- if ((_step12 = _iterator12.n()).done) {
623
- _context11.next = 9;
624
- break;
625
- }
626
- _step12$value = _step12.value, texteLoi = _step12$value.item, datasetLegislature = _step12$value.datasetLegislature;
627
- _context11.next = 7;
628
- return {
629
- texteLoi: texteLoi,
630
- datasetLegislature: datasetLegislature
631
- };
632
- case 7:
633
- _context11.next = 3;
634
- break;
635
- case 9:
636
- _context11.next = 14;
637
- break;
638
- case 11:
639
- _context11.prev = 11;
640
- _context11.t0 = _context11["catch"](1);
641
- _iterator12.e(_context11.t0);
642
- case 14:
643
- _context11.prev = 14;
644
- _iterator12.f();
645
- return _context11.finish(14);
646
- case 17:
647
- case "end":
648
- return _context11.stop();
649
- }
650
- }, _callee11, null, [[1, 11, 14, 17]]);
651
- })();
652
- }
653
609
 
654
610
  /// Load data from split files.
655
611
  /// Deprecated: Use iterLoad... iterators instead.
@@ -660,11 +616,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
660
616
  var acteurByUid = {};
661
617
  var organeByUid = {};
662
618
  if (enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes) {
663
- var _iterator13 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
664
- _step13;
619
+ var _iterator12 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
620
+ _step12;
665
621
  try {
666
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
667
- var dataset = _step13.value;
622
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
623
+ var dataset = _step12.value;
668
624
  if (dataset.ignoreForWeb) {
669
625
  continue;
670
626
  }
@@ -672,11 +628,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
672
628
  continue;
673
629
  }
674
630
  var datasetDir = _path["default"].join(dataDir, dataset.filename.replace(/\.json$/, "_nettoye"));
675
- var _iterator14 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["acteurs"])),
676
- _step14;
631
+ var _iterator13 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["acteurs"])),
632
+ _step13;
677
633
  try {
678
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
679
- var acteurSplitPath = _step14.value;
634
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
635
+ var acteurSplitPath = _step13.value;
680
636
  var acteurFilename = acteurSplitPath[acteurSplitPath.length - 1];
681
637
  if (!acteurFilename.endsWith(".json")) {
682
638
  continue;
@@ -695,15 +651,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
695
651
  }
696
652
  }
697
653
  } catch (err) {
698
- _iterator14.e(err);
654
+ _iterator13.e(err);
699
655
  } finally {
700
- _iterator14.f();
656
+ _iterator13.f();
701
657
  }
702
- var _iterator15 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["organes"])),
703
- _step15;
658
+ var _iterator14 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetDir, ["organes"])),
659
+ _step14;
704
660
  try {
705
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
706
- var organeSplitPath = _step15.value;
661
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
662
+ var organeSplitPath = _step14.value;
707
663
  var organeFilename = organeSplitPath[organeSplitPath.length - 1];
708
664
  if (!organeFilename.endsWith(".json")) {
709
665
  continue;
@@ -722,26 +678,26 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
722
678
  }
723
679
  }
724
680
  } catch (err) {
725
- _iterator15.e(err);
681
+ _iterator14.e(err);
726
682
  } finally {
727
- _iterator15.f();
683
+ _iterator14.f();
728
684
  }
729
685
  }
730
686
  } catch (err) {
731
- _iterator13.e(err);
687
+ _iterator12.e(err);
732
688
  } finally {
733
- _iterator13.f();
689
+ _iterator12.f();
734
690
  }
735
691
  }
736
692
  var reunionByUid = {};
737
693
  var reunionsByDay = {};
738
694
  var reunionsByDossierUid = {};
739
695
  if (enabledDatasets & _datasets.EnabledDatasets.Agendas) {
740
- var _iterator16 = _createForOfIteratorHelper(_datasets.datasets.agendas),
741
- _step16;
696
+ var _iterator15 = _createForOfIteratorHelper(_datasets.datasets.agendas),
697
+ _step15;
742
698
  try {
743
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
744
- var _dataset = _step16.value;
699
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
700
+ var _dataset = _step15.value;
745
701
  if (_dataset.ignoreForWeb) {
746
702
  continue;
747
703
  }
@@ -749,11 +705,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
749
705
  continue;
750
706
  }
751
707
  var _datasetDir = _path["default"].join(dataDir, _dataset.filename.replace(/\.json$/, "_nettoye"));
752
- var _iterator17 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir)),
753
- _step17;
708
+ var _iterator16 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir)),
709
+ _step16;
754
710
  try {
755
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
756
- var reunionSplitPath = _step17.value;
711
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
712
+ var reunionSplitPath = _step16.value;
757
713
  var reunionFilename = reunionSplitPath[reunionSplitPath.length - 1];
758
714
  if (!reunionFilename.endsWith(".json")) {
759
715
  continue;
@@ -769,24 +725,24 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
769
725
  if (reunionByUid[reunion.uid] === undefined) {
770
726
  reunionByUid[reunion.uid] = reunion;
771
727
  }
772
- var _day = reunion.timestampDebut.toISOString().split("T")[0];
773
- var reunionsAtDay = reunionsByDay[_day];
728
+ var day = reunion.timestampDebut.toISOString().split("T")[0];
729
+ var reunionsAtDay = reunionsByDay[day];
774
730
  if (reunionsAtDay === undefined) {
775
- reunionsAtDay = reunionsByDay[_day] = [];
731
+ reunionsAtDay = reunionsByDay[day] = [];
776
732
  }
777
733
  reunionsAtDay.push(reunion);
778
734
  var odj = reunion.odj;
779
735
  if (odj !== undefined) {
780
- var _iterator18 = _createForOfIteratorHelper(odj.pointsOdj || []),
781
- _step18;
736
+ var _iterator17 = _createForOfIteratorHelper(odj.pointsOdj || []),
737
+ _step17;
782
738
  try {
783
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
784
- var pointOdj = _step18.value;
785
- var _iterator19 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
786
- _step19;
739
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
740
+ var pointOdj = _step17.value;
741
+ var _iterator18 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
742
+ _step18;
787
743
  try {
788
- for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
789
- var dossierLegislatifRef = _step19.value;
744
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
745
+ var dossierLegislatifRef = _step18.value;
790
746
  var reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef];
791
747
  if (reunionsAtDossierUid === undefined) {
792
748
  reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef] = [];
@@ -794,37 +750,37 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
794
750
  reunionsAtDossierUid.push(reunion);
795
751
  }
796
752
  } catch (err) {
797
- _iterator19.e(err);
753
+ _iterator18.e(err);
798
754
  } finally {
799
- _iterator19.f();
755
+ _iterator18.f();
800
756
  }
801
757
  }
802
758
  } catch (err) {
803
- _iterator18.e(err);
759
+ _iterator17.e(err);
804
760
  } finally {
805
- _iterator18.f();
761
+ _iterator17.f();
806
762
  }
807
763
  }
808
764
  }
809
765
  } catch (err) {
810
- _iterator17.e(err);
766
+ _iterator16.e(err);
811
767
  } finally {
812
- _iterator17.f();
768
+ _iterator16.f();
813
769
  }
814
770
  }
815
771
  } catch (err) {
816
- _iterator16.e(err);
772
+ _iterator15.e(err);
817
773
  } finally {
818
- _iterator16.f();
774
+ _iterator15.f();
819
775
  }
820
776
  }
821
777
  var amendementByUid = {};
822
778
  if (enabledDatasets & _datasets.EnabledDatasets.Amendements) {
823
- var _iterator20 = _createForOfIteratorHelper(_datasets.datasets.amendements),
824
- _step20;
779
+ var _iterator19 = _createForOfIteratorHelper(_datasets.datasets.amendements),
780
+ _step19;
825
781
  try {
826
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
827
- var _dataset2 = _step20.value;
782
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
783
+ var _dataset2 = _step19.value;
828
784
  if (_dataset2.ignoreForWeb) {
829
785
  continue;
830
786
  }
@@ -832,11 +788,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
832
788
  continue;
833
789
  }
834
790
  var _datasetDir2 = _path["default"].join(dataDir, _dataset2.filename.replace(/\.json$/, "_nettoye"));
835
- var _iterator21 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir2)),
836
- _step21;
791
+ var _iterator20 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir2)),
792
+ _step20;
837
793
  try {
838
- for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
839
- var amendementSplitPath = _step21.value;
794
+ for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
795
+ var amendementSplitPath = _step20.value;
840
796
  var amendementFilename = amendementSplitPath[amendementSplitPath.length - 1];
841
797
  if (!amendementFilename.endsWith(".json")) {
842
798
  continue;
@@ -854,15 +810,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
854
810
  }
855
811
  }
856
812
  } catch (err) {
857
- _iterator21.e(err);
813
+ _iterator20.e(err);
858
814
  } finally {
859
- _iterator21.f();
815
+ _iterator20.f();
860
816
  }
861
817
  }
862
818
  } catch (err) {
863
- _iterator20.e(err);
819
+ _iterator19.e(err);
864
820
  } finally {
865
- _iterator20.f();
821
+ _iterator19.f();
866
822
  }
867
823
  }
868
824
  var documentByUid = {};
@@ -870,11 +826,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
870
826
  var dossierParlementaireByTitreChemin = {};
871
827
  var dossierParlementaireByUid = {};
872
828
  if (enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs) {
873
- var _iterator22 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
874
- _step22;
829
+ var _iterator21 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
830
+ _step21;
875
831
  try {
876
- for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
877
- var _dataset3 = _step22.value;
832
+ for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
833
+ var _dataset3 = _step21.value;
878
834
  if (_dataset3.ignoreForWeb) {
879
835
  continue;
880
836
  }
@@ -882,11 +838,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
882
838
  continue;
883
839
  }
884
840
  var _datasetDir3 = _path["default"].join(dataDir, _dataset3.filename.replace(/\.json$/, "_nettoye"));
885
- var _iterator23 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["documents"])),
886
- _step23;
841
+ var _iterator22 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["documents"])),
842
+ _step22;
887
843
  try {
888
- for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
889
- var documentSplitPath = _step23.value;
844
+ for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
845
+ var documentSplitPath = _step22.value;
890
846
  var documentFilename = documentSplitPath[documentSplitPath.length - 1];
891
847
  if (!documentFilename.endsWith(".json")) {
892
848
  continue;
@@ -904,15 +860,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
904
860
  }
905
861
  }
906
862
  } catch (err) {
907
- _iterator23.e(err);
863
+ _iterator22.e(err);
908
864
  } finally {
909
- _iterator23.f();
865
+ _iterator22.f();
910
866
  }
911
- var _iterator24 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["dossiers"])),
912
- _step24;
867
+ var _iterator23 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir3, ["dossiers"])),
868
+ _step23;
913
869
  try {
914
- for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
915
- var dossierSplitPath = _step24.value;
870
+ for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
871
+ var dossierSplitPath = _step23.value;
916
872
  var dossierFilename = dossierSplitPath[dossierSplitPath.length - 1];
917
873
  if (!dossierFilename.endsWith(".json")) {
918
874
  continue;
@@ -937,15 +893,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
937
893
  }
938
894
  }
939
895
  } catch (err) {
940
- _iterator24.e(err);
896
+ _iterator23.e(err);
941
897
  } finally {
942
- _iterator24.f();
898
+ _iterator23.f();
943
899
  }
944
900
  }
945
901
  } catch (err) {
946
- _iterator22.e(err);
902
+ _iterator21.e(err);
947
903
  } finally {
948
- _iterator22.f();
904
+ _iterator21.f();
949
905
  }
950
906
  }
951
907
  var photoByUid = {};
@@ -983,11 +939,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
983
939
  }
984
940
  var scrutinByUid = {};
985
941
  if (enabledDatasets & _datasets.EnabledDatasets.Scrutins) {
986
- var _iterator25 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
987
- _step25;
942
+ var _iterator24 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
943
+ _step24;
988
944
  try {
989
- for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
990
- var _dataset4 = _step25.value;
945
+ for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
946
+ var _dataset4 = _step24.value;
991
947
  if (_dataset4.ignoreForWeb) {
992
948
  continue;
993
949
  }
@@ -995,11 +951,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
995
951
  continue;
996
952
  }
997
953
  var _datasetDir4 = _path["default"].join(dataDir, _dataset4.filename.replace(/\.json$/, "_nettoye"));
998
- var _iterator26 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir4)),
999
- _step26;
954
+ var _iterator25 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir4)),
955
+ _step25;
1000
956
  try {
1001
- for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
1002
- var scrutinSplitPath = _step26.value;
957
+ for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
958
+ var scrutinSplitPath = _step25.value;
1003
959
  var scrutinFilename = scrutinSplitPath[scrutinSplitPath.length - 1];
1004
960
  if (!scrutinFilename.endsWith(".json")) {
1005
961
  continue;
@@ -1017,24 +973,24 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1017
973
  }
1018
974
  }
1019
975
  } catch (err) {
1020
- _iterator26.e(err);
976
+ _iterator25.e(err);
1021
977
  } finally {
1022
- _iterator26.f();
978
+ _iterator25.f();
1023
979
  }
1024
980
  }
1025
981
  } catch (err) {
1026
- _iterator25.e(err);
982
+ _iterator24.e(err);
1027
983
  } finally {
1028
- _iterator25.f();
984
+ _iterator24.f();
1029
985
  }
1030
986
  }
1031
987
  var questionByUid = {};
1032
988
  if (enabledDatasets & _datasets.EnabledDatasets.Questions) {
1033
- var _iterator27 = _createForOfIteratorHelper(_datasets.datasets.questions),
1034
- _step27;
989
+ var _iterator26 = _createForOfIteratorHelper(_datasets.datasets.questions),
990
+ _step26;
1035
991
  try {
1036
- for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
1037
- var _dataset5 = _step27.value;
992
+ for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
993
+ var _dataset5 = _step26.value;
1038
994
  if (_dataset5.ignoreForWeb) {
1039
995
  continue;
1040
996
  }
@@ -1042,11 +998,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1042
998
  continue;
1043
999
  }
1044
1000
  var _datasetDir5 = _path["default"].join(dataDir, _dataset5.filename.replace(/\.json$/, "_nettoye"));
1045
- var _iterator28 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir5)),
1046
- _step28;
1001
+ var _iterator27 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir5)),
1002
+ _step27;
1047
1003
  try {
1048
- for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
1049
- var questionSplitPath = _step28.value;
1004
+ for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
1005
+ var questionSplitPath = _step27.value;
1050
1006
  var questionFilename = questionSplitPath[questionSplitPath.length - 1];
1051
1007
  if (!questionFilename.endsWith(".json")) {
1052
1008
  continue;
@@ -1064,24 +1020,24 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1064
1020
  }
1065
1021
  }
1066
1022
  } catch (err) {
1067
- _iterator28.e(err);
1023
+ _iterator27.e(err);
1068
1024
  } finally {
1069
- _iterator28.f();
1025
+ _iterator27.f();
1070
1026
  }
1071
1027
  }
1072
1028
  } catch (err) {
1073
- _iterator27.e(err);
1029
+ _iterator26.e(err);
1074
1030
  } finally {
1075
- _iterator27.f();
1031
+ _iterator26.f();
1076
1032
  }
1077
1033
  }
1078
1034
  var compteRenduByUid = {};
1079
1035
  if (enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances) {
1080
- var _iterator29 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1081
- _step29;
1036
+ var _iterator28 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1037
+ _step28;
1082
1038
  try {
1083
- for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
1084
- var _dataset6 = _step29.value;
1039
+ for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
1040
+ var _dataset6 = _step28.value;
1085
1041
  if (_dataset6.ignoreForWeb) {
1086
1042
  continue;
1087
1043
  }
@@ -1089,11 +1045,11 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1089
1045
  continue;
1090
1046
  }
1091
1047
  var _datasetDir6 = _path["default"].join(dataDir, _dataset6.filename.replace(/\.json$/, "_nettoye"));
1092
- var _iterator30 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir6)),
1093
- _step30;
1048
+ var _iterator29 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_datasetDir6)),
1049
+ _step29;
1094
1050
  try {
1095
- for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
1096
- var compteRenduPath = _step30.value;
1051
+ for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
1052
+ var compteRenduPath = _step29.value;
1097
1053
  var compteRenduFilename = compteRenduPath[compteRenduPath.length - 1];
1098
1054
  if (!compteRenduFilename.endsWith(".json")) {
1099
1055
  continue;
@@ -1111,15 +1067,15 @@ function loadAssembleeData(dataDir, enabledDatasets, legislature) {
1111
1067
  }
1112
1068
  }
1113
1069
  } catch (err) {
1114
- _iterator30.e(err);
1070
+ _iterator29.e(err);
1115
1071
  } finally {
1116
- _iterator30.f();
1072
+ _iterator29.f();
1117
1073
  }
1118
1074
  }
1119
1075
  } catch (err) {
1120
- _iterator29.e(err);
1076
+ _iterator28.e(err);
1121
1077
  } finally {
1122
- _iterator29.f();
1078
+ _iterator28.f();
1123
1079
  }
1124
1080
  }
1125
1081
  return {
@@ -1149,11 +1105,11 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1149
1105
  var acteurByUid = {};
1150
1106
  var organeByUid = {};
1151
1107
  if (enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes) {
1152
- var _iterator31 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
1153
- _step31;
1108
+ var _iterator30 = _createForOfIteratorHelper(_datasets.datasets.acteursEtOrganes),
1109
+ _step30;
1154
1110
  try {
1155
- for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
1156
- var dataset = _step31.value;
1111
+ for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
1112
+ var dataset = _step30.value;
1157
1113
  if (dataset.ignoreForWeb) {
1158
1114
  continue;
1159
1115
  }
@@ -1168,52 +1124,52 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1168
1124
  encoding: "utf8"
1169
1125
  });
1170
1126
  var acteursEtOrganes = _acteurs_et_organes.Convert.toActeursEtOrganes(_json3);
1171
- var _iterator32 = _createForOfIteratorHelper(acteursEtOrganes.acteurs),
1172
- _step32;
1127
+ var _iterator31 = _createForOfIteratorHelper(acteursEtOrganes.acteurs),
1128
+ _step31;
1173
1129
  try {
1174
- for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {
1175
- var acteur = _step32.value;
1130
+ for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
1131
+ var acteur = _step31.value;
1176
1132
  // Keep the first existing "acteur", because the first wrapper is the most complete.
1177
1133
  if (acteurByUid[acteur.uid] === undefined) {
1178
1134
  acteurByUid[acteur.uid] = acteur;
1179
1135
  }
1180
1136
  }
1181
1137
  } catch (err) {
1182
- _iterator32.e(err);
1138
+ _iterator31.e(err);
1183
1139
  } finally {
1184
- _iterator32.f();
1140
+ _iterator31.f();
1185
1141
  }
1186
- var _iterator33 = _createForOfIteratorHelper(acteursEtOrganes.organes),
1187
- _step33;
1142
+ var _iterator32 = _createForOfIteratorHelper(acteursEtOrganes.organes),
1143
+ _step32;
1188
1144
  try {
1189
- for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) {
1190
- var organe = _step33.value;
1145
+ for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {
1146
+ var organe = _step32.value;
1191
1147
  // Keep the first existing "organe", because the first wrapper is the most complete.
1192
1148
  if (organeByUid[organe.uid] === undefined) {
1193
1149
  organeByUid[organe.uid] = organe;
1194
1150
  }
1195
1151
  }
1196
1152
  } catch (err) {
1197
- _iterator33.e(err);
1153
+ _iterator32.e(err);
1198
1154
  } finally {
1199
- _iterator33.f();
1155
+ _iterator32.f();
1200
1156
  }
1201
1157
  }
1202
1158
  } catch (err) {
1203
- _iterator31.e(err);
1159
+ _iterator30.e(err);
1204
1160
  } finally {
1205
- _iterator31.f();
1161
+ _iterator30.f();
1206
1162
  }
1207
1163
  }
1208
1164
  var reunionByUid = {};
1209
1165
  var reunionsByDay = {};
1210
1166
  var reunionsByDossierUid = {};
1211
1167
  if (enabledDatasets & _datasets.EnabledDatasets.Agendas) {
1212
- var _iterator34 = _createForOfIteratorHelper(_datasets.datasets.agendas),
1213
- _step34;
1168
+ var _iterator33 = _createForOfIteratorHelper(_datasets.datasets.agendas),
1169
+ _step33;
1214
1170
  try {
1215
- for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) {
1216
- var _dataset7 = _step34.value;
1171
+ for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) {
1172
+ var _dataset7 = _step33.value;
1217
1173
  if (_dataset7.ignoreForWeb) {
1218
1174
  continue;
1219
1175
  }
@@ -1228,32 +1184,32 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1228
1184
  encoding: "utf8"
1229
1185
  });
1230
1186
  var agendas = _agendas.Convert.toAgendas(_json4);
1231
- var _iterator35 = _createForOfIteratorHelper(agendas.reunions),
1232
- _step35;
1187
+ var _iterator34 = _createForOfIteratorHelper(agendas.reunions),
1188
+ _step34;
1233
1189
  try {
1234
- for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) {
1235
- var reunion = _step35.value;
1190
+ for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) {
1191
+ var reunion = _step34.value;
1236
1192
  if (reunionByUid[reunion.uid] === undefined) {
1237
1193
  reunionByUid[reunion.uid] = reunion;
1238
1194
  }
1239
- var _day2 = reunion.timestampDebut.toISOString().split("T")[0];
1240
- var reunionsAtDay = reunionsByDay[_day2];
1195
+ var day = reunion.timestampDebut.toISOString().split("T")[0];
1196
+ var reunionsAtDay = reunionsByDay[day];
1241
1197
  if (reunionsAtDay === undefined) {
1242
- reunionsAtDay = reunionsByDay[_day2] = [];
1198
+ reunionsAtDay = reunionsByDay[day] = [];
1243
1199
  }
1244
1200
  reunionsAtDay.push(reunion);
1245
1201
  var odj = reunion.odj;
1246
1202
  if (odj !== undefined) {
1247
- var _iterator36 = _createForOfIteratorHelper(odj.pointsOdj || []),
1248
- _step36;
1203
+ var _iterator35 = _createForOfIteratorHelper(odj.pointsOdj || []),
1204
+ _step35;
1249
1205
  try {
1250
- for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) {
1251
- var pointOdj = _step36.value;
1252
- var _iterator37 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
1253
- _step37;
1206
+ for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) {
1207
+ var pointOdj = _step35.value;
1208
+ var _iterator36 = _createForOfIteratorHelper(pointOdj.dossiersLegislatifsRefs || []),
1209
+ _step36;
1254
1210
  try {
1255
- for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) {
1256
- var dossierLegislatifRef = _step37.value;
1211
+ for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) {
1212
+ var dossierLegislatifRef = _step36.value;
1257
1213
  var reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef];
1258
1214
  if (reunionsAtDossierUid === undefined) {
1259
1215
  reunionsAtDossierUid = reunionsByDossierUid[dossierLegislatifRef] = [];
@@ -1261,37 +1217,37 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1261
1217
  reunionsAtDossierUid.push(reunion);
1262
1218
  }
1263
1219
  } catch (err) {
1264
- _iterator37.e(err);
1220
+ _iterator36.e(err);
1265
1221
  } finally {
1266
- _iterator37.f();
1222
+ _iterator36.f();
1267
1223
  }
1268
1224
  }
1269
1225
  } catch (err) {
1270
- _iterator36.e(err);
1226
+ _iterator35.e(err);
1271
1227
  } finally {
1272
- _iterator36.f();
1228
+ _iterator35.f();
1273
1229
  }
1274
1230
  }
1275
1231
  }
1276
1232
  } catch (err) {
1277
- _iterator35.e(err);
1233
+ _iterator34.e(err);
1278
1234
  } finally {
1279
- _iterator35.f();
1235
+ _iterator34.f();
1280
1236
  }
1281
1237
  }
1282
1238
  } catch (err) {
1283
- _iterator34.e(err);
1239
+ _iterator33.e(err);
1284
1240
  } finally {
1285
- _iterator34.f();
1241
+ _iterator33.f();
1286
1242
  }
1287
1243
  }
1288
1244
  var amendementByUid = {};
1289
1245
  if (enabledDatasets & _datasets.EnabledDatasets.Amendements) {
1290
- var _iterator38 = _createForOfIteratorHelper(_datasets.datasets.amendements),
1291
- _step38;
1246
+ var _iterator37 = _createForOfIteratorHelper(_datasets.datasets.amendements),
1247
+ _step37;
1292
1248
  try {
1293
- for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
1294
- var _dataset8 = _step38.value;
1249
+ for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) {
1250
+ var _dataset8 = _step37.value;
1295
1251
  if (_dataset8.ignoreForWeb) {
1296
1252
  continue;
1297
1253
  }
@@ -1306,36 +1262,36 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1306
1262
  encoding: "utf8"
1307
1263
  });
1308
1264
  var amendements = _amendements.Convert.toAmendements(_json5);
1309
- var _iterator39 = _createForOfIteratorHelper(amendements.textesLegislatifs),
1310
- _step39;
1265
+ var _iterator38 = _createForOfIteratorHelper(amendements.textesLegislatifs),
1266
+ _step38;
1311
1267
  try {
1312
- for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
1313
- var texteLegislatif = _step39.value;
1314
- var _iterator40 = _createForOfIteratorHelper(texteLegislatif.amendements),
1315
- _step40;
1268
+ for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
1269
+ var texteLegislatif = _step38.value;
1270
+ var _iterator39 = _createForOfIteratorHelper(texteLegislatif.amendements),
1271
+ _step39;
1316
1272
  try {
1317
- for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
1318
- var amendement = _step40.value;
1273
+ for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
1274
+ var amendement = _step39.value;
1319
1275
  if (amendementByUid[amendement.uid] === undefined) {
1320
1276
  amendementByUid[amendement.uid] = amendement;
1321
1277
  }
1322
1278
  }
1323
1279
  } catch (err) {
1324
- _iterator40.e(err);
1280
+ _iterator39.e(err);
1325
1281
  } finally {
1326
- _iterator40.f();
1282
+ _iterator39.f();
1327
1283
  }
1328
1284
  }
1329
1285
  } catch (err) {
1330
- _iterator39.e(err);
1286
+ _iterator38.e(err);
1331
1287
  } finally {
1332
- _iterator39.f();
1288
+ _iterator38.f();
1333
1289
  }
1334
1290
  }
1335
1291
  } catch (err) {
1336
- _iterator38.e(err);
1292
+ _iterator37.e(err);
1337
1293
  } finally {
1338
- _iterator38.f();
1294
+ _iterator37.f();
1339
1295
  }
1340
1296
  }
1341
1297
  var documentByUid = {};
@@ -1343,11 +1299,11 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1343
1299
  var dossierParlementaireByTitreChemin = {};
1344
1300
  var dossierParlementaireByUid = {};
1345
1301
  if (enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs) {
1346
- var _iterator41 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
1347
- _step41;
1302
+ var _iterator40 = _createForOfIteratorHelper(_datasets.datasets.dossiersLegislatifs),
1303
+ _step40;
1348
1304
  try {
1349
- for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
1350
- var _dataset9 = _step41.value;
1305
+ for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
1306
+ var _dataset9 = _step40.value;
1351
1307
  if (_dataset9.ignoreForWeb) {
1352
1308
  continue;
1353
1309
  }
@@ -1362,25 +1318,25 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1362
1318
  encoding: "utf8"
1363
1319
  });
1364
1320
  var dossiersLegislatifs = _dossiers_legislatifs.Convert.toDossiersLegislatifs(_json6);
1365
- var _iterator42 = _createForOfIteratorHelper(dossiersLegislatifs.textesLegislatifs),
1366
- _step42;
1321
+ var _iterator41 = _createForOfIteratorHelper(dossiersLegislatifs.textesLegislatifs),
1322
+ _step41;
1367
1323
  try {
1368
- for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
1369
- var document = _step42.value;
1324
+ for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
1325
+ var document = _step41.value;
1370
1326
  if (documentByUid[document.uid] === undefined) {
1371
1327
  documentByUid[document.uid] = document;
1372
1328
  }
1373
1329
  }
1374
1330
  } catch (err) {
1375
- _iterator42.e(err);
1331
+ _iterator41.e(err);
1376
1332
  } finally {
1377
- _iterator42.f();
1333
+ _iterator41.f();
1378
1334
  }
1379
- var _iterator43 = _createForOfIteratorHelper(dossiersLegislatifs.dossiersParlementaires),
1380
- _step43;
1335
+ var _iterator42 = _createForOfIteratorHelper(dossiersLegislatifs.dossiersParlementaires),
1336
+ _step42;
1381
1337
  try {
1382
- for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) {
1383
- var dossier = _step43.value;
1338
+ for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
1339
+ var dossier = _step42.value;
1384
1340
  var titreDossier = dossier.titreDossier;
1385
1341
  if (titreDossier.senatChemin && dossierParlementaireBySenatChemin[titreDossier.senatChemin] === undefined) {
1386
1342
  dossierParlementaireBySenatChemin[titreDossier.senatChemin] = dossier;
@@ -1393,15 +1349,15 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1393
1349
  }
1394
1350
  }
1395
1351
  } catch (err) {
1396
- _iterator43.e(err);
1352
+ _iterator42.e(err);
1397
1353
  } finally {
1398
- _iterator43.f();
1354
+ _iterator42.f();
1399
1355
  }
1400
1356
  }
1401
1357
  } catch (err) {
1402
- _iterator41.e(err);
1358
+ _iterator40.e(err);
1403
1359
  } finally {
1404
- _iterator41.f();
1360
+ _iterator40.f();
1405
1361
  }
1406
1362
  }
1407
1363
  var photoByUid = {};
@@ -1440,11 +1396,11 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1440
1396
  }
1441
1397
  var scrutinByUid = {};
1442
1398
  if (enabledDatasets & _datasets.EnabledDatasets.Scrutins) {
1443
- var _iterator44 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
1444
- _step44;
1399
+ var _iterator43 = _createForOfIteratorHelper(_datasets.datasets.scrutins),
1400
+ _step43;
1445
1401
  try {
1446
- for (_iterator44.s(); !(_step44 = _iterator44.n()).done;) {
1447
- var _dataset10 = _step44.value;
1402
+ for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) {
1403
+ var _dataset10 = _step43.value;
1448
1404
  if (_dataset10.ignoreForWeb) {
1449
1405
  continue;
1450
1406
  }
@@ -1459,34 +1415,34 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1459
1415
  encoding: "utf8"
1460
1416
  });
1461
1417
  var scrutins = _scrutins.Convert.toScrutins(_json9);
1462
- var _iterator45 = _createForOfIteratorHelper(scrutins.scrutins),
1463
- _step45;
1418
+ var _iterator44 = _createForOfIteratorHelper(scrutins.scrutins),
1419
+ _step44;
1464
1420
  try {
1465
- for (_iterator45.s(); !(_step45 = _iterator45.n()).done;) {
1466
- var scrutin = _step45.value;
1421
+ for (_iterator44.s(); !(_step44 = _iterator44.n()).done;) {
1422
+ var scrutin = _step44.value;
1467
1423
  if (scrutinByUid[scrutin.uid] === undefined) {
1468
1424
  scrutinByUid[scrutin.uid] = scrutin;
1469
1425
  }
1470
1426
  }
1471
1427
  } catch (err) {
1472
- _iterator45.e(err);
1428
+ _iterator44.e(err);
1473
1429
  } finally {
1474
- _iterator45.f();
1430
+ _iterator44.f();
1475
1431
  }
1476
1432
  }
1477
1433
  } catch (err) {
1478
- _iterator44.e(err);
1434
+ _iterator43.e(err);
1479
1435
  } finally {
1480
- _iterator44.f();
1436
+ _iterator43.f();
1481
1437
  }
1482
1438
  }
1483
1439
  var questionByUid = {};
1484
1440
  if (enabledDatasets & _datasets.EnabledDatasets.Questions) {
1485
- var _iterator46 = _createForOfIteratorHelper(_datasets.datasets.questions),
1486
- _step46;
1441
+ var _iterator45 = _createForOfIteratorHelper(_datasets.datasets.questions),
1442
+ _step45;
1487
1443
  try {
1488
- for (_iterator46.s(); !(_step46 = _iterator46.n()).done;) {
1489
- var _dataset11 = _step46.value;
1444
+ for (_iterator45.s(); !(_step45 = _iterator45.n()).done;) {
1445
+ var _dataset11 = _step45.value;
1490
1446
  if (_dataset11.ignoreForWeb) {
1491
1447
  continue;
1492
1448
  }
@@ -1501,34 +1457,34 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1501
1457
  encoding: "utf8"
1502
1458
  });
1503
1459
  var questions = _questions.Convert.toQuestions(_json10);
1504
- var _iterator47 = _createForOfIteratorHelper(questions.questions),
1505
- _step47;
1460
+ var _iterator46 = _createForOfIteratorHelper(questions.questions),
1461
+ _step46;
1506
1462
  try {
1507
- for (_iterator47.s(); !(_step47 = _iterator47.n()).done;) {
1508
- var question = _step47.value;
1463
+ for (_iterator46.s(); !(_step46 = _iterator46.n()).done;) {
1464
+ var question = _step46.value;
1509
1465
  if (questionByUid[question.uid] === undefined) {
1510
1466
  questionByUid[question.uid] = question;
1511
1467
  }
1512
1468
  }
1513
1469
  } catch (err) {
1514
- _iterator47.e(err);
1470
+ _iterator46.e(err);
1515
1471
  } finally {
1516
- _iterator47.f();
1472
+ _iterator46.f();
1517
1473
  }
1518
1474
  }
1519
1475
  } catch (err) {
1520
- _iterator46.e(err);
1476
+ _iterator45.e(err);
1521
1477
  } finally {
1522
- _iterator46.f();
1478
+ _iterator45.f();
1523
1479
  }
1524
1480
  }
1525
1481
  var compteRenduByUid = {};
1526
1482
  if (enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances) {
1527
- var _iterator48 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1528
- _step48;
1483
+ var _iterator47 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
1484
+ _step47;
1529
1485
  try {
1530
- for (_iterator48.s(); !(_step48 = _iterator48.n()).done;) {
1531
- var _dataset12 = _step48.value;
1486
+ for (_iterator47.s(); !(_step47 = _iterator47.n()).done;) {
1487
+ var _dataset12 = _step47.value;
1532
1488
  if (_dataset12.ignoreForWeb) {
1533
1489
  continue;
1534
1490
  }
@@ -1543,25 +1499,25 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
1543
1499
  encoding: "utf8"
1544
1500
  });
1545
1501
  var comptesRendus = _debats.Convert.toComptesRendus(_json11);
1546
- var _iterator49 = _createForOfIteratorHelper(comptesRendus.comptesRendus),
1547
- _step49;
1502
+ var _iterator48 = _createForOfIteratorHelper(comptesRendus.comptesRendus),
1503
+ _step48;
1548
1504
  try {
1549
- for (_iterator49.s(); !(_step49 = _iterator49.n()).done;) {
1550
- var compteRendu = _step49.value;
1505
+ for (_iterator48.s(); !(_step48 = _iterator48.n()).done;) {
1506
+ var compteRendu = _step48.value;
1551
1507
  if (compteRenduByUid[compteRendu.uid] === undefined) {
1552
1508
  compteRenduByUid[compteRendu.uid] = compteRendu;
1553
1509
  }
1554
1510
  }
1555
1511
  } catch (err) {
1556
- _iterator49.e(err);
1512
+ _iterator48.e(err);
1557
1513
  } finally {
1558
- _iterator49.f();
1514
+ _iterator48.f();
1559
1515
  }
1560
1516
  }
1561
1517
  } catch (err) {
1562
- _iterator48.e(err);
1518
+ _iterator47.e(err);
1563
1519
  } finally {
1564
- _iterator48.f();
1520
+ _iterator47.f();
1565
1521
  }
1566
1522
  }
1567
1523
  return {
@@ -1597,19 +1553,19 @@ function loadAssembleeDocumentFile(dataDir, uid, formats) {
1597
1553
  return undefined;
1598
1554
  }
1599
1555
  var index = _fsExtra["default"].readJsonSync(indexPath);
1600
- var _iterator50 = _createForOfIteratorHelper(formats),
1601
- _step50;
1556
+ var _iterator49 = _createForOfIteratorHelper(formats),
1557
+ _step49;
1602
1558
  try {
1603
- for (_iterator50.s(); !(_step50 = _iterator50.n()).done;) {
1559
+ for (_iterator49.s(); !(_step49 = _iterator49.n()).done;) {
1604
1560
  var _index$format;
1605
- var format = _step50.value;
1606
- var _iterator51 = _createForOfIteratorHelper((_index$format = index[format]) !== null && _index$format !== void 0 ? _index$format : []),
1607
- _step51;
1561
+ var format = _step49.value;
1562
+ var _iterator50 = _createForOfIteratorHelper((_index$format = index[format]) !== null && _index$format !== void 0 ? _index$format : []),
1563
+ _step50;
1608
1564
  try {
1609
- for (_iterator51.s(); !(_step51 = _iterator51.n()).done;) {
1610
- var _step51$value = _step51.value,
1611
- filename = _step51$value.filename,
1612
- url = _step51$value.url;
1565
+ for (_iterator50.s(); !(_step50 = _iterator50.n()).done;) {
1566
+ var _step50$value = _step50.value,
1567
+ filename = _step50$value.filename,
1568
+ url = _step50$value.url;
1613
1569
  if (filename === undefined) {
1614
1570
  continue;
1615
1571
  }
@@ -1620,15 +1576,15 @@ function loadAssembleeDocumentFile(dataDir, uid, formats) {
1620
1576
  };
1621
1577
  }
1622
1578
  } catch (err) {
1623
- _iterator51.e(err);
1579
+ _iterator50.e(err);
1624
1580
  } finally {
1625
- _iterator51.f();
1581
+ _iterator50.f();
1626
1582
  }
1627
1583
  }
1628
1584
  } catch (err) {
1629
- _iterator50.e(err);
1585
+ _iterator49.e(err);
1630
1586
  } finally {
1631
- _iterator50.f();
1587
+ _iterator49.f();
1632
1588
  }
1633
1589
  return undefined;
1634
1590
  }
@@ -1730,4 +1686,4 @@ function pathFromUid(dataDir, uid, dataRegexp) {
1730
1686
  _fsExtra["default"].ensureDirSync(numeroMilliersDir);
1731
1687
  return _path["default"].join(numeroMilliersDir, uid);
1732
1688
  }
1733
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsIl90ZXh0ZXNfbG9pIiwib2JqIiwiX19lc01vZHVsZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiaXRlciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJlcnIiLCJzdGVwIiwiX2UyIiwibWluTGVuIiwidG9TdHJpbmciLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIl93cmFwUmVnRXhwIiwiQmFiZWxSZWdFeHAiLCJSZWdFeHAiLCJXZWFrTWFwIiwic2V0IiwiZ2V0IiwiX3NldFByb3RvdHlwZU9mIiwiYnVpbGRHcm91cHMiLCJyZWR1Y2UiLCJfaW5oZXJpdHMiLCJleGVjIiwiZ3JvdXBzIiwiaW5kaWNlcyIsInJlcGxhY2UiLCJqb2luIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJiaW5kIiwiZG9jdW1lbnRVaWRSZWdleCIsImRvY3VtZW50VHlwZSIsImNoYW1icmUiLCJyZXB1YmxpcXVlIiwibGVnaXNsYXR1cmUiLCJldGF0IiwibnVtZXJvIiwiZG9jdW1lbnRUeXBlMiIsImNoYW1icmUyIiwicmVwdWJsaXF1ZTIiLCJsZWdpc2xhdHVyZTIiLCJudW1lcm8yIiwiZG9zc2llclVpZFJlZ2V4IiwicmV1bmlvblVpZFJlZ2V4Iiwic2NydXRpblVpZFJlZ2V4IiwiY29tcHRlUmVuZHVVaWRSZWdleCIsInF1ZXN0aW9uVWlkUmVnZXgiLCJpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zIiwiZGF0YURpciIsImRhdGFzZXRzIiwiY29udmVydFRvSXRlbSIsInN1YmZvbGRlck5hbWUiLCJmaWxlRXh0ZW5zaW9uIiwidW5kZWZpbmVkIiwiX3JlZiIsIl9yZWYkbm9WYWxpZGF0aW9uIiwibm9WYWxpZGF0aW9uIiwiX3JlZiRsb2ciLCJsb2ciLCJfY2FsbGVlIiwiaXRlbVVpZCIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZGF0YXNldCIsImZpbGVFeHRlbnNpb25SZWdleCIsImRhdGFzZXREaXIiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiaXRlbVNwbGl0UGF0aCIsIml0ZW1GaWxlbmFtZSIsIml0ZW1GaWxlUGF0aCIsIml0ZW1Kc29uIiwiaXRlbSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJTZXQiLCJpZ25vcmVGb3JXZWIiLCJMZWdpc2xhdHVyZSIsIkFsbCIsImNvbmNhdCIsInBhdGgiLCJmaWxlbmFtZSIsIndhbGtEaXIiLCJlbmRzV2l0aCIsImNvbnNvbGUiLCJmcyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiSlNPTiIsInBhcnNlIiwiaGFzIiwidWlkIiwiYWRkIiwiZGF0YXNldExlZ2lzbGF0dXJlIiwidDAiLCJ0MSIsIml0ZXJMb2FkQXNzZW1ibGVlQWN0ZXVycyIsIm9wdGlvbnMiLCJfY2FsbGVlMiIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJfc3RlcDMkdmFsdWUiLCJhY3RldXIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJhY3RldXJzRXRPcmdhbmVzIiwiQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQiLCJ0b0FjdGV1ciIsIml0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyIsIl9jYWxsZWUzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsIl9zdGVwNCR2YWx1ZSIsIm9yZ2FuZSIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsInRvT3JnYW5lIiwiaXRlckxvYWRBc3NlbWJsZWVBbWVuZGVtZW50cyIsIl9jYWxsZWU0IiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsIl9zdGVwNSR2YWx1ZSIsImFtZW5kZW1lbnQiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJhbWVuZGVtZW50cyIsIkFtZW5kZW1lbnRzQ29udmVydCIsInRvQW1lbmRlbWVudCIsIml0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzIiwiX2NhbGxlZTUiLCJfaXRlcmF0b3I2IiwiX3N0ZXA2IiwiX3N0ZXA2JHZhbHVlIiwiZG9jdW1lbnQiLCJfY2FsbGVlNSQiLCJfY29udGV4dDUiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwiRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQiLCJ0b0RvY3VtZW50IiwiaXRlckxvYWRBc3NlbWJsZWVEb3NzaWVyc1BhcmxlbWVudGFpcmVzIiwiX2NhbGxlZTYiLCJfaXRlcmF0b3I3IiwiX3N0ZXA3IiwiX3N0ZXA3JHZhbHVlIiwiZG9zc2llclBhcmxlbWVudGFpcmUiLCJfY2FsbGVlNiQiLCJfY29udGV4dDYiLCJ0b0Rvc3NpZXJQYXJsZW1lbnRhaXJlIiwiaXRlckxvYWRBc3NlbWJsZWVSZXVuaW9ucyIsIl9jYWxsZWU3IiwiX2l0ZXJhdG9yOCIsIl9zdGVwOCIsIl9zdGVwOCR2YWx1ZSIsInJldW5pb24iLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJhZ2VuZGFzIiwiQWdlbmRhc0NvbnZlcnQiLCJ0b1JldW5pb24iLCJpdGVyTG9hZEFzc2VtYmxlZVNjcnV0aW5zIiwiX2NhbGxlZTgiLCJfaXRlcmF0b3I5IiwiX3N0ZXA5IiwiX3N0ZXA5JHZhbHVlIiwic2NydXRpbiIsIl9jYWxsZWU4JCIsIl9jb250ZXh0OCIsInNjcnV0aW5zIiwiU2NydXRpbnNDb252ZXJ0IiwidG9TY3J1dGluIiwiaXRlckxvYWRBc3NlbWJsZWVRdWVzdGlvbnMiLCJfY2FsbGVlOSIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsIl9zdGVwMTAkdmFsdWUiLCJxdWVzdGlvbiIsIl9jYWxsZWU5JCIsIl9jb250ZXh0OSIsInF1ZXN0aW9ucyIsIlF1ZXN0aW9uc0NvbnZlcnQiLCJ0b1F1ZXN0aW9uIiwiaXRlckxvYWRBc3NlbWJsZWVDb21wdGVzUmVuZHVzIiwiX2NhbGxlZTEwIiwiX2l0ZXJhdG9yMTEiLCJfc3RlcDExIiwiX3N0ZXAxMSR2YWx1ZSIsImNvbXB0ZVJlbmR1IiwiX2NhbGxlZTEwJCIsIl9jb250ZXh0MTAiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsIkNvbXB0ZXNSZW5kdXNDb252ZXJ0IiwidG9Db21wdGVSZW5kdSIsIml0ZXJMb2FkQXNzZW1ibGVlVGV4dGVMb2kiLCJfY2FsbGVlMTEiLCJfaXRlcmF0b3IxMiIsIl9zdGVwMTIiLCJfc3RlcDEyJHZhbHVlIiwidGV4dGVMb2kiLCJfY2FsbGVlMTEkIiwiX2NvbnRleHQxMSIsInRleHRlc0xvaSIsIlRleHRlc0xvaUNvbnZlcnQiLCJ0b1RleHRlc0xvaSIsImxvYWRBc3NlbWJsZWVEYXRhIiwiZW5hYmxlZERhdGFzZXRzIiwiX3JlZjIiLCJfcmVmMiRsb2ciLCJhY3RldXJCeVVpZCIsIm9yZ2FuZUJ5VWlkIiwiRW5hYmxlZERhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjEzIiwiX3N0ZXAxMyIsIl9pdGVyYXRvcjE0IiwiX3N0ZXAxNCIsImFjdGV1clNwbGl0UGF0aCIsImFjdGV1ckZpbGVuYW1lIiwiYWN0ZXVyRmlsZVBhdGgiLCJhY3RldXJKc29uIiwiX2l0ZXJhdG9yMTUiLCJfc3RlcDE1Iiwib3JnYW5lU3BsaXRQYXRoIiwib3JnYW5lRmlsZW5hbWUiLCJvcmdhbmVGaWxlUGF0aCIsIm9yZ2FuZUpzb24iLCJyZXVuaW9uQnlVaWQiLCJyZXVuaW9uc0J5RGF5IiwicmV1bmlvbnNCeURvc3NpZXJVaWQiLCJBZ2VuZGFzIiwiX2l0ZXJhdG9yMTYiLCJfc3RlcDE2IiwiX2l0ZXJhdG9yMTciLCJfc3RlcDE3IiwicmV1bmlvblNwbGl0UGF0aCIsInJldW5pb25GaWxlbmFtZSIsInJldW5pb25GaWxlUGF0aCIsInJldW5pb25Kc29uIiwiZGF5IiwidGltZXN0YW1wRGVidXQiLCJ0b0lTT1N0cmluZyIsInNwbGl0IiwicmV1bmlvbnNBdERheSIsIm9kaiIsIl9pdGVyYXRvcjE4IiwicG9pbnRzT2RqIiwiX3N0ZXAxOCIsInBvaW50T2RqIiwiX2l0ZXJhdG9yMTkiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyIsIl9zdGVwMTkiLCJkb3NzaWVyTGVnaXNsYXRpZlJlZiIsInJldW5pb25zQXREb3NzaWVyVWlkIiwiYW1lbmRlbWVudEJ5VWlkIiwiQW1lbmRlbWVudHMiLCJfaXRlcmF0b3IyMCIsIl9zdGVwMjAiLCJfaXRlcmF0b3IyMSIsIl9zdGVwMjEiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwiYW1lbmRlbWVudEZpbGVQYXRoIiwiYW1lbmRlbWVudEpzb24iLCJkb2N1bWVudEJ5VWlkIiwiZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluIiwiZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluIiwiZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJfaXRlcmF0b3IyMiIsIl9zdGVwMjIiLCJfaXRlcmF0b3IyMyIsIl9zdGVwMjMiLCJkb2N1bWVudFNwbGl0UGF0aCIsImRvY3VtZW50RmlsZW5hbWUiLCJkb2N1bWVudEZpbGVQYXRoIiwiZG9jdW1lbnRKc29uIiwiX2l0ZXJhdG9yMjQiLCJfc3RlcDI0IiwiZG9zc2llclNwbGl0UGF0aCIsImRvc3NpZXJGaWxlbmFtZSIsImRvc3NpZXJGaWxlUGF0aCIsImRvc3NpZXJKc29uIiwiZG9zc2llciIsInRpdHJlRG9zc2llciIsInNlbmF0Q2hlbWluIiwidGl0cmVDaGVtaW4iLCJwaG90b0J5VWlkIiwiUGhvdG9zIiwianNvbkZpbGVQYXRoIiwiRGl4U2VwdCIsImV4aXN0c1N5bmMiLCJqc29uIiwiYXNzaWduIiwic2NydXRpbkJ5VWlkIiwiU2NydXRpbnMiLCJfaXRlcmF0b3IyNSIsIl9zdGVwMjUiLCJfaXRlcmF0b3IyNiIsIl9zdGVwMjYiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwic2NydXRpbkZpbGVQYXRoIiwic2NydXRpbkpzb24iLCJxdWVzdGlvbkJ5VWlkIiwiUXVlc3Rpb25zIiwiX2l0ZXJhdG9yMjciLCJfc3RlcDI3IiwiX2l0ZXJhdG9yMjgiLCJfc3RlcDI4IiwicXVlc3Rpb25TcGxpdFBhdGgiLCJxdWVzdGlvbkZpbGVuYW1lIiwicXVlc3Rpb25GaWxlUGF0aCIsInF1ZXN0aW9uSnNvbiIsImNvbXB0ZVJlbmR1QnlVaWQiLCJDb21wdGVzUmVuZHVzU2VhbmNlcyIsIl9pdGVyYXRvcjI5IiwiX3N0ZXAyOSIsIl9pdGVyYXRvcjMwIiwiX3N0ZXAzMCIsImNvbXB0ZVJlbmR1UGF0aCIsImNvbXB0ZVJlbmR1RmlsZW5hbWUiLCJjb21wdGVSZW5kdUZpbGVQYXRoIiwiY29tcHRlUmVuZHVKc29uIiwibG9hZEFzc2VtYmxlZURhdGFGcm9tQmlnRmlsZXMiLCJfcmVmMyIsIl9yZWYzJGxvZyIsIl9pdGVyYXRvcjMxIiwiX3N0ZXAzMSIsInRvQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjMyIiwiYWN0ZXVycyIsIl9zdGVwMzIiLCJfaXRlcmF0b3IzMyIsIm9yZ2FuZXMiLCJfc3RlcDMzIiwiX2l0ZXJhdG9yMzQiLCJfc3RlcDM0IiwidG9BZ2VuZGFzIiwiX2l0ZXJhdG9yMzUiLCJyZXVuaW9ucyIsIl9zdGVwMzUiLCJfaXRlcmF0b3IzNiIsIl9zdGVwMzYiLCJfaXRlcmF0b3IzNyIsIl9zdGVwMzciLCJfaXRlcmF0b3IzOCIsIl9zdGVwMzgiLCJ0b0FtZW5kZW1lbnRzIiwiX2l0ZXJhdG9yMzkiLCJ0ZXh0ZXNMZWdpc2xhdGlmcyIsIl9zdGVwMzkiLCJ0ZXh0ZUxlZ2lzbGF0aWYiLCJfaXRlcmF0b3I0MCIsIl9zdGVwNDAiLCJfaXRlcmF0b3I0MSIsIl9zdGVwNDEiLCJ0b0Rvc3NpZXJzTGVnaXNsYXRpZnMiLCJfaXRlcmF0b3I0MiIsIl9zdGVwNDIiLCJfaXRlcmF0b3I0MyIsImRvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfc3RlcDQzIiwiX2l0ZXJhdG9yNDQiLCJfc3RlcDQ0IiwidG9TY3J1dGlucyIsIl9pdGVyYXRvcjQ1IiwiX3N0ZXA0NSIsIl9pdGVyYXRvcjQ2IiwiX3N0ZXA0NiIsInRvUXVlc3Rpb25zIiwiX2l0ZXJhdG9yNDciLCJfc3RlcDQ3IiwiX2l0ZXJhdG9yNDgiLCJfc3RlcDQ4IiwiY29tcHRlc1JlbmR1cyIsInRvQ29tcHRlc1JlbmR1cyIsIl9pdGVyYXRvcjQ5IiwiX3N0ZXA0OSIsImxvYWRBc3NlbWJsZWVEb2N1bWVudEZpbGUiLCJmb3JtYXRzIiwiZG9jdW1lbnRzRGlyIiwiZG9jdW1lbnREaXIiLCJwYXRoRnJvbURvY3VtZW50VWlkIiwiaW5kZXhQYXRoIiwicGF0aEV4aXN0c1N5bmMiLCJpbmRleCIsInJlYWRKc29uU3luYyIsIl9pdGVyYXRvcjUwIiwiX3N0ZXA1MCIsIl9pbmRleCRmb3JtYXQiLCJmb3JtYXQiLCJfaXRlcmF0b3I1MSIsIl9zdGVwNTEiLCJfc3RlcDUxJHZhbHVlIiwidXJsIiwibG9hZEFzc2VtYmxlZVBob3Rvc0RlcHV0ZXMiLCJfcmVmNCIsIl9yZWY0JGxvZyIsImxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMiLCJfcmVmNSIsIl9yZWY1JGxvZyIsIl9ncm91cHMkZG9jdW1lbnRUeXBlIiwiX2dyb3VwcyRjaGFtYnJlIiwiX2dyb3VwcyRyZXB1YmxpcXVlIiwiX2dyb3VwcyRsZWdpc2xhdHVyZSIsIl9ncm91cHMkbnVtZXJvIiwibWF0Y2giLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsImNoYW1icmVEaXIiLCJyZXB1YmxpcXVlRGlyIiwibGVnaXNsYXR1cmVEaXIiLCJlbnN1cmVEaXJTeW5jIiwiZXRhdERpciIsInN1YnN0cmluZyIsIm51bWVyb01pbGxpZXJzRGlyIiwicGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZCIsImRvc3NpZXJzRGlyIiwicGF0aEZyb21VaWQiLCJwYXRoRnJvbVJldW5pb25VaWQiLCJyZXVuaW9uc0RpciIsInNlc3Npb25EaXIiLCJpZERpciIsIm51bWVyb01pbGxpb25zRGlyIiwicGF0aEZyb21TY3J1dGluVWlkIiwic2NydXRpbnNEaXIiLCJwYXRoRnJvbVF1ZXN0aW9uVWlkIiwicGF0aEZyb21Db21wdGVSZW5kdVVpZCIsImRhdGFSZWdleHAiXSwic291cmNlcyI6WyIuLi9zcmMvbG9hZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gTG9hZCBkYXRhIGZyb20gZmlsZXNcblxuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzLCBEYXRhc2V0IH0gZnJvbSBcIi4vZGF0YXNldHNcIlxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudEZpbGVzSW5kZXggfSBmcm9tIFwiLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5leHBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb252ZXJ0IGFzIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LFxuICBPcmdhbmUsXG4gIFBob3RvLFxufSBmcm9tIFwiLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBBZ2VuZGFzQ29udmVydCwgUmV1bmlvbiB9IGZyb20gXCIuL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4vdHlwZXMvbGVnaXNsYXR1cmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgU2NydXRpbnNDb252ZXJ0LCBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNDb252ZXJ0LCBRdWVzdGlvbiB9IGZyb20gXCIuL3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIENvbXB0ZXNSZW5kdXNDb252ZXJ0LCBDb21wdGVSZW5kdSB9IGZyb20gXCIuL3R5cGVzL2RlYmF0c1wiXG5pbXBvcnQgeyBUZXh0ZXNMb2ksIENvbnZlcnQgYXMgVGV4dGVzTG9pQ29udmVydCB9IGZyb20gXCIuL3R5cGVzL3RleHRlc19sb2lcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQgfSBmcm9tIFwiLi91cmxzXCJcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhIHtcbiAgcmVhZG9ubHkgYWN0ZXVyQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQWN0ZXVyIH1cbiAgcmVhZG9ubHkgYW1lbmRlbWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFtZW5kZW1lbnQgfVxuICByZWFkb25seSBkb2N1bWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvY3VtZW50IH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmUgfVxuICByZWFkb25seSBvcmdhbmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfVxuICByZWFkb25seSBwaG90b0J5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbiAgcmVhZG9ubHkgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfVxuICByZWFkb25seSByZXVuaW9uc0J5RGF5OiB7IFtkYXk6IHN0cmluZ106IFJldW5pb25bXSB9XG4gIHJlYWRvbmx5IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfVxuICByZWFkb25seSBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9XG4gIHJlYWRvbmx5IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfVxuICByZWFkb25seSBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH1cbn1cblxuY29uc3QgZG9jdW1lbnRVaWRSZWdleCA9XG4gIC9eKCg/PGRvY3VtZW50VHlwZT5BQ0lOfEFMQ058QVZDRXxBVklTfERFQ0x8RVRESXxMRVRUfE1FU1N8TUlPTnxQSU9OfFBOUkV8UFJKTHxSQVBQfFJJTkZ8UklPTikoPzxjaGFtYnJlPkFOfENHfFNOKSg/PHJlcHVibGlxdWU+UlxcZCspW0xTXSg/PGxlZ2lzbGF0dXJlPlxcZCspKD88ZXRhdD5CfEJUQXxCVEN8VEFQKSg/PG51bWVybz5cXGQrKSgtLiopPyl8KCg/PGRvY3VtZW50VHlwZTI+TUlPTikoPzxjaGFtYnJlMj5BTnxTTikoPzxyZXB1YmxpcXVlMj5SXFxkKylbTFNdKD88bGVnaXNsYXR1cmUyPlxcZCspLU4oPzxudW1lcm8yPlxcZCspKSQvXG5jb25zdCBkb3NzaWVyVWlkUmVnZXggPSAvXkRMKFJcXGQrKShMXFxkKylOKFxcZCspJC9cbmNvbnN0IHJldW5pb25VaWRSZWdleCA9XG4gIC9eUlUoQU58Q0d8U04pKFJcXGQrKShMXFxkKykoW0FTXVxcZHs0fSkoSURDfElERkw/fElEUykoXFxkKykkL1xuY29uc3Qgc2NydXRpblVpZFJlZ2V4ID0gL15WVChBTnxDRykoUlxcZCspKExcXGQrKVYoXFxkKykkL1xuY29uc3QgY29tcHRlUmVuZHVVaWRSZWdleDogUmVnRXhwID1cbiAgL15DUlMoQU58Q0cpKFJcXGQrKShMXFxkKykoU1xcZCspKE98RXxEKShcXGQrKShOXFxkKykkL1xuY29uc3QgcXVlc3Rpb25VaWRSZWdleDogUmVnRXhwID0gL15RQU4oUlxcZCspKExcXGQrKVEoRXxHfE9TRCkoXFxkKykkL1xuXG50eXBlIEl0ZW1Db252ZXJ0ZXI8VD4gPSAoanNvbjogc3RyaW5nKSA9PiBUXG5cbmZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPFQgZXh0ZW5kcyB7IHVpZDogc3RyaW5nIH0+KFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgZGF0YXNldHM6IERhdGFzZXRbXSxcbiAgY29udmVydFRvSXRlbTogSXRlbUNvbnZlcnRlcjxUPixcbiAgc3ViZm9sZGVyTmFtZTogc3RyaW5nW10sXG4gIGZpbGVFeHRlbnNpb246IHN0cmluZyA9IFwianNvblwiLFxuICB7IG5vVmFsaWRhdGlvbiA9IGZhbHNlLCBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBHZW5lcmF0b3I8eyBpdGVtOiBUOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sIHZvaWQsIHVua25vd24+IHtcbiAgY29uc3QgaXRlbVVpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgbGV0IGZpbGVFeHRlbnNpb25SZWdleCA9IG5ldyBSZWdFeHAoYFxcXFwuJHtmaWxlRXh0ZW5zaW9ufSRgKVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKGZpbGVFeHRlbnNpb25SZWdleCwgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGl0ZW1TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBzdWJmb2xkZXJOYW1lKSkge1xuICAgICAgY29uc3QgaXRlbUZpbGVuYW1lID0gaXRlbVNwbGl0UGF0aFtpdGVtU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICBpZiAoIWl0ZW1GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBpdGVtRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uaXRlbVNwbGl0UGF0aClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtpdGVtRmlsZVBhdGh94oCmYClcbiAgICAgIH1cblxuICAgICAgbGV0IGl0ZW1Kc29uOiBhbnkgPSBmcy5yZWFkRmlsZVN5bmMoaXRlbUZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgbGV0IGl0ZW06IFQgPSBub1ZhbGlkYXRpb25cbiAgICAgICAgPyBKU09OLnBhcnNlKGl0ZW1Kc29uKVxuICAgICAgICA6IGNvbnZlcnRUb0l0ZW0oaXRlbUpzb24pXG5cbiAgICAgIGlmIChpdGVtVWlkLmhhcyhpdGVtLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGl0ZW1VaWQuYWRkKGl0ZW0udWlkKVxuICAgICAgeWllbGQgeyBpdGVtOiBpdGVtLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuXG4gICAgICBpdGVtSnNvbiA9IG51bGxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUFjdGV1cnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgYWN0ZXVyOiBBY3RldXI7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IGFjdGV1cixcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxBY3RldXI+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcyxcbiAgICBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cixcbiAgICBbXCJhY3RldXJzXCJdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IGFjdGV1ciwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBvcmdhbmU6IE9yZ2FuZTsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogb3JnYW5lLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPE9yZ2FuZT4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzLFxuICAgIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvT3JnYW5lLFxuICAgIFtcIm9yZ2FuZXNcIl0sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgb3JnYW5lLCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVBbWVuZGVtZW50cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBhbWVuZGVtZW50OiBBbWVuZGVtZW50OyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBhbWVuZGVtZW50LFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPEFtZW5kZW1lbnQ+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuYW1lbmRlbWVudHMsXG4gICAgQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudCxcbiAgICBbXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBhbWVuZGVtZW50LCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgZG9jdW1lbnQ6IERvY3VtZW50OyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBkb2N1bWVudCxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxEb2N1bWVudD4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5kb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9jdW1lbnQsXG4gICAgW1wiZG9jdW1lbnRzXCJdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IGRvY3VtZW50LCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVEb3NzaWVyc1BhcmxlbWVudGFpcmVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7XG4gICAgZG9zc2llclBhcmxlbWVudGFpcmU6IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZVxuICB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogZG9zc2llclBhcmxlbWVudGFpcmUsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8RG9zc2llclBhcmxlbWVudGFpcmU+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcyxcbiAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgIFtcImRvc3NpZXJzXCJdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IGRvc3NpZXJQYXJsZW1lbnRhaXJlLCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVSZXVuaW9ucyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyByZXVuaW9uOiBSZXVuaW9uOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiByZXVuaW9uLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPFJldW5pb24+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuYWdlbmRhcyxcbiAgICBBZ2VuZGFzQ29udmVydC50b1JldW5pb24sXG4gICAgW10sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgcmV1bmlvbiwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgc2NydXRpbjogU2NydXRpbjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogc2NydXRpbixcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxTY3J1dGluPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLnNjcnV0aW5zLFxuICAgIFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW4sXG4gICAgW10sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgc2NydXRpbiwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlUXVlc3Rpb25zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHF1ZXN0aW9uOiBRdWVzdGlvbjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogcXVlc3Rpb24sXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8UXVlc3Rpb24+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMucXVlc3Rpb25zLFxuICAgIFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbixcbiAgICBbXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBxdWVzdGlvbiwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBjb21wdGVSZW5kdTogQ29tcHRlUmVuZHU7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IGNvbXB0ZVJlbmR1LFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPENvbXB0ZVJlbmR1PihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzLFxuICAgIENvbXB0ZXNSZW5kdXNDb252ZXJ0LnRvQ29tcHRlUmVuZHUsXG4gICAgW10sXG4gICAgXCJ4bWxcIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBjb21wdGVSZW5kdSwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlVGV4dGVMb2koXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgdGV4dGVMb2k6IFRleHRlc0xvaTsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogdGV4dGVMb2ksXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8VGV4dGVzTG9pPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLnRleHRlc0xvaSxcbiAgICBUZXh0ZXNMb2lDb252ZXJ0LnRvVGV4dGVzTG9pLFxuICAgIFtdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IHRleHRlTG9pLCBkYXRhc2V0TGVnaXNsYXR1cmUgfVxuICB9XG59XG5cbi8vLyBMb2FkIGRhdGEgZnJvbSBzcGxpdCBmaWxlcy5cbi8vLyBEZXByZWNhdGVkOiBVc2UgaXRlckxvYWQuLi4gaXRlcmF0b3JzIGluc3RlYWQuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZURhdGEoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBEYXRhIHtcbiAgY29uc3QgYWN0ZXVyQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQWN0ZXVyIH0gPSB7fVxuICBjb25zdCBvcmdhbmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgYWN0ZXVyU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wiYWN0ZXVyc1wiXSkpIHtcbiAgICAgICAgY29uc3QgYWN0ZXVyRmlsZW5hbWUgPSBhY3RldXJTcGxpdFBhdGhbYWN0ZXVyU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghYWN0ZXVyRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0ZXVyRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYWN0ZXVyU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHthY3RldXJGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGV1ckpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhY3RldXJGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgYWN0ZXVyID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXIoYWN0ZXVySnNvbilcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJCeVVpZFthY3RldXIudWlkXSA9IGFjdGV1clxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3Qgb3JnYW5lU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wib3JnYW5lc1wiXSkpIHtcbiAgICAgICAgY29uc3Qgb3JnYW5lRmlsZW5hbWUgPSBvcmdhbmVTcGxpdFBhdGhbb3JnYW5lU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghb3JnYW5lRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JnYW5lRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ub3JnYW5lU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtvcmdhbmVGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9yZ2FuZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhvcmdhbmVGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgb3JnYW5lID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9PcmdhbmUob3JnYW5lSnNvbilcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9IG9yZ2FuZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuICAgICAgZm9yIChjb25zdCByZXVuaW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVuYW1lID0gcmV1bmlvblNwbGl0UGF0aFtyZXVuaW9uU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghcmV1bmlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldW5pb25GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5yZXVuaW9uU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtyZXVuaW9uRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXVuaW9uSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHJldW5pb25GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgcmV1bmlvbiA9IEFnZW5kYXNDb252ZXJ0LnRvUmV1bmlvbihyZXVuaW9uSnNvbilcbiAgICAgICAgaWYgKHJldW5pb25CeVVpZFtyZXVuaW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25CeVVpZFtyZXVuaW9uLnVpZF0gPSByZXVuaW9uXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXkgPSByZXVuaW9uLnRpbWVzdGFtcERlYnV0LnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdXG4gICAgICAgIGxldCByZXVuaW9uc0F0RGF5ID0gcmV1bmlvbnNCeURheVtkYXldXG4gICAgICAgIGlmIChyZXVuaW9uc0F0RGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uc0F0RGF5ID0gcmV1bmlvbnNCeURheVtkYXldID0gW11cbiAgICAgICAgfVxuICAgICAgICByZXVuaW9uc0F0RGF5LnB1c2gocmV1bmlvbilcblxuICAgICAgICBjb25zdCBvZGogPSByZXVuaW9uLm9kalxuICAgICAgICBpZiAob2RqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHBvaW50T2RqIG9mIG9kai5wb2ludHNPZGogfHwgW10pIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZG9zc2llckxlZ2lzbGF0aWZSZWYgb2YgcG9pbnRPZGouZG9zc2llcnNMZWdpc2xhdGlmc1JlZnMgfHxcbiAgICAgICAgICAgICAgW10pIHtcbiAgICAgICAgICAgICAgbGV0IHJldW5pb25zQXREb3NzaWVyVWlkID1cbiAgICAgICAgICAgICAgICByZXVuaW9uc0J5RG9zc2llclVpZFtkb3NzaWVyTGVnaXNsYXRpZlJlZl1cbiAgICAgICAgICAgICAgaWYgKHJldW5pb25zQXREb3NzaWVyVWlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXVuaW9uc0F0RG9zc2llclVpZCA9IHJldW5pb25zQnlEb3NzaWVyVWlkW1xuICAgICAgICAgICAgICAgICAgZG9zc2llckxlZ2lzbGF0aWZSZWZcbiAgICAgICAgICAgICAgICBdID0gW11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXVuaW9uc0F0RG9zc2llclVpZC5wdXNoKHJldW5pb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYW1lbmRlbWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFtZW5kZW1lbnQgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVuYW1lID1cbiAgICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFhbWVuZGVtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmFtZW5kZW1lbnRTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FtZW5kZW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoYW1lbmRlbWVudEZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50ID0gQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudChhbWVuZGVtZW50SnNvbilcbiAgICAgICAgaWYgKGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPSBhbWVuZGVtZW50XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBkb2N1bWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvY3VtZW50IH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuRG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5kb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgZG9jdW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJkb2N1bWVudHNcIl0pKSB7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50RmlsZW5hbWUgPSBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWRvY3VtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9jdW1lbnRGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5kb2N1bWVudFNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9jdW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvY3VtZW50SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGRvY3VtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGRvY3VtZW50ID0gRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb2N1bWVudChkb2N1bWVudEpzb24pXG4gICAgICAgIGlmIChkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9IGRvY3VtZW50XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkb3NzaWVyU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wiZG9zc2llcnNcIl0pKSB7XG4gICAgICAgIGNvbnN0IGRvc3NpZXJGaWxlbmFtZSA9IGRvc3NpZXJTcGxpdFBhdGhbZG9zc2llclNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWRvc3NpZXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb3NzaWVyRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uZG9zc2llclNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9zc2llckZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9zc2llckpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhkb3NzaWVyRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGRvc3NpZXIgPVxuICAgICAgICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUoZG9zc2llckpzb24pXG4gICAgICAgIGNvbnN0IHRpdHJlRG9zc2llciA9IGRvc3NpZXIudGl0cmVEb3NzaWVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBwaG90b0J5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlBob3Rvcykge1xuICAgIHtcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBgcGhvdG9zX2RlcHV0ZXNfJHtcbiAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgTGVnaXNsYXR1cmUuQWxsLlxuICAgICAgICAgIGxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgPyBMZWdpc2xhdHVyZS5EaXhTZXB0IDogbGVnaXNsYXR1cmVcbiAgICAgICAgfWAsXG4gICAgICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgICAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID0gc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5zY3J1dGluU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtzY3J1dGluRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3J1dGluSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHNjcnV0aW5GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgc2NydXRpbiA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW4oc2NydXRpbkpzb24pXG4gICAgICAgIGlmIChzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID0gc2NydXRpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID0gcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucXVlc3Rpb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3F1ZXN0aW9uRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVzdGlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhxdWVzdGlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBxdWVzdGlvbiA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbihxdWVzdGlvbkpzb24pXG4gICAgICAgIGlmIChxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9IHF1ZXN0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHVQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVGaWxlbmFtZSA9IGNvbXB0ZVJlbmR1UGF0aFtjb21wdGVSZW5kdVBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFjb21wdGVSZW5kdUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uY29tcHRlUmVuZHVQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtjb21wdGVSZW5kdUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoY29tcHRlUmVuZHVGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHUgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZVJlbmR1KGNvbXB0ZVJlbmR1SnNvbilcbiAgICAgICAgaWYgKGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID0gY29tcHRlUmVuZHVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0ZXVyQnlVaWQsXG4gICAgYW1lbmRlbWVudEJ5VWlkLFxuICAgIGRvY3VtZW50QnlVaWQsXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkLFxuICAgIG9yZ2FuZUJ5VWlkLFxuICAgIHBob3RvQnlVaWQsXG4gICAgcmV1bmlvbkJ5VWlkLFxuICAgIHJldW5pb25zQnlEYXksXG4gICAgcmV1bmlvbnNCeURvc3NpZXJVaWQsXG4gICAgc2NydXRpbkJ5VWlkLFxuICAgIHF1ZXN0aW9uQnlVaWQsXG4gICAgY29tcHRlUmVuZHVCeVVpZCxcbiAgfVxufVxuXG4vLy8gTG9hZCBkYXRhIGZyb20gYmlnIG1vbm9seXRpYyBmaWxlcy5cbi8vLyBEZXByZWNhdGVkOiBBc3NlbWJsw6llIG5hdGlvbmFsZSBvcGVuIGRhdGEgbm8gbW9yZSB1c2VzIG1vbm9seXRpYyBmaWxlcy5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhY3RldXJzRXRPcmdhbmVzID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXJzRXRPcmdhbmVzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGFjdGV1ciBvZiBhY3RldXJzRXRPcmdhbmVzLmFjdGV1cnMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJCeVVpZFthY3RldXIudWlkXSA9IGFjdGV1clxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG9yZ2FuZSBvZiBhY3RldXJzRXRPcmdhbmVzLm9yZ2FuZXMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9IG9yZ2FuZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFnZW5kYXMgPSBBZ2VuZGFzQ29udmVydC50b0FnZW5kYXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcmV1bmlvbiBvZiBhZ2VuZGFzLnJldW5pb25zKSB7XG4gICAgICAgIGlmIChyZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID0gcmV1bmlvblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF5ID0gcmV1bmlvbi50aW1lc3RhbXBEZWJ1dC50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgICAgICBsZXQgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XVxuICAgICAgICBpZiAocmV1bmlvbnNBdERheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XSA9IFtdXG4gICAgICAgIH1cbiAgICAgICAgcmV1bmlvbnNBdERheS5wdXNoKHJldW5pb24pXG5cbiAgICAgICAgY29uc3Qgb2RqID0gcmV1bmlvbi5vZGpcbiAgICAgICAgaWYgKG9kaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBwb2ludE9kaiBvZiBvZGoucG9pbnRzT2RqIHx8IFtdKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvc3NpZXJMZWdpc2xhdGlmUmVmIG9mIHBvaW50T2RqLmRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIHx8XG4gICAgICAgICAgICAgIFtdKSB7XG4gICAgICAgICAgICAgIGxldCByZXVuaW9uc0F0RG9zc2llclVpZCA9XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNCeURvc3NpZXJVaWRbZG9zc2llckxlZ2lzbGF0aWZSZWZdXG4gICAgICAgICAgICAgIGlmIChyZXVuaW9uc0F0RG9zc2llclVpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQgPSByZXVuaW9uc0J5RG9zc2llclVpZFtcbiAgICAgICAgICAgICAgICAgIGRvc3NpZXJMZWdpc2xhdGlmUmVmXG4gICAgICAgICAgICAgICAgXSA9IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQucHVzaChyZXVuaW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYW1lbmRlbWVudHMgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50cyhqc29uKVxuICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2YgYW1lbmRlbWVudHMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50IG9mIHRleHRlTGVnaXNsYXRpZi5hbWVuZGVtZW50cykge1xuICAgICAgICAgIGlmIChhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPSBhbWVuZGVtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGRvc3NpZXJzTGVnaXNsYXRpZnMgPVxuICAgICAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJzTGVnaXNsYXRpZnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgZG9jdW1lbnQgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy50ZXh0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgICBpZiAoZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPSBkb2N1bWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXIgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy5kb3NzaWVyc1BhcmxlbWVudGFpcmVzKSB7XG4gICAgICAgIGNvbnN0IHRpdHJlRG9zc2llciA9IGRvc3NpZXIudGl0cmVEb3NzaWVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAgY29uc3QgcGhvdG9CeVVpZCA9IHt9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgICAgICBsZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsID8gTGVnaXNsYXR1cmUuRGl4U2VwdCA6IGxlZ2lzbGF0dXJlXG4gICAgICAgIH1gLFxuICAgICAgICBcImRlcHV0ZXMuanNvblwiLFxuICAgICAgKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSkge1xuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgICBPYmplY3QuYXNzaWduKHBob3RvQnlVaWQsIEpTT04ucGFyc2UoanNvbikpXG4gICAgICB9IGVsc2UgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgbWlzc2luZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBcInBob3Rvc19zZW5hdGV1cnNcIixcbiAgICAgICAgXCJzZW5hdGV1cnMuanNvblwiLFxuICAgICAgKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSkge1xuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgICBPYmplY3QuYXNzaWduKHBob3RvQnlVaWQsIEpTT04ucGFyc2UoanNvbikpXG4gICAgICB9IGVsc2UgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgbWlzc2luZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjcnV0aW5CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBTY3J1dGluIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3Qgc2NydXRpbnMgPSBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGlucyhqc29uKVxuICAgICAgZm9yIChjb25zdCBzY3J1dGluIG9mIHNjcnV0aW5zLnNjcnV0aW5zKSB7XG4gICAgICAgIGlmIChzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID0gc2NydXRpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgcXVlc3Rpb25zID0gUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9ucyhqc29uKVxuICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBxdWVzdGlvbnMucXVlc3Rpb25zKSB7XG4gICAgICAgIGlmIChxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9IHF1ZXN0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgY29tcHRlc1JlbmR1cyA9IENvbXB0ZXNSZW5kdXNDb252ZXJ0LnRvQ29tcHRlc1JlbmR1cyhqc29uKVxuICAgICAgZm9yIChjb25zdCBjb21wdGVSZW5kdSBvZiBjb21wdGVzUmVuZHVzLmNvbXB0ZXNSZW5kdXMpIHtcbiAgICAgICAgaWYgKGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID0gY29tcHRlUmVuZHVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0ZXVyQnlVaWQsXG4gICAgYW1lbmRlbWVudEJ5VWlkLFxuICAgIGRvY3VtZW50QnlVaWQsXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkLFxuICAgIG9yZ2FuZUJ5VWlkLFxuICAgIHBob3RvQnlVaWQsXG4gICAgcmV1bmlvbkJ5VWlkLFxuICAgIHJldW5pb25zQnlEYXksXG4gICAgcmV1bmlvbnNCeURvc3NpZXJVaWQsXG4gICAgc2NydXRpbkJ5VWlkLFxuICAgIHF1ZXN0aW9uQnlVaWQsXG4gICAgY29tcHRlUmVuZHVCeVVpZCxcbiAgfVxufVxuXG4vKipcbiAqIFJlYWQgaW5mb3Mgb2YgYSBkb2N1bWVudCBvciBhIGRpdmlzaW9uIG9mIGEgZG9jdW1lbnQgZnJvbSBmaWxlIHN5c3RlbVxuICpcbiAqIEBwYXJhbSBkYXRhRGlyXG4gKiBAcGFyYW0gdWlkIFVJRCBvZiBhIGRvY3VtZW50IG9yIGEgZGl2aXNpb25cbiAqIEBwYXJhbSBmb3JtYXRzIHJlcXVlc3RlZCBmb3JtYXRzIG9mIHRoZSBkb2N1bWVudCBpbiBkZWNyZWFzaW5nIHByZWZlcmVuY2Ugb3JkZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVEb2N1bWVudEZpbGUoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgdWlkOiBzdHJpbmcsXG4gIGZvcm1hdHM6IERvY3VtZW50VXJsRm9ybWF0W10sXG4pOlxuICB8IHtcbiAgICAgIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXRcbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgICAgdXJsOiBzdHJpbmdcbiAgICB9XG4gIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZG9jdW1lbnRzRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIFwiRG9jdW1lbnRzXCIpXG4gIGNvbnN0IGRvY3VtZW50RGlyID0gcGF0aEZyb21Eb2N1bWVudFVpZChkb2N1bWVudHNEaXIsIHVpZClcbiAgY29uc3QgaW5kZXhQYXRoID0gcGF0aC5qb2luKGRvY3VtZW50RGlyLCBcImluZGV4Lmpzb25cIilcbiAgaWYgKCFmcy5wYXRoRXhpc3RzU3luYyhpbmRleFBhdGgpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIGNvbnN0IGluZGV4ID0gZnMucmVhZEpzb25TeW5jKGluZGV4UGF0aCkgYXMgRG9jdW1lbnRGaWxlc0luZGV4XG4gIGZvciAoY29uc3QgZm9ybWF0IG9mIGZvcm1hdHMpIHtcbiAgICBmb3IgKGNvbnN0IHsgZmlsZW5hbWUsIHVybCB9IG9mIGluZGV4W2Zvcm1hdF0gPz8gW10pIHtcbiAgICAgIGlmIChmaWxlbmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICByZXR1cm4geyBmb3JtYXQsIHBhdGg6IHBhdGguam9pbihkb2N1bWVudERpciwgZmlsZW5hbWUpLCB1cmwgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlUGhvdG9zRGVwdXRlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9IHtcbiAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgZGF0YURpcixcbiAgICBgcGhvdG9zX2RlcHV0ZXNfJHtcbiAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICBsZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsID8gTGVnaXNsYXR1cmUuRGl4U2VwdCA6IGxlZ2lzbGF0dXJlXG4gICAgfWAsXG4gICAgXCJkZXB1dGVzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSB1aWQubWF0Y2goZG9jdW1lbnRVaWRSZWdleClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBkb2N1bWVudCBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgZ3JvdXBzID0gbWF0Y2ghLmdyb3VwcyBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gIGNvbnN0IGRvY3VtZW50VHlwZSA9IHBhdGguam9pbihcbiAgICBkb2N1bWVudHNEaXIsXG4gICAgZ3JvdXBzLmRvY3VtZW50VHlwZSA/PyBncm91cHMuZG9jdW1lbnRUeXBlMixcbiAgKVxuICBjb25zdCBjaGFtYnJlRGlyID0gcGF0aC5qb2luKGRvY3VtZW50VHlwZSwgZ3JvdXBzLmNoYW1icmUgPz8gZ3JvdXBzLmNoYW1icmUyKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKFxuICAgIGNoYW1icmVEaXIsXG4gICAgZ3JvdXBzLnJlcHVibGlxdWUgPz8gZ3JvdXBzLnJlcHVibGlxdWUyLFxuICApXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKFxuICAgIHJlcHVibGlxdWVEaXIsXG4gICAgZ3JvdXBzLmxlZ2lzbGF0dXJlID8/IGdyb3Vwcy5sZWdpc2xhdHVyZTIsXG4gIClcbiAgY29uc3QgZXRhdCA9IGdyb3Vwcy5ldGF0XG4gIGlmIChldGF0ID09PSB1bmRlZmluZWQpIHtcbiAgICBmcy5lbnN1cmVEaXJTeW5jKGxlZ2lzbGF0dXJlRGlyKVxuICAgIHJldHVybiBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIHVpZClcbiAgfVxuICBjb25zdCBldGF0RGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBldGF0KVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDBcIiArIChncm91cHMubnVtZXJvID8/IGdyb3Vwcy5udW1lcm8yKVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyaW5nKG51bWVyby5sZW5ndGggLSA2KVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihldGF0RGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkKFxuICBkb3NzaWVyc0Rpcjogc3RyaW5nLFxuICB1aWQ6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoRnJvbVVpZChkb3NzaWVyc0RpciwgdWlkLCBkb3NzaWVyVWlkUmVnZXgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbVJldW5pb25VaWQocmV1bmlvbnNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHJldW5pb25VaWRSZWdleC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciByZXVuaW9uIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBjaGFtYnJlRGlyID0gcGF0aC5qb2luKHJldW5pb25zRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oY2hhbWJyZURpciwgbWF0Y2ghWzJdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbM10pXG4gIGNvbnN0IHNlc3Npb25EaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG1hdGNoIVs0XSlcbiAgY29uc3QgaWREaXIgPSBwYXRoLmpvaW4oc2Vzc2lvbkRpciwgbWF0Y2ghWzVdKVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDAwMDBcIiArIG1hdGNoIVs2XVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyaW5nKG51bWVyby5sZW5ndGggLSA5KVxuICBjb25zdCBudW1lcm9NaWxsaW9uc0RpciA9IHBhdGguam9pbihpZERpciwgbnVtZXJvLnN1YnN0cmluZygwLCAzKSlcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obnVtZXJvTWlsbGlvbnNEaXIsIG51bWVyby5zdWJzdHJpbmcoMywgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tU2NydXRpblVpZChzY3J1dGluc0Rpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gc2NydXRpblVpZFJlZ2V4LmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIHNjcnV0aW4gVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4oc2NydXRpbnNEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihjaGFtYnJlRGlyLCBtYXRjaCFbMl0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVszXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbNF1cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tUXVlc3Rpb25VaWQoZGF0YURpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoRnJvbVVpZChkYXRhRGlyLCB1aWQsIHF1ZXN0aW9uVWlkUmVnZXgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbUNvbXB0ZVJlbmR1VWlkKGRhdGFEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aEZyb21VaWQoZGF0YURpciwgdWlkLCBjb21wdGVSZW5kdVVpZFJlZ2V4KVxufVxuXG4vLyBHZXQgc3RhbmRhcmQgcGF0aCBmb3Igb2JqZWN0IHdpdGggdWlkIDogcmVwdWJsaXF1ZSA+IGxlZ2lzbGF0dXJlID4gZ3JvdXAgb2JqZWN0cyBieSB0aG91c2FuZHNcbmZ1bmN0aW9uIHBhdGhGcm9tVWlkKGRhdGFEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcsIGRhdGFSZWdleHA6IFJlZ0V4cCk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gZGF0YVJlZ2V4cC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBvYmplY3Qgd2l0aCBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihkYXRhRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUdBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLG1CQUFBLEdBQUFMLE9BQUE7QUFNQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxxQkFBQSxHQUFBUixPQUFBO0FBS0EsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsVUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsV0FBQSxHQUFBYixPQUFBO0FBQTJFLFNBQUFELHVCQUFBZSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxvQkFBQSxrQkEzQjNFLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFNBQUFwQixDQUFBLENBQUFELENBQUEsV0FBQWtCLE1BQUEsbUJBQUFqQixDQUFBLElBQUFpQixNQUFBLFlBQUFBLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxnQkFBQW9CLEtBQUFyQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLFFBQUFLLENBQUEsR0FBQVYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFNBQUEsWUFBQW1CLFNBQUEsR0FBQXZCLENBQUEsR0FBQXVCLFNBQUEsRUFBQVgsQ0FBQSxHQUFBVCxNQUFBLENBQUFxQixNQUFBLENBQUFkLENBQUEsQ0FBQU4sU0FBQSxHQUFBVSxDQUFBLE9BQUFXLE9BQUEsQ0FBQXBCLENBQUEsZ0JBQUFFLENBQUEsQ0FBQUssQ0FBQSxlQUFBSCxLQUFBLEVBQUFpQixnQkFBQSxDQUFBekIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFZLENBQUEsTUFBQUYsQ0FBQSxhQUFBZSxTQUFBMUIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsbUJBQUEwQixJQUFBLFlBQUFDLEdBQUEsRUFBQTVCLENBQUEsQ0FBQTZCLElBQUEsQ0FBQTlCLENBQUEsRUFBQUUsQ0FBQSxjQUFBRCxDQUFBLGFBQUEyQixJQUFBLFdBQUFDLEdBQUEsRUFBQTVCLENBQUEsUUFBQUQsQ0FBQSxDQUFBc0IsSUFBQSxHQUFBQSxJQUFBLE1BQUFTLENBQUEscUJBQUFDLENBQUEscUJBQUFDLENBQUEsZ0JBQUFDLENBQUEsZ0JBQUFDLENBQUEsZ0JBQUFaLFVBQUEsY0FBQWEsa0JBQUEsY0FBQUMsMkJBQUEsU0FBQUMsQ0FBQSxPQUFBcEIsTUFBQSxDQUFBb0IsQ0FBQSxFQUFBMUIsQ0FBQSxxQ0FBQTJCLENBQUEsR0FBQXBDLE1BQUEsQ0FBQXFDLGNBQUEsRUFBQUMsQ0FBQSxHQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUEsQ0FBQSxDQUFBRyxNQUFBLFFBQUFELENBQUEsSUFBQUEsQ0FBQSxLQUFBdkMsQ0FBQSxJQUFBRyxDQUFBLENBQUF5QixJQUFBLENBQUFXLENBQUEsRUFBQTdCLENBQUEsTUFBQTBCLENBQUEsR0FBQUcsQ0FBQSxPQUFBRSxDQUFBLEdBQUFOLDBCQUFBLENBQUFqQyxTQUFBLEdBQUFtQixTQUFBLENBQUFuQixTQUFBLEdBQUFELE1BQUEsQ0FBQXFCLE1BQUEsQ0FBQWMsQ0FBQSxZQUFBTSxzQkFBQTNDLENBQUEsZ0NBQUE0QyxPQUFBLFdBQUE3QyxDQUFBLElBQUFrQixNQUFBLENBQUFqQixDQUFBLEVBQUFELENBQUEsWUFBQUMsQ0FBQSxnQkFBQTZDLE9BQUEsQ0FBQTlDLENBQUEsRUFBQUMsQ0FBQSxzQkFBQThDLGNBQUE5QyxDQUFBLEVBQUFELENBQUEsYUFBQWdELE9BQUE5QyxDQUFBLEVBQUFLLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLFFBQUFFLENBQUEsR0FBQWEsUUFBQSxDQUFBMUIsQ0FBQSxDQUFBQyxDQUFBLEdBQUFELENBQUEsRUFBQU0sQ0FBQSxtQkFBQU8sQ0FBQSxDQUFBYyxJQUFBLFFBQUFaLENBQUEsR0FBQUYsQ0FBQSxDQUFBZSxHQUFBLEVBQUFFLENBQUEsR0FBQWYsQ0FBQSxDQUFBUCxLQUFBLFNBQUFzQixDQUFBLGdCQUFBa0IsT0FBQSxDQUFBbEIsQ0FBQSxLQUFBMUIsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBQyxDQUFBLGVBQUEvQixDQUFBLENBQUFrRCxPQUFBLENBQUFuQixDQUFBLENBQUFvQixPQUFBLEVBQUFDLElBQUEsV0FBQW5ELENBQUEsSUFBQStDLE1BQUEsU0FBQS9DLENBQUEsRUFBQVMsQ0FBQSxFQUFBRSxDQUFBLGdCQUFBWCxDQUFBLElBQUErQyxNQUFBLFVBQUEvQyxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxRQUFBWixDQUFBLENBQUFrRCxPQUFBLENBQUFuQixDQUFBLEVBQUFxQixJQUFBLFdBQUFuRCxDQUFBLElBQUFlLENBQUEsQ0FBQVAsS0FBQSxHQUFBUixDQUFBLEVBQUFTLENBQUEsQ0FBQU0sQ0FBQSxnQkFBQWYsQ0FBQSxXQUFBK0MsTUFBQSxVQUFBL0MsQ0FBQSxFQUFBUyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxDQUFBRSxDQUFBLENBQUFlLEdBQUEsU0FBQTNCLENBQUEsRUFBQUssQ0FBQSxvQkFBQUUsS0FBQSxXQUFBQSxNQUFBUixDQUFBLEVBQUFJLENBQUEsYUFBQWdELDJCQUFBLGVBQUFyRCxDQUFBLFdBQUFBLENBQUEsRUFBQUUsQ0FBQSxJQUFBOEMsTUFBQSxDQUFBL0MsQ0FBQSxFQUFBSSxDQUFBLEVBQUFMLENBQUEsRUFBQUUsQ0FBQSxnQkFBQUEsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUEsQ0FBQWtELElBQUEsQ0FBQUMsMEJBQUEsRUFBQUEsMEJBQUEsSUFBQUEsMEJBQUEscUJBQUEzQixpQkFBQTFCLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLFFBQUFFLENBQUEsR0FBQXdCLENBQUEsbUJBQUFyQixDQUFBLEVBQUFFLENBQUEsUUFBQUwsQ0FBQSxLQUFBMEIsQ0FBQSxZQUFBcUIsS0FBQSxzQ0FBQS9DLENBQUEsS0FBQTJCLENBQUEsb0JBQUF4QixDQUFBLFFBQUFFLENBQUEsV0FBQUgsS0FBQSxFQUFBUixDQUFBLEVBQUFzRCxJQUFBLGVBQUFsRCxDQUFBLENBQUFtRCxNQUFBLEdBQUE5QyxDQUFBLEVBQUFMLENBQUEsQ0FBQXdCLEdBQUEsR0FBQWpCLENBQUEsVUFBQUUsQ0FBQSxHQUFBVCxDQUFBLENBQUFvRCxRQUFBLE1BQUEzQyxDQUFBLFFBQUFFLENBQUEsR0FBQTBDLG1CQUFBLENBQUE1QyxDQUFBLEVBQUFULENBQUEsT0FBQVcsQ0FBQSxRQUFBQSxDQUFBLEtBQUFtQixDQUFBLG1CQUFBbkIsQ0FBQSxxQkFBQVgsQ0FBQSxDQUFBbUQsTUFBQSxFQUFBbkQsQ0FBQSxDQUFBc0QsSUFBQSxHQUFBdEQsQ0FBQSxDQUFBdUQsS0FBQSxHQUFBdkQsQ0FBQSxDQUFBd0IsR0FBQSxzQkFBQXhCLENBQUEsQ0FBQW1ELE1BQUEsUUFBQWpELENBQUEsS0FBQXdCLENBQUEsUUFBQXhCLENBQUEsR0FBQTJCLENBQUEsRUFBQTdCLENBQUEsQ0FBQXdCLEdBQUEsRUFBQXhCLENBQUEsQ0FBQXdELGlCQUFBLENBQUF4RCxDQUFBLENBQUF3QixHQUFBLHVCQUFBeEIsQ0FBQSxDQUFBbUQsTUFBQSxJQUFBbkQsQ0FBQSxDQUFBeUQsTUFBQSxXQUFBekQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBdEIsQ0FBQSxHQUFBMEIsQ0FBQSxNQUFBSyxDQUFBLEdBQUFYLFFBQUEsQ0FBQTNCLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLG9CQUFBaUMsQ0FBQSxDQUFBVixJQUFBLFFBQUFyQixDQUFBLEdBQUFGLENBQUEsQ0FBQWtELElBQUEsR0FBQXJCLENBQUEsR0FBQUYsQ0FBQSxFQUFBTSxDQUFBLENBQUFULEdBQUEsS0FBQU0sQ0FBQSxxQkFBQTFCLEtBQUEsRUFBQTZCLENBQUEsQ0FBQVQsR0FBQSxFQUFBMEIsSUFBQSxFQUFBbEQsQ0FBQSxDQUFBa0QsSUFBQSxrQkFBQWpCLENBQUEsQ0FBQVYsSUFBQSxLQUFBckIsQ0FBQSxHQUFBMkIsQ0FBQSxFQUFBN0IsQ0FBQSxDQUFBbUQsTUFBQSxZQUFBbkQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBUyxDQUFBLENBQUFULEdBQUEsbUJBQUE2QixvQkFBQTFELENBQUEsRUFBQUUsQ0FBQSxRQUFBRyxDQUFBLEdBQUFILENBQUEsQ0FBQXNELE1BQUEsRUFBQWpELENBQUEsR0FBQVAsQ0FBQSxDQUFBYSxRQUFBLENBQUFSLENBQUEsT0FBQUUsQ0FBQSxLQUFBTixDQUFBLFNBQUFDLENBQUEsQ0FBQXVELFFBQUEscUJBQUFwRCxDQUFBLElBQUFMLENBQUEsQ0FBQWEsUUFBQSxlQUFBWCxDQUFBLENBQUFzRCxNQUFBLGFBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUE1QixDQUFBLEVBQUF5RCxtQkFBQSxDQUFBMUQsQ0FBQSxFQUFBRSxDQUFBLGVBQUFBLENBQUEsQ0FBQXNELE1BQUEsa0JBQUFuRCxDQUFBLEtBQUFILENBQUEsQ0FBQXNELE1BQUEsWUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsT0FBQWtDLFNBQUEsdUNBQUExRCxDQUFBLGlCQUFBOEIsQ0FBQSxNQUFBekIsQ0FBQSxHQUFBaUIsUUFBQSxDQUFBcEIsQ0FBQSxFQUFBUCxDQUFBLENBQUFhLFFBQUEsRUFBQVgsQ0FBQSxDQUFBMkIsR0FBQSxtQkFBQW5CLENBQUEsQ0FBQWtCLElBQUEsU0FBQTFCLENBQUEsQ0FBQXNELE1BQUEsWUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQW5CLENBQUEsQ0FBQW1CLEdBQUEsRUFBQTNCLENBQUEsQ0FBQXVELFFBQUEsU0FBQXRCLENBQUEsTUFBQXZCLENBQUEsR0FBQUYsQ0FBQSxDQUFBbUIsR0FBQSxTQUFBakIsQ0FBQSxHQUFBQSxDQUFBLENBQUEyQyxJQUFBLElBQUFyRCxDQUFBLENBQUFGLENBQUEsQ0FBQWdFLFVBQUEsSUFBQXBELENBQUEsQ0FBQUgsS0FBQSxFQUFBUCxDQUFBLENBQUErRCxJQUFBLEdBQUFqRSxDQUFBLENBQUFrRSxPQUFBLGVBQUFoRSxDQUFBLENBQUFzRCxNQUFBLEtBQUF0RCxDQUFBLENBQUFzRCxNQUFBLFdBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUE1QixDQUFBLEdBQUFDLENBQUEsQ0FBQXVELFFBQUEsU0FBQXRCLENBQUEsSUFBQXZCLENBQUEsSUFBQVYsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxPQUFBa0MsU0FBQSxzQ0FBQTdELENBQUEsQ0FBQXVELFFBQUEsU0FBQXRCLENBQUEsY0FBQWdDLGFBQUFsRSxDQUFBLFFBQUFELENBQUEsS0FBQW9FLE1BQUEsRUFBQW5FLENBQUEsWUFBQUEsQ0FBQSxLQUFBRCxDQUFBLENBQUFxRSxRQUFBLEdBQUFwRSxDQUFBLFdBQUFBLENBQUEsS0FBQUQsQ0FBQSxDQUFBc0UsVUFBQSxHQUFBckUsQ0FBQSxLQUFBRCxDQUFBLENBQUF1RSxRQUFBLEdBQUF0RSxDQUFBLFdBQUF1RSxVQUFBLENBQUFDLElBQUEsQ0FBQXpFLENBQUEsY0FBQTBFLGNBQUF6RSxDQUFBLFFBQUFELENBQUEsR0FBQUMsQ0FBQSxDQUFBMEUsVUFBQSxRQUFBM0UsQ0FBQSxDQUFBNEIsSUFBQSxvQkFBQTVCLENBQUEsQ0FBQTZCLEdBQUEsRUFBQTVCLENBQUEsQ0FBQTBFLFVBQUEsR0FBQTNFLENBQUEsYUFBQXlCLFFBQUF4QixDQUFBLFNBQUF1RSxVQUFBLE1BQUFKLE1BQUEsYUFBQW5FLENBQUEsQ0FBQTRDLE9BQUEsQ0FBQXNCLFlBQUEsY0FBQVMsS0FBQSxpQkFBQWxDLE9BQUExQyxDQUFBLFFBQUFBLENBQUEsV0FBQUEsQ0FBQSxRQUFBRSxDQUFBLEdBQUFGLENBQUEsQ0FBQVksQ0FBQSxPQUFBVixDQUFBLFNBQUFBLENBQUEsQ0FBQTRCLElBQUEsQ0FBQTlCLENBQUEsNEJBQUFBLENBQUEsQ0FBQWlFLElBQUEsU0FBQWpFLENBQUEsT0FBQTZFLEtBQUEsQ0FBQTdFLENBQUEsQ0FBQThFLE1BQUEsU0FBQXZFLENBQUEsT0FBQUcsQ0FBQSxZQUFBdUQsS0FBQSxhQUFBMUQsQ0FBQSxHQUFBUCxDQUFBLENBQUE4RSxNQUFBLE9BQUF6RSxDQUFBLENBQUF5QixJQUFBLENBQUE5QixDQUFBLEVBQUFPLENBQUEsVUFBQTBELElBQUEsQ0FBQXhELEtBQUEsR0FBQVQsQ0FBQSxDQUFBTyxDQUFBLEdBQUEwRCxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxTQUFBQSxJQUFBLENBQUF4RCxLQUFBLEdBQUFSLENBQUEsRUFBQWdFLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFlBQUF2RCxDQUFBLENBQUF1RCxJQUFBLEdBQUF2RCxDQUFBLGdCQUFBcUQsU0FBQSxDQUFBZCxPQUFBLENBQUFqRCxDQUFBLGtDQUFBb0MsaUJBQUEsQ0FBQWhDLFNBQUEsR0FBQWlDLDBCQUFBLEVBQUE5QixDQUFBLENBQUFvQyxDQUFBLG1CQUFBbEMsS0FBQSxFQUFBNEIsMEJBQUEsRUFBQWpCLFlBQUEsU0FBQWIsQ0FBQSxDQUFBOEIsMEJBQUEsbUJBQUE1QixLQUFBLEVBQUEyQixpQkFBQSxFQUFBaEIsWUFBQSxTQUFBZ0IsaUJBQUEsQ0FBQTJDLFdBQUEsR0FBQTdELE1BQUEsQ0FBQW1CLDBCQUFBLEVBQUFyQixDQUFBLHdCQUFBaEIsQ0FBQSxDQUFBZ0YsbUJBQUEsYUFBQS9FLENBQUEsUUFBQUQsQ0FBQSx3QkFBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFnRixXQUFBLFdBQUFqRixDQUFBLEtBQUFBLENBQUEsS0FBQW9DLGlCQUFBLDZCQUFBcEMsQ0FBQSxDQUFBK0UsV0FBQSxJQUFBL0UsQ0FBQSxDQUFBa0YsSUFBQSxPQUFBbEYsQ0FBQSxDQUFBbUYsSUFBQSxhQUFBbEYsQ0FBQSxXQUFBRSxNQUFBLENBQUFpRixjQUFBLEdBQUFqRixNQUFBLENBQUFpRixjQUFBLENBQUFuRixDQUFBLEVBQUFvQywwQkFBQSxLQUFBcEMsQ0FBQSxDQUFBb0YsU0FBQSxHQUFBaEQsMEJBQUEsRUFBQW5CLE1BQUEsQ0FBQWpCLENBQUEsRUFBQWUsQ0FBQSx5QkFBQWYsQ0FBQSxDQUFBRyxTQUFBLEdBQUFELE1BQUEsQ0FBQXFCLE1BQUEsQ0FBQW1CLENBQUEsR0FBQTFDLENBQUEsS0FBQUQsQ0FBQSxDQUFBc0YsS0FBQSxhQUFBckYsQ0FBQSxhQUFBa0QsT0FBQSxFQUFBbEQsQ0FBQSxPQUFBMkMscUJBQUEsQ0FBQUcsYUFBQSxDQUFBM0MsU0FBQSxHQUFBYyxNQUFBLENBQUE2QixhQUFBLENBQUEzQyxTQUFBLEVBQUFVLENBQUEsaUNBQUFkLENBQUEsQ0FBQStDLGFBQUEsR0FBQUEsYUFBQSxFQUFBL0MsQ0FBQSxDQUFBdUYsS0FBQSxhQUFBdEYsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLGVBQUFBLENBQUEsS0FBQUEsQ0FBQSxHQUFBOEUsT0FBQSxPQUFBNUUsQ0FBQSxPQUFBbUMsYUFBQSxDQUFBekIsSUFBQSxDQUFBckIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxHQUFBRyxDQUFBLFVBQUFWLENBQUEsQ0FBQWdGLG1CQUFBLENBQUE5RSxDQUFBLElBQUFVLENBQUEsR0FBQUEsQ0FBQSxDQUFBcUQsSUFBQSxHQUFBYixJQUFBLFdBQUFuRCxDQUFBLFdBQUFBLENBQUEsQ0FBQXNELElBQUEsR0FBQXRELENBQUEsQ0FBQVEsS0FBQSxHQUFBRyxDQUFBLENBQUFxRCxJQUFBLFdBQUFyQixxQkFBQSxDQUFBRCxDQUFBLEdBQUF6QixNQUFBLENBQUF5QixDQUFBLEVBQUEzQixDQUFBLGdCQUFBRSxNQUFBLENBQUF5QixDQUFBLEVBQUEvQixDQUFBLGlDQUFBTSxNQUFBLENBQUF5QixDQUFBLDZEQUFBM0MsQ0FBQSxDQUFBeUYsSUFBQSxhQUFBeEYsQ0FBQSxRQUFBRCxDQUFBLEdBQUFHLE1BQUEsQ0FBQUYsQ0FBQSxHQUFBQyxDQUFBLGdCQUFBRyxDQUFBLElBQUFMLENBQUEsRUFBQUUsQ0FBQSxDQUFBdUUsSUFBQSxDQUFBcEUsQ0FBQSxVQUFBSCxDQUFBLENBQUF3RixPQUFBLGFBQUF6QixLQUFBLFdBQUEvRCxDQUFBLENBQUE0RSxNQUFBLFNBQUE3RSxDQUFBLEdBQUFDLENBQUEsQ0FBQXlGLEdBQUEsUUFBQTFGLENBQUEsSUFBQUQsQ0FBQSxTQUFBaUUsSUFBQSxDQUFBeEQsS0FBQSxHQUFBUixDQUFBLEVBQUFnRSxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxXQUFBQSxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxRQUFBakUsQ0FBQSxDQUFBMEMsTUFBQSxHQUFBQSxNQUFBLEVBQUFqQixPQUFBLENBQUFyQixTQUFBLEtBQUE2RSxXQUFBLEVBQUF4RCxPQUFBLEVBQUFtRCxLQUFBLFdBQUFBLE1BQUE1RSxDQUFBLGFBQUE0RixJQUFBLFdBQUEzQixJQUFBLFdBQUFOLElBQUEsUUFBQUMsS0FBQSxHQUFBM0QsQ0FBQSxPQUFBc0QsSUFBQSxZQUFBRSxRQUFBLGNBQUFELE1BQUEsZ0JBQUEzQixHQUFBLEdBQUE1QixDQUFBLE9BQUF1RSxVQUFBLENBQUEzQixPQUFBLENBQUE2QixhQUFBLElBQUExRSxDQUFBLFdBQUFFLENBQUEsa0JBQUFBLENBQUEsQ0FBQTJGLE1BQUEsT0FBQXhGLENBQUEsQ0FBQXlCLElBQUEsT0FBQTVCLENBQUEsTUFBQTJFLEtBQUEsRUFBQTNFLENBQUEsQ0FBQTRGLEtBQUEsY0FBQTVGLENBQUEsSUFBQUQsQ0FBQSxNQUFBOEYsSUFBQSxXQUFBQSxLQUFBLFNBQUF4QyxJQUFBLFdBQUF0RCxDQUFBLFFBQUF1RSxVQUFBLElBQUFHLFVBQUEsa0JBQUExRSxDQUFBLENBQUEyQixJQUFBLFFBQUEzQixDQUFBLENBQUE0QixHQUFBLGNBQUFtRSxJQUFBLEtBQUFuQyxpQkFBQSxXQUFBQSxrQkFBQTdELENBQUEsYUFBQXVELElBQUEsUUFBQXZELENBQUEsTUFBQUUsQ0FBQSxrQkFBQStGLE9BQUE1RixDQUFBLEVBQUFFLENBQUEsV0FBQUssQ0FBQSxDQUFBZ0IsSUFBQSxZQUFBaEIsQ0FBQSxDQUFBaUIsR0FBQSxHQUFBN0IsQ0FBQSxFQUFBRSxDQUFBLENBQUErRCxJQUFBLEdBQUE1RCxDQUFBLEVBQUFFLENBQUEsS0FBQUwsQ0FBQSxDQUFBc0QsTUFBQSxXQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxHQUFBNUIsQ0FBQSxLQUFBTSxDQUFBLGFBQUFBLENBQUEsUUFBQWlFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBdkUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFHLENBQUEsUUFBQThELFVBQUEsQ0FBQWpFLENBQUEsR0FBQUssQ0FBQSxHQUFBRixDQUFBLENBQUFpRSxVQUFBLGlCQUFBakUsQ0FBQSxDQUFBMEQsTUFBQSxTQUFBNkIsTUFBQSxhQUFBdkYsQ0FBQSxDQUFBMEQsTUFBQSxTQUFBd0IsSUFBQSxRQUFBOUUsQ0FBQSxHQUFBVCxDQUFBLENBQUF5QixJQUFBLENBQUFwQixDQUFBLGVBQUFNLENBQUEsR0FBQVgsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBcEIsQ0FBQSxxQkFBQUksQ0FBQSxJQUFBRSxDQUFBLGFBQUE0RSxJQUFBLEdBQUFsRixDQUFBLENBQUEyRCxRQUFBLFNBQUE0QixNQUFBLENBQUF2RixDQUFBLENBQUEyRCxRQUFBLGdCQUFBdUIsSUFBQSxHQUFBbEYsQ0FBQSxDQUFBNEQsVUFBQSxTQUFBMkIsTUFBQSxDQUFBdkYsQ0FBQSxDQUFBNEQsVUFBQSxjQUFBeEQsQ0FBQSxhQUFBOEUsSUFBQSxHQUFBbEYsQ0FBQSxDQUFBMkQsUUFBQSxTQUFBNEIsTUFBQSxDQUFBdkYsQ0FBQSxDQUFBMkQsUUFBQSxxQkFBQXJELENBQUEsWUFBQXNDLEtBQUEscURBQUFzQyxJQUFBLEdBQUFsRixDQUFBLENBQUE0RCxVQUFBLFNBQUEyQixNQUFBLENBQUF2RixDQUFBLENBQUE0RCxVQUFBLFlBQUFSLE1BQUEsV0FBQUEsT0FBQTdELENBQUEsRUFBQUQsQ0FBQSxhQUFBRSxDQUFBLFFBQUFzRSxVQUFBLENBQUFNLE1BQUEsTUFBQTVFLENBQUEsU0FBQUEsQ0FBQSxRQUFBSyxDQUFBLFFBQUFpRSxVQUFBLENBQUF0RSxDQUFBLE9BQUFLLENBQUEsQ0FBQTZELE1BQUEsU0FBQXdCLElBQUEsSUFBQXZGLENBQUEsQ0FBQXlCLElBQUEsQ0FBQXZCLENBQUEsd0JBQUFxRixJQUFBLEdBQUFyRixDQUFBLENBQUErRCxVQUFBLFFBQUE1RCxDQUFBLEdBQUFILENBQUEsYUFBQUcsQ0FBQSxpQkFBQVQsQ0FBQSxtQkFBQUEsQ0FBQSxLQUFBUyxDQUFBLENBQUEwRCxNQUFBLElBQUFwRSxDQUFBLElBQUFBLENBQUEsSUFBQVUsQ0FBQSxDQUFBNEQsVUFBQSxLQUFBNUQsQ0FBQSxjQUFBRSxDQUFBLEdBQUFGLENBQUEsR0FBQUEsQ0FBQSxDQUFBaUUsVUFBQSxjQUFBL0QsQ0FBQSxDQUFBZ0IsSUFBQSxHQUFBM0IsQ0FBQSxFQUFBVyxDQUFBLENBQUFpQixHQUFBLEdBQUE3QixDQUFBLEVBQUFVLENBQUEsU0FBQThDLE1BQUEsZ0JBQUFTLElBQUEsR0FBQXZELENBQUEsQ0FBQTRELFVBQUEsRUFBQW5DLENBQUEsU0FBQStELFFBQUEsQ0FBQXRGLENBQUEsTUFBQXNGLFFBQUEsV0FBQUEsU0FBQWpHLENBQUEsRUFBQUQsQ0FBQSxvQkFBQUMsQ0FBQSxDQUFBMkIsSUFBQSxRQUFBM0IsQ0FBQSxDQUFBNEIsR0FBQSxxQkFBQTVCLENBQUEsQ0FBQTJCLElBQUEsbUJBQUEzQixDQUFBLENBQUEyQixJQUFBLFFBQUFxQyxJQUFBLEdBQUFoRSxDQUFBLENBQUE0QixHQUFBLGdCQUFBNUIsQ0FBQSxDQUFBMkIsSUFBQSxTQUFBb0UsSUFBQSxRQUFBbkUsR0FBQSxHQUFBNUIsQ0FBQSxDQUFBNEIsR0FBQSxPQUFBMkIsTUFBQSxrQkFBQVMsSUFBQSx5QkFBQWhFLENBQUEsQ0FBQTJCLElBQUEsSUFBQTVCLENBQUEsVUFBQWlFLElBQUEsR0FBQWpFLENBQUEsR0FBQW1DLENBQUEsS0FBQWdFLE1BQUEsV0FBQUEsT0FBQWxHLENBQUEsYUFBQUQsQ0FBQSxRQUFBd0UsVUFBQSxDQUFBTSxNQUFBLE1BQUE5RSxDQUFBLFNBQUFBLENBQUEsUUFBQUUsQ0FBQSxRQUFBc0UsVUFBQSxDQUFBeEUsQ0FBQSxPQUFBRSxDQUFBLENBQUFvRSxVQUFBLEtBQUFyRSxDQUFBLGNBQUFpRyxRQUFBLENBQUFoRyxDQUFBLENBQUF5RSxVQUFBLEVBQUF6RSxDQUFBLENBQUFxRSxRQUFBLEdBQUFHLGFBQUEsQ0FBQXhFLENBQUEsR0FBQWlDLENBQUEseUJBQUFpRSxPQUFBbkcsQ0FBQSxhQUFBRCxDQUFBLFFBQUF3RSxVQUFBLENBQUFNLE1BQUEsTUFBQTlFLENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUFzRSxVQUFBLENBQUF4RSxDQUFBLE9BQUFFLENBQUEsQ0FBQWtFLE1BQUEsS0FBQW5FLENBQUEsUUFBQUksQ0FBQSxHQUFBSCxDQUFBLENBQUF5RSxVQUFBLGtCQUFBdEUsQ0FBQSxDQUFBdUIsSUFBQSxRQUFBckIsQ0FBQSxHQUFBRixDQUFBLENBQUF3QixHQUFBLEVBQUE2QyxhQUFBLENBQUF4RSxDQUFBLFlBQUFLLENBQUEsZ0JBQUErQyxLQUFBLDhCQUFBK0MsYUFBQSxXQUFBQSxjQUFBckcsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsZ0JBQUFvRCxRQUFBLEtBQUE1QyxRQUFBLEVBQUE2QixNQUFBLENBQUExQyxDQUFBLEdBQUFnRSxVQUFBLEVBQUE5RCxDQUFBLEVBQUFnRSxPQUFBLEVBQUE3RCxDQUFBLG9CQUFBbUQsTUFBQSxVQUFBM0IsR0FBQSxHQUFBNUIsQ0FBQSxHQUFBa0MsQ0FBQSxPQUFBbkMsQ0FBQTtBQUFBLFNBQUFzRyxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUE1QyxTQUFBO0FBQUEsU0FBQTBDLGlCQUFBRyxJQUFBLGVBQUFqRyxNQUFBLG9CQUFBaUcsSUFBQSxDQUFBakcsTUFBQSxDQUFBRSxRQUFBLGFBQUErRixJQUFBLCtCQUFBQyxLQUFBLENBQUFDLElBQUEsQ0FBQUYsSUFBQTtBQUFBLFNBQUFKLG1CQUFBRCxHQUFBLFFBQUFNLEtBQUEsQ0FBQUUsT0FBQSxDQUFBUixHQUFBLFVBQUFTLGlCQUFBLENBQUFULEdBQUE7QUFBQSxTQUFBVSwyQkFBQTFHLENBQUEsRUFBQTJHLGNBQUEsUUFBQUMsRUFBQSxVQUFBeEcsTUFBQSxvQkFBQUosQ0FBQSxDQUFBSSxNQUFBLENBQUFFLFFBQUEsS0FBQU4sQ0FBQSxxQkFBQTRHLEVBQUEsUUFBQU4sS0FBQSxDQUFBRSxPQUFBLENBQUF4RyxDQUFBLE1BQUE0RyxFQUFBLEdBQUFULDJCQUFBLENBQUFuRyxDQUFBLE1BQUEyRyxjQUFBLElBQUEzRyxDQUFBLFdBQUFBLENBQUEsQ0FBQXVFLE1BQUEscUJBQUFxQyxFQUFBLEVBQUE1RyxDQUFBLEdBQUE0RyxFQUFBLE1BQUF6RyxDQUFBLFVBQUEwRyxDQUFBLFlBQUFBLEVBQUEsZUFBQWxGLENBQUEsRUFBQWtGLENBQUEsRUFBQS9HLENBQUEsV0FBQUEsRUFBQSxRQUFBSyxDQUFBLElBQUFILENBQUEsQ0FBQXVFLE1BQUEsV0FBQXZCLElBQUEsbUJBQUFBLElBQUEsU0FBQTlDLEtBQUEsRUFBQUYsQ0FBQSxDQUFBRyxDQUFBLFVBQUFWLENBQUEsV0FBQUEsRUFBQXFILEVBQUEsVUFBQUEsRUFBQSxLQUFBcEYsQ0FBQSxFQUFBbUYsQ0FBQSxnQkFBQXJELFNBQUEsaUpBQUF1RCxnQkFBQSxTQUFBQyxNQUFBLFVBQUFDLEdBQUEsV0FBQXRGLENBQUEsV0FBQUEsRUFBQSxJQUFBaUYsRUFBQSxHQUFBQSxFQUFBLENBQUFyRixJQUFBLENBQUF2QixDQUFBLE1BQUFGLENBQUEsV0FBQUEsRUFBQSxRQUFBb0gsSUFBQSxHQUFBTixFQUFBLENBQUFsRCxJQUFBLElBQUFxRCxnQkFBQSxHQUFBRyxJQUFBLENBQUFsRSxJQUFBLFNBQUFrRSxJQUFBLEtBQUF6SCxDQUFBLFdBQUFBLEVBQUEwSCxHQUFBLElBQUFILE1BQUEsU0FBQUMsR0FBQSxHQUFBRSxHQUFBLEtBQUF6RixDQUFBLFdBQUFBLEVBQUEsZUFBQXFGLGdCQUFBLElBQUFILEVBQUEsb0JBQUFBLEVBQUEsOEJBQUFJLE1BQUEsUUFBQUMsR0FBQTtBQUFBLFNBQUFkLDRCQUFBbkcsQ0FBQSxFQUFBb0gsTUFBQSxTQUFBcEgsQ0FBQSxxQkFBQUEsQ0FBQSxzQkFBQXlHLGlCQUFBLENBQUF6RyxDQUFBLEVBQUFvSCxNQUFBLE9BQUF0SCxDQUFBLEdBQUFGLE1BQUEsQ0FBQUMsU0FBQSxDQUFBd0gsUUFBQSxDQUFBOUYsSUFBQSxDQUFBdkIsQ0FBQSxFQUFBdUYsS0FBQSxhQUFBekYsQ0FBQSxpQkFBQUUsQ0FBQSxDQUFBMEUsV0FBQSxFQUFBNUUsQ0FBQSxHQUFBRSxDQUFBLENBQUEwRSxXQUFBLENBQUFDLElBQUEsTUFBQTdFLENBQUEsY0FBQUEsQ0FBQSxtQkFBQXdHLEtBQUEsQ0FBQUMsSUFBQSxDQUFBdkcsQ0FBQSxPQUFBRixDQUFBLCtEQUFBd0gsSUFBQSxDQUFBeEgsQ0FBQSxVQUFBMkcsaUJBQUEsQ0FBQXpHLENBQUEsRUFBQW9ILE1BQUE7QUFBQSxTQUFBWCxrQkFBQVQsR0FBQSxFQUFBdUIsR0FBQSxRQUFBQSxHQUFBLFlBQUFBLEdBQUEsR0FBQXZCLEdBQUEsQ0FBQXpCLE1BQUEsRUFBQWdELEdBQUEsR0FBQXZCLEdBQUEsQ0FBQXpCLE1BQUEsV0FBQXBFLENBQUEsTUFBQXFILElBQUEsT0FBQWxCLEtBQUEsQ0FBQWlCLEdBQUEsR0FBQXBILENBQUEsR0FBQW9ILEdBQUEsRUFBQXBILENBQUEsSUFBQXFILElBQUEsQ0FBQXJILENBQUEsSUFBQTZGLEdBQUEsQ0FBQTdGLENBQUEsVUFBQXFILElBQUE7QUFBQSxTQUFBQyxZQUFBLElBQUFBLFdBQUEsWUFBQUEsWUFBQWhJLENBQUEsRUFBQUUsQ0FBQSxlQUFBK0gsV0FBQSxDQUFBakksQ0FBQSxVQUFBRSxDQUFBLFVBQUFGLENBQUEsR0FBQWtJLE1BQUEsQ0FBQTlILFNBQUEsRUFBQUYsQ0FBQSxPQUFBaUksT0FBQSxhQUFBRixZQUFBakksQ0FBQSxFQUFBQyxDQUFBLEVBQUFxQyxDQUFBLFFBQUEvQixDQUFBLE9BQUEySCxNQUFBLENBQUFsSSxDQUFBLEVBQUFDLENBQUEsVUFBQUMsQ0FBQSxDQUFBa0ksR0FBQSxDQUFBN0gsQ0FBQSxFQUFBK0IsQ0FBQSxJQUFBcEMsQ0FBQSxDQUFBbUksR0FBQSxDQUFBckksQ0FBQSxJQUFBc0ksZUFBQSxDQUFBL0gsQ0FBQSxFQUFBMEgsV0FBQSxDQUFBN0gsU0FBQSxjQUFBbUksWUFBQXZJLENBQUEsRUFBQUMsQ0FBQSxRQUFBcUMsQ0FBQSxHQUFBcEMsQ0FBQSxDQUFBbUksR0FBQSxDQUFBcEksQ0FBQSxVQUFBRSxNQUFBLENBQUFzRixJQUFBLENBQUFuRCxDQUFBLEVBQUFrRyxNQUFBLFdBQUF0SSxDQUFBLEVBQUFELENBQUEsUUFBQU0sQ0FBQSxHQUFBK0IsQ0FBQSxDQUFBckMsQ0FBQSwwQkFBQU0sQ0FBQSxFQUFBTCxDQUFBLENBQUFELENBQUEsSUFBQUQsQ0FBQSxDQUFBTyxDQUFBLGtCQUFBRyxDQUFBLGlCQUFBVixDQUFBLENBQUFPLENBQUEsQ0FBQUcsQ0FBQSxNQUFBQSxDQUFBLE9BQUFILENBQUEsQ0FBQXVFLE1BQUEsR0FBQXBFLENBQUEsSUFBQVIsQ0FBQSxDQUFBRCxDQUFBLElBQUFELENBQUEsQ0FBQU8sQ0FBQSxDQUFBRyxDQUFBLGFBQUFSLENBQUEsS0FBQUMsTUFBQSxDQUFBcUIsTUFBQSxrQkFBQWlILFNBQUEsQ0FBQVIsV0FBQSxFQUFBQyxNQUFBLEdBQUFELFdBQUEsQ0FBQTdILFNBQUEsQ0FBQXNJLElBQUEsYUFBQXhJLENBQUEsUUFBQUQsQ0FBQSxHQUFBRCxDQUFBLENBQUEwSSxJQUFBLENBQUE1RyxJQUFBLE9BQUE1QixDQUFBLE9BQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBMEksTUFBQSxHQUFBSixXQUFBLENBQUF0SSxDQUFBLGFBQUFxQyxDQUFBLEdBQUFyQyxDQUFBLENBQUEySSxPQUFBLEVBQUF0RyxDQUFBLEtBQUFBLENBQUEsQ0FBQXFHLE1BQUEsR0FBQUosV0FBQSxDQUFBakcsQ0FBQSxtQkFBQXJDLENBQUEsS0FBQWdJLFdBQUEsQ0FBQTdILFNBQUEsQ0FBQU8sTUFBQSxDQUFBa0ksT0FBQSxjQUFBNUksQ0FBQSxFQUFBcUMsQ0FBQSwyQkFBQUEsQ0FBQSxRQUFBL0IsQ0FBQSxHQUFBTCxDQUFBLENBQUFtSSxHQUFBLGVBQUFySSxDQUFBLENBQUFXLE1BQUEsQ0FBQWtJLE9BQUEsRUFBQS9HLElBQUEsT0FBQTdCLENBQUEsRUFBQXFDLENBQUEsQ0FBQXVHLE9BQUEsMkJBQUE3SSxDQUFBLEVBQUFFLENBQUEsUUFBQUQsQ0FBQSxHQUFBTSxDQUFBLENBQUFMLENBQUEsaUJBQUEyRyxLQUFBLENBQUFFLE9BQUEsQ0FBQTlHLENBQUEsSUFBQUEsQ0FBQSxDQUFBNkksSUFBQSxRQUFBN0ksQ0FBQSxtQ0FBQXFDLENBQUEsUUFBQTVCLENBQUEsZ0JBQUFWLENBQUEsQ0FBQVcsTUFBQSxDQUFBa0ksT0FBQSxFQUFBL0csSUFBQSxPQUFBN0IsQ0FBQSxvQkFBQUQsQ0FBQSxHQUFBK0ksU0FBQSxxQkFBQTlGLE9BQUEsQ0FBQWpELENBQUEsQ0FBQUEsQ0FBQSxDQUFBOEUsTUFBQSxXQUFBOUUsQ0FBQSxNQUFBOEYsS0FBQSxDQUFBaEUsSUFBQSxDQUFBOUIsQ0FBQSxHQUFBeUUsSUFBQSxDQUFBOEQsV0FBQSxDQUFBdkksQ0FBQSxFQUFBVSxDQUFBLElBQUE0QixDQUFBLENBQUEwRyxLQUFBLE9BQUFoSixDQUFBLGdCQUFBQSxDQUFBLENBQUFXLE1BQUEsQ0FBQWtJLE9BQUEsRUFBQS9HLElBQUEsT0FBQTdCLENBQUEsRUFBQXFDLENBQUEsTUFBQTBGLFdBQUEsQ0FBQWdCLEtBQUEsT0FBQUQsU0FBQTtBQUFBLFNBQUFOLFVBQUFRLFFBQUEsRUFBQUMsVUFBQSxlQUFBQSxVQUFBLG1CQUFBQSxVQUFBLHVCQUFBbkYsU0FBQSwwREFBQWtGLFFBQUEsQ0FBQTdJLFNBQUEsR0FBQUQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBMEgsVUFBQSxJQUFBQSxVQUFBLENBQUE5SSxTQUFBLElBQUE2RSxXQUFBLElBQUF4RSxLQUFBLEVBQUF3SSxRQUFBLEVBQUE1SCxRQUFBLFFBQUFELFlBQUEsYUFBQWpCLE1BQUEsQ0FBQUssY0FBQSxDQUFBeUksUUFBQSxpQkFBQTVILFFBQUEsZ0JBQUE2SCxVQUFBLEVBQUFaLGVBQUEsQ0FBQVcsUUFBQSxFQUFBQyxVQUFBO0FBQUEsU0FBQVosZ0JBQUEvSCxDQUFBLEVBQUErQixDQUFBLElBQUFnRyxlQUFBLEdBQUFuSSxNQUFBLENBQUFpRixjQUFBLEdBQUFqRixNQUFBLENBQUFpRixjQUFBLENBQUErRCxJQUFBLGNBQUFiLGdCQUFBL0gsQ0FBQSxFQUFBK0IsQ0FBQSxJQUFBL0IsQ0FBQSxDQUFBOEUsU0FBQSxHQUFBL0MsQ0FBQSxTQUFBL0IsQ0FBQSxZQUFBK0gsZUFBQSxDQUFBL0gsQ0FBQSxFQUFBK0IsQ0FBQSxLQURBO0FBb0RBLElBQU04RyxnQkFBZ0IsZ0JBQUFwQixXQUFBLENBQ3BCLGlMQUFpVDtFQUFBcUIsWUFBQTtFQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxJQUFBO0VBQUFDLE1BQUE7RUFBQUMsYUFBQTtFQUFBQyxRQUFBO0VBQUFDLFdBQUE7RUFBQUMsWUFBQTtFQUFBQyxPQUFBO0FBQUE7QUFDblQsSUFBTUMsZUFBZSxHQUFHLHdCQUF3QjtBQUNoRCxJQUFNQyxlQUFlLEdBQ25CLDJEQUEyRDtBQUM3RCxJQUFNQyxlQUFlLEdBQUcsK0JBQStCO0FBQ3ZELElBQU1DLG1CQUEyQixHQUMvQixrREFBa0Q7QUFDcEQsSUFBTUMsZ0JBQXdCLEdBQUcsa0NBQWtDO0FBSW5FLFNBQVVDLHNCQUFzQkEsQ0FDOUJDLE9BQWUsRUFDZmQsV0FBd0IsRUFDeEJlLFFBQW1CLEVBQ25CQyxhQUErQixFQUMvQkMsYUFBdUI7RUFBQSxJQUN2QkMsYUFBcUIsR0FBQTNCLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFBRyxNQUFNO0VBQUEsSUFBQTZCLElBQUEsR0FBQTdCLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFDVSxDQUFDLENBQUM7SUFBQThCLGlCQUFBLEdBQUFELElBQUEsQ0FBeENFLFlBQVk7SUFBWkEsWUFBWSxHQUFBRCxpQkFBQSxjQUFHLEtBQUssR0FBQUEsaUJBQUE7SUFBQUUsUUFBQSxHQUFBSCxJQUFBLENBQUVJLEdBQUc7SUFBSEEsR0FBRyxHQUFBRCxRQUFBLGNBQUcsS0FBSyxHQUFBQSxRQUFBO0VBQUEsb0JBQUFoTCxtQkFBQSxHQUFBb0YsSUFBQSxVQUFBOEYsUUFBQTtJQUFBLElBQUFDLE9BQUEsRUFBQUMsU0FBQSxFQUFBQyxLQUFBLEVBQUFDLE9BQUEsRUFBQUMsa0JBQUEsRUFBQUMsVUFBQSxFQUFBQyxVQUFBLEVBQUFDLE1BQUEsRUFBQUMsYUFBQSxFQUFBQyxZQUFBLEVBQUFDLFlBQUEsRUFBQUMsUUFBQSxFQUFBQyxJQUFBO0lBQUEsT0FBQS9MLG1CQUFBLEdBQUF1QixJQUFBLFVBQUF5SyxTQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQXBHLElBQUEsR0FBQW9HLFFBQUEsQ0FBQS9ILElBQUE7UUFBQTtVQUU3QmlILE9BQU8sR0FBRyxJQUFJZSxHQUFHLENBQVMsQ0FBQztVQUFBZCxTQUFBLEdBQUFsRSwwQkFBQSxDQUNYc0QsUUFBUTtVQUFBeUIsUUFBQSxDQUFBcEcsSUFBQTtVQUFBdUYsU0FBQSxDQUFBakosQ0FBQTtRQUFBO1VBQUEsS0FBQWtKLEtBQUEsR0FBQUQsU0FBQSxDQUFBOUssQ0FBQSxJQUFBa0QsSUFBQTtZQUFBeUksUUFBQSxDQUFBL0gsSUFBQTtZQUFBO1VBQUE7VUFBbkJvSCxPQUFPLEdBQUFELEtBQUEsQ0FBQTNLLEtBQUE7VUFBQSxLQUNaNEssT0FBTyxDQUFDYSxZQUFZO1lBQUFGLFFBQUEsQ0FBQS9ILElBQUE7WUFBQTtVQUFBO1VBQUEsT0FBQStILFFBQUEsQ0FBQWxJLE1BQUE7UUFBQTtVQUFBLE1BSXRCMEYsV0FBVyxLQUFLbUIsU0FBUyxJQUN6Qm5CLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDL0JmLE9BQU8sQ0FBQzdCLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDdkM1QyxXQUFXLEtBQUs2QixPQUFPLENBQUM3QixXQUFXO1lBQUF3QyxRQUFBLENBQUEvSCxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUErSCxRQUFBLENBQUFsSSxNQUFBO1FBQUE7VUFJakN3SCxrQkFBa0IsR0FBRyxJQUFJcEQsTUFBTSxPQUFBbUUsTUFBQSxDQUFPM0IsYUFBYSxNQUFHLENBQUM7VUFDckRhLFVBQVUsR0FBR2UsZ0JBQUksQ0FBQ3hELElBQUksQ0FDMUJ3QixPQUFPLEVBQ1BlLE9BQU8sQ0FBQ2tCLFFBQVEsQ0FBQzFELE9BQU8sQ0FBQ3lDLGtCQUFrQixFQUFFLFVBQVUsQ0FDekQsQ0FBQztVQUFBRSxVQUFBLEdBQUF2RSwwQkFBQSxDQUUyQixJQUFBdUYscUJBQU8sRUFBQ2pCLFVBQVUsRUFBRWQsYUFBYSxDQUFDO1VBQUF1QixRQUFBLENBQUFwRyxJQUFBO1VBQUE0RixVQUFBLENBQUF0SixDQUFBO1FBQUE7VUFBQSxLQUFBdUosTUFBQSxHQUFBRCxVQUFBLENBQUFuTCxDQUFBLElBQUFrRCxJQUFBO1lBQUF5SSxRQUFBLENBQUEvSCxJQUFBO1lBQUE7VUFBQTtVQUFuRHlILGFBQWEsR0FBQUQsTUFBQSxDQUFBaEwsS0FBQTtVQUNoQmtMLFlBQVksR0FBR0QsYUFBYSxDQUFDQSxhQUFhLENBQUM1RyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1VBQUEsSUFDdkQ2RyxZQUFZLENBQUNjLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBQVQsUUFBQSxDQUFBL0gsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBK0gsUUFBQSxDQUFBbEksTUFBQTtRQUFBO1VBRzdCOEgsWUFBWSxHQUFHVSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFBRSxLQUFBLENBQVRzRCxnQkFBSSxHQUFNZixVQUFVLEVBQUFjLE1BQUEsQ0FBQS9GLGtCQUFBLENBQUtvRixhQUFhLEdBQUM7VUFDNUQsSUFBSVYsR0FBRyxFQUFFO1lBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQlQsWUFBWSxXQUFHLENBQUM7VUFDL0M7VUFFSUMsUUFBYSxHQUFHYyxtQkFBRSxDQUFDQyxZQUFZLENBQUNoQixZQUFZLEVBQUU7WUFBRWlCLFFBQVEsRUFBRTtVQUFPLENBQUMsQ0FBQztVQUNuRWYsSUFBTyxHQUFHaEIsWUFBWSxHQUN0QmdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDbEIsUUFBUSxDQUFDLEdBQ3BCckIsYUFBYSxDQUFDcUIsUUFBUSxDQUFDO1VBQUEsS0FFdkJYLE9BQU8sQ0FBQzhCLEdBQUcsQ0FBQ2xCLElBQUksQ0FBQ21CLEdBQUcsQ0FBQztZQUFBakIsUUFBQSxDQUFBL0gsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBK0gsUUFBQSxDQUFBbEksTUFBQTtRQUFBO1VBR3pCb0gsT0FBTyxDQUFDZ0MsR0FBRyxDQUFDcEIsSUFBSSxDQUFDbUIsR0FBRyxDQUFDO1VBQUFqQixRQUFBLENBQUEvSCxJQUFBO1VBQ3JCLE9BQU07WUFBRTZILElBQUksRUFBRUEsSUFBSTtZQUFFcUIsa0JBQWtCLEVBQUU5QixPQUFPLENBQUM3QjtVQUFZLENBQUM7UUFBQTtVQUU3RHFDLFFBQVEsR0FBRyxJQUFJO1FBQUE7VUFBQUcsUUFBQSxDQUFBL0gsSUFBQTtVQUFBO1FBQUE7VUFBQStILFFBQUEsQ0FBQS9ILElBQUE7VUFBQTtRQUFBO1VBQUErSCxRQUFBLENBQUFwRyxJQUFBO1VBQUFvRyxRQUFBLENBQUFvQixFQUFBLEdBQUFwQixRQUFBO1VBQUFSLFVBQUEsQ0FBQXhMLENBQUEsQ0FBQWdNLFFBQUEsQ0FBQW9CLEVBQUE7UUFBQTtVQUFBcEIsUUFBQSxDQUFBcEcsSUFBQTtVQUFBNEYsVUFBQSxDQUFBdkosQ0FBQTtVQUFBLE9BQUErSixRQUFBLENBQUE3RixNQUFBO1FBQUE7VUFBQTZGLFFBQUEsQ0FBQS9ILElBQUE7VUFBQTtRQUFBO1VBQUErSCxRQUFBLENBQUEvSCxJQUFBO1VBQUE7UUFBQTtVQUFBK0gsUUFBQSxDQUFBcEcsSUFBQTtVQUFBb0csUUFBQSxDQUFBcUIsRUFBQSxHQUFBckIsUUFBQTtVQUFBYixTQUFBLENBQUFuTCxDQUFBLENBQUFnTSxRQUFBLENBQUFxQixFQUFBO1FBQUE7VUFBQXJCLFFBQUEsQ0FBQXBHLElBQUE7VUFBQXVGLFNBQUEsQ0FBQWxKLENBQUE7VUFBQSxPQUFBK0osUUFBQSxDQUFBN0YsTUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBNkYsUUFBQSxDQUFBakcsSUFBQTtNQUFBO0lBQUEsR0FBQWtGLE9BQUE7RUFBQTtBQUFBO0FBS2QsU0FBVXFDLHdCQUF3QkEsQ0FDdkNoRCxPQUFlLEVBQ2ZkLFdBQXdCO0VBQUEsSUFDeEIrRCxPQUFPLEdBQUF4RSxTQUFBLENBQUFqRSxNQUFBLFFBQUFpRSxTQUFBLFFBQUE0QixTQUFBLEdBQUE1QixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBQUEsb0JBQUFoSixtQkFBQSxHQUFBb0YsSUFBQSxVQUFBcUksU0FBQTtJQUFBLElBQUFDLFVBQUEsRUFBQUMsTUFBQSxFQUFBQyxZQUFBLEVBQUFDLE1BQUEsRUFBQVQsa0JBQUE7SUFBQSxPQUFBcE4sbUJBQUEsR0FBQXVCLElBQUEsVUFBQXVNLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBbEksSUFBQSxHQUFBa0ksU0FBQSxDQUFBN0osSUFBQTtRQUFBO1VBQUF3SixVQUFBLEdBQUF4RywwQkFBQSxDQVNQb0Qsc0JBQXNCLENBQ3pCQyxPQUFPLEVBQ1BkLFdBQVcsRUFDWGUsa0JBQVEsQ0FBQ3dELGdCQUFnQixFQUN6QkMsMkJBQXVCLENBQUNDLFFBQVEsRUFDaEMsQ0FBQyxTQUFTLENBQUMsRUFDWCxNQUFNLEVBQ05WLE9BQ0YsQ0FBQztVQUFBTyxTQUFBLENBQUFsSSxJQUFBO1VBQUE2SCxVQUFBLENBQUF2TCxDQUFBO1FBQUE7VUFBQSxLQUFBd0wsTUFBQSxHQUFBRCxVQUFBLENBQUFwTixDQUFBLElBQUFrRCxJQUFBO1lBQUF1SyxTQUFBLENBQUE3SixJQUFBO1lBQUE7VUFBQTtVQUFBMEosWUFBQSxHQUFBRCxNQUFBLENBQUFqTixLQUFBLEVBVk9tTixNQUFNLEdBQUFELFlBQUEsQ0FBWjdCLElBQUksRUFDSnFCLGtCQUFrQixHQUFBUSxZQUFBLENBQWxCUixrQkFBa0I7VUFBQVcsU0FBQSxDQUFBN0osSUFBQTtVQVVsQixPQUFNO1lBQUUySixNQUFNLEVBQU5BLE1BQU07WUFBRVQsa0JBQWtCLEVBQWxCQTtVQUFtQixDQUFDO1FBQUE7VUFBQVcsU0FBQSxDQUFBN0osSUFBQTtVQUFBO1FBQUE7VUFBQTZKLFNBQUEsQ0FBQTdKLElBQUE7VUFBQTtRQUFBO1VBQUE2SixTQUFBLENBQUFsSSxJQUFBO1VBQUFrSSxTQUFBLENBQUFWLEVBQUEsR0FBQVUsU0FBQTtVQUFBTCxVQUFBLENBQUF6TixDQUFBLENBQUE4TixTQUFBLENBQUFWLEVBQUE7UUFBQTtVQUFBVSxTQUFBLENBQUFsSSxJQUFBO1VBQUE2SCxVQUFBLENBQUF4TCxDQUFBO1VBQUEsT0FBQTZMLFNBQUEsQ0FBQTNILE1BQUE7UUFBQTtRQUFBO1VBQUEsT0FBQTJILFNBQUEsQ0FBQS9ILElBQUE7TUFBQTtJQUFBLEdBQUF5SCxRQUFBO0VBQUE7QUFBQTtBQUlqQyxTQUFVVSx3QkFBd0JBLENBQ3ZDNUQsT0FBZSxFQUNmZCxXQUF3QjtFQUFBLElBQ3hCK0QsT0FBTyxHQUFBeEUsU0FBQSxDQUFBakUsTUFBQSxRQUFBaUUsU0FBQSxRQUFBNEIsU0FBQSxHQUFBNUIsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUFBLG9CQUFBaEosbUJBQUEsR0FBQW9GLElBQUEsVUFBQWdKLFNBQUE7SUFBQSxJQUFBQyxVQUFBLEVBQUFDLE1BQUEsRUFBQUMsWUFBQSxFQUFBQyxNQUFBLEVBQUFwQixrQkFBQTtJQUFBLE9BQUFwTixtQkFBQSxHQUFBdUIsSUFBQSxVQUFBa04sVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUE3SSxJQUFBLEdBQUE2SSxTQUFBLENBQUF4SyxJQUFBO1FBQUE7VUFBQW1LLFVBQUEsR0FBQW5ILDBCQUFBLENBU1BvRCxzQkFBc0IsQ0FDekJDLE9BQU8sRUFDUGQsV0FBVyxFQUNYZSxrQkFBUSxDQUFDd0QsZ0JBQWdCLEVBQ3pCQywyQkFBdUIsQ0FBQ1UsUUFBUSxFQUNoQyxDQUFDLFNBQVMsQ0FBQyxFQUNYLE1BQU0sRUFDTm5CLE9BQ0YsQ0FBQztVQUFBa0IsU0FBQSxDQUFBN0ksSUFBQTtVQUFBd0ksVUFBQSxDQUFBbE0sQ0FBQTtRQUFBO1VBQUEsS0FBQW1NLE1BQUEsR0FBQUQsVUFBQSxDQUFBL04sQ0FBQSxJQUFBa0QsSUFBQTtZQUFBa0wsU0FBQSxDQUFBeEssSUFBQTtZQUFBO1VBQUE7VUFBQXFLLFlBQUEsR0FBQUQsTUFBQSxDQUFBNU4sS0FBQSxFQVZPOE4sTUFBTSxHQUFBRCxZQUFBLENBQVp4QyxJQUFJLEVBQ0pxQixrQkFBa0IsR0FBQW1CLFlBQUEsQ0FBbEJuQixrQkFBa0I7VUFBQXNCLFNBQUEsQ0FBQXhLLElBQUE7VUFVbEIsT0FBTTtZQUFFc0ssTUFBTSxFQUFOQSxNQUFNO1lBQUVwQixrQkFBa0IsRUFBbEJBO1VBQW1CLENBQUM7UUFBQTtVQUFBc0IsU0FBQSxDQUFBeEssSUFBQTtVQUFBO1FBQUE7VUFBQXdLLFNBQUEsQ0FBQXhLLElBQUE7VUFBQTtRQUFBO1VBQUF3SyxTQUFBLENBQUE3SSxJQUFBO1VBQUE2SSxTQUFBLENBQUFyQixFQUFBLEdBQUFxQixTQUFBO1VBQUFMLFVBQUEsQ0FBQXBPLENBQUEsQ0FBQXlPLFNBQUEsQ0FBQXJCLEVBQUE7UUFBQTtVQUFBcUIsU0FBQSxDQUFBN0ksSUFBQTtVQUFBd0ksVUFBQSxDQUFBbk0sQ0FBQTtVQUFBLE9BQUF3TSxTQUFBLENBQUF0SSxNQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUFzSSxTQUFBLENBQUExSSxJQUFBO01BQUE7SUFBQSxHQUFBb0ksUUFBQTtFQUFBO0FBQUE7QUFJakMsU0FBVVEsNEJBQTRCQSxDQUMzQ3JFLE9BQWUsRUFDZmQsV0FBd0I7RUFBQSxJQUN4QitELE9BQU8sR0FBQXhFLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQSxvQkFBQWhKLG1CQUFBLEdBQUFvRixJQUFBLFVBQUF5SixTQUFBO0lBQUEsSUFBQUMsVUFBQSxFQUFBQyxNQUFBLEVBQUFDLFlBQUEsRUFBQUMsVUFBQSxFQUFBN0Isa0JBQUE7SUFBQSxPQUFBcE4sbUJBQUEsR0FBQXVCLElBQUEsVUFBQTJOLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBdEosSUFBQSxHQUFBc0osU0FBQSxDQUFBakwsSUFBQTtRQUFBO1VBQUE0SyxVQUFBLEdBQUE1SCwwQkFBQSxDQVNQb0Qsc0JBQXNCLENBQ3pCQyxPQUFPLEVBQ1BkLFdBQVcsRUFDWGUsa0JBQVEsQ0FBQzRFLFdBQVcsRUFDcEJDLG9CQUFrQixDQUFDQyxZQUFZLEVBQy9CLEVBQUUsRUFDRixNQUFNLEVBQ045QixPQUNGLENBQUM7VUFBQTJCLFNBQUEsQ0FBQXRKLElBQUE7VUFBQWlKLFVBQUEsQ0FBQTNNLENBQUE7UUFBQTtVQUFBLEtBQUE0TSxNQUFBLEdBQUFELFVBQUEsQ0FBQXhPLENBQUEsSUFBQWtELElBQUE7WUFBQTJMLFNBQUEsQ0FBQWpMLElBQUE7WUFBQTtVQUFBO1VBQUE4SyxZQUFBLEdBQUFELE1BQUEsQ0FBQXJPLEtBQUEsRUFWT3VPLFVBQVUsR0FBQUQsWUFBQSxDQUFoQmpELElBQUksRUFDSnFCLGtCQUFrQixHQUFBNEIsWUFBQSxDQUFsQjVCLGtCQUFrQjtVQUFBK0IsU0FBQSxDQUFBakwsSUFBQTtVQVVsQixPQUFNO1lBQUUrSyxVQUFVLEVBQVZBLFVBQVU7WUFBRTdCLGtCQUFrQixFQUFsQkE7VUFBbUIsQ0FBQztRQUFBO1VBQUErQixTQUFBLENBQUFqTCxJQUFBO1VBQUE7UUFBQTtVQUFBaUwsU0FBQSxDQUFBakwsSUFBQTtVQUFBO1FBQUE7VUFBQWlMLFNBQUEsQ0FBQXRKLElBQUE7VUFBQXNKLFNBQUEsQ0FBQTlCLEVBQUEsR0FBQThCLFNBQUE7VUFBQUwsVUFBQSxDQUFBN08sQ0FBQSxDQUFBa1AsU0FBQSxDQUFBOUIsRUFBQTtRQUFBO1VBQUE4QixTQUFBLENBQUF0SixJQUFBO1VBQUFpSixVQUFBLENBQUE1TSxDQUFBO1VBQUEsT0FBQWlOLFNBQUEsQ0FBQS9JLE1BQUE7UUFBQTtRQUFBO1VBQUEsT0FBQStJLFNBQUEsQ0FBQW5KLElBQUE7TUFBQTtJQUFBLEdBQUE2SSxRQUFBO0VBQUE7QUFBQTtBQUlyQyxTQUFVVSwwQkFBMEJBLENBQ3pDaEYsT0FBZSxFQUNmZCxXQUF3QjtFQUFBLElBQ3hCK0QsT0FBTyxHQUFBeEUsU0FBQSxDQUFBakUsTUFBQSxRQUFBaUUsU0FBQSxRQUFBNEIsU0FBQSxHQUFBNUIsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUFBLG9CQUFBaEosbUJBQUEsR0FBQW9GLElBQUEsVUFBQW9LLFNBQUE7SUFBQSxJQUFBQyxVQUFBLEVBQUFDLE1BQUEsRUFBQUMsWUFBQSxFQUFBQyxRQUFBLEVBQUF4QyxrQkFBQTtJQUFBLE9BQUFwTixtQkFBQSxHQUFBdUIsSUFBQSxVQUFBc08sVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUFqSyxJQUFBLEdBQUFpSyxTQUFBLENBQUE1TCxJQUFBO1FBQUE7VUFBQXVMLFVBQUEsR0FBQXZJLDBCQUFBLENBU1BvRCxzQkFBc0IsQ0FDekJDLE9BQU8sRUFDUGQsV0FBVyxFQUNYZSxrQkFBUSxDQUFDdUYsbUJBQW1CLEVBQzVCQyw2QkFBMEIsQ0FBQ0MsVUFBVSxFQUNyQyxDQUFDLFdBQVcsQ0FBQyxFQUNiLE1BQU0sRUFDTnpDLE9BQ0YsQ0FBQztVQUFBc0MsU0FBQSxDQUFBakssSUFBQTtVQUFBNEosVUFBQSxDQUFBdE4sQ0FBQTtRQUFBO1VBQUEsS0FBQXVOLE1BQUEsR0FBQUQsVUFBQSxDQUFBblAsQ0FBQSxJQUFBa0QsSUFBQTtZQUFBc00sU0FBQSxDQUFBNUwsSUFBQTtZQUFBO1VBQUE7VUFBQXlMLFlBQUEsR0FBQUQsTUFBQSxDQUFBaFAsS0FBQSxFQVZPa1AsUUFBUSxHQUFBRCxZQUFBLENBQWQ1RCxJQUFJLEVBQ0pxQixrQkFBa0IsR0FBQXVDLFlBQUEsQ0FBbEJ2QyxrQkFBa0I7VUFBQTBDLFNBQUEsQ0FBQTVMLElBQUE7VUFVbEIsT0FBTTtZQUFFMEwsUUFBUSxFQUFSQSxRQUFRO1lBQUV4QyxrQkFBa0IsRUFBbEJBO1VBQW1CLENBQUM7UUFBQTtVQUFBMEMsU0FBQSxDQUFBNUwsSUFBQTtVQUFBO1FBQUE7VUFBQTRMLFNBQUEsQ0FBQTVMLElBQUE7VUFBQTtRQUFBO1VBQUE0TCxTQUFBLENBQUFqSyxJQUFBO1VBQUFpSyxTQUFBLENBQUF6QyxFQUFBLEdBQUF5QyxTQUFBO1VBQUFMLFVBQUEsQ0FBQXhQLENBQUEsQ0FBQTZQLFNBQUEsQ0FBQXpDLEVBQUE7UUFBQTtVQUFBeUMsU0FBQSxDQUFBakssSUFBQTtVQUFBNEosVUFBQSxDQUFBdk4sQ0FBQTtVQUFBLE9BQUE0TixTQUFBLENBQUExSixNQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUEwSixTQUFBLENBQUE5SixJQUFBO01BQUE7SUFBQSxHQUFBd0osUUFBQTtFQUFBO0FBQUE7QUFJbkMsU0FBVVUsdUNBQXVDQSxDQUN0RDNGLE9BQWUsRUFDZmQsV0FBd0I7RUFBQSxJQUN4QitELE9BQU8sR0FBQXhFLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQSxvQkFBQWhKLG1CQUFBLEdBQUFvRixJQUFBLFVBQUErSyxTQUFBO0lBQUEsSUFBQUMsVUFBQSxFQUFBQyxNQUFBLEVBQUFDLFlBQUEsRUFBQUMsb0JBQUEsRUFBQW5ELGtCQUFBO0lBQUEsT0FBQXBOLG1CQUFBLEdBQUF1QixJQUFBLFVBQUFpUCxVQUFBQyxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQTVLLElBQUEsR0FBQTRLLFNBQUEsQ0FBQXZNLElBQUE7UUFBQTtVQUFBa00sVUFBQSxHQUFBbEosMEJBQUEsQ0FZUG9ELHNCQUFzQixDQUN6QkMsT0FBTyxFQUNQZCxXQUFXLEVBQ1hlLGtCQUFRLENBQUN1RixtQkFBbUIsRUFDNUJDLDZCQUEwQixDQUFDVSxzQkFBc0IsRUFDakQsQ0FBQyxVQUFVLENBQUMsRUFDWixNQUFNLEVBQ05sRCxPQUNGLENBQUM7VUFBQWlELFNBQUEsQ0FBQTVLLElBQUE7VUFBQXVLLFVBQUEsQ0FBQWpPLENBQUE7UUFBQTtVQUFBLEtBQUFrTyxNQUFBLEdBQUFELFVBQUEsQ0FBQTlQLENBQUEsSUFBQWtELElBQUE7WUFBQWlOLFNBQUEsQ0FBQXZNLElBQUE7WUFBQTtVQUFBO1VBQUFvTSxZQUFBLEdBQUFELE1BQUEsQ0FBQTNQLEtBQUEsRUFWTzZQLG9CQUFvQixHQUFBRCxZQUFBLENBQTFCdkUsSUFBSSxFQUNKcUIsa0JBQWtCLEdBQUFrRCxZQUFBLENBQWxCbEQsa0JBQWtCO1VBQUFxRCxTQUFBLENBQUF2TSxJQUFBO1VBVWxCLE9BQU07WUFBRXFNLG9CQUFvQixFQUFwQkEsb0JBQW9CO1lBQUVuRCxrQkFBa0IsRUFBbEJBO1VBQW1CLENBQUM7UUFBQTtVQUFBcUQsU0FBQSxDQUFBdk0sSUFBQTtVQUFBO1FBQUE7VUFBQXVNLFNBQUEsQ0FBQXZNLElBQUE7VUFBQTtRQUFBO1VBQUF1TSxTQUFBLENBQUE1SyxJQUFBO1VBQUE0SyxTQUFBLENBQUFwRCxFQUFBLEdBQUFvRCxTQUFBO1VBQUFMLFVBQUEsQ0FBQW5RLENBQUEsQ0FBQXdRLFNBQUEsQ0FBQXBELEVBQUE7UUFBQTtVQUFBb0QsU0FBQSxDQUFBNUssSUFBQTtVQUFBdUssVUFBQSxDQUFBbE8sQ0FBQTtVQUFBLE9BQUF1TyxTQUFBLENBQUFySyxNQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUFxSyxTQUFBLENBQUF6SyxJQUFBO01BQUE7SUFBQSxHQUFBbUssUUFBQTtFQUFBO0FBQUE7QUFJL0MsU0FBVVEseUJBQXlCQSxDQUN4Q3BHLE9BQWUsRUFDZmQsV0FBd0I7RUFBQSxJQUN4QitELE9BQU8sR0FBQXhFLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQSxvQkFBQWhKLG1CQUFBLEdBQUFvRixJQUFBLFVBQUF3TCxTQUFBO0lBQUEsSUFBQUMsVUFBQSxFQUFBQyxNQUFBLEVBQUFDLFlBQUEsRUFBQUMsT0FBQSxFQUFBNUQsa0JBQUE7SUFBQSxPQUFBcE4sbUJBQUEsR0FBQXVCLElBQUEsVUFBQTBQLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBckwsSUFBQSxHQUFBcUwsU0FBQSxDQUFBaE4sSUFBQTtRQUFBO1VBQUEyTSxVQUFBLEdBQUEzSiwwQkFBQSxDQVNQb0Qsc0JBQXNCLENBQ3pCQyxPQUFPLEVBQ1BkLFdBQVcsRUFDWGUsa0JBQVEsQ0FBQzJHLE9BQU8sRUFDaEJDLGdCQUFjLENBQUNDLFNBQVMsRUFDeEIsRUFBRSxFQUNGLE1BQU0sRUFDTjdELE9BQ0YsQ0FBQztVQUFBMEQsU0FBQSxDQUFBckwsSUFBQTtVQUFBZ0wsVUFBQSxDQUFBMU8sQ0FBQTtRQUFBO1VBQUEsS0FBQTJPLE1BQUEsR0FBQUQsVUFBQSxDQUFBdlEsQ0FBQSxJQUFBa0QsSUFBQTtZQUFBME4sU0FBQSxDQUFBaE4sSUFBQTtZQUFBO1VBQUE7VUFBQTZNLFlBQUEsR0FBQUQsTUFBQSxDQUFBcFEsS0FBQSxFQVZPc1EsT0FBTyxHQUFBRCxZQUFBLENBQWJoRixJQUFJLEVBQ0pxQixrQkFBa0IsR0FBQTJELFlBQUEsQ0FBbEIzRCxrQkFBa0I7VUFBQThELFNBQUEsQ0FBQWhOLElBQUE7VUFVbEIsT0FBTTtZQUFFOE0sT0FBTyxFQUFQQSxPQUFPO1lBQUU1RCxrQkFBa0IsRUFBbEJBO1VBQW1CLENBQUM7UUFBQTtVQUFBOEQsU0FBQSxDQUFBaE4sSUFBQTtVQUFBO1FBQUE7VUFBQWdOLFNBQUEsQ0FBQWhOLElBQUE7VUFBQTtRQUFBO1VBQUFnTixTQUFBLENBQUFyTCxJQUFBO1VBQUFxTCxTQUFBLENBQUE3RCxFQUFBLEdBQUE2RCxTQUFBO1VBQUFMLFVBQUEsQ0FBQTVRLENBQUEsQ0FBQWlSLFNBQUEsQ0FBQTdELEVBQUE7UUFBQTtVQUFBNkQsU0FBQSxDQUFBckwsSUFBQTtVQUFBZ0wsVUFBQSxDQUFBM08sQ0FBQTtVQUFBLE9BQUFnUCxTQUFBLENBQUE5SyxNQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUE4SyxTQUFBLENBQUFsTCxJQUFBO01BQUE7SUFBQSxHQUFBNEssUUFBQTtFQUFBO0FBQUE7QUFJbEMsU0FBVVUseUJBQXlCQSxDQUN4Qy9HLE9BQWUsRUFDZmQsV0FBd0I7RUFBQSxJQUN4QitELE9BQU8sR0FBQXhFLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQSxvQkFBQWhKLG1CQUFBLEdBQUFvRixJQUFBLFVBQUFtTSxTQUFBO0lBQUEsSUFBQUMsVUFBQSxFQUFBQyxNQUFBLEVBQUFDLFlBQUEsRUFBQUMsT0FBQSxFQUFBdkUsa0JBQUE7SUFBQSxPQUFBcE4sbUJBQUEsR0FBQXVCLElBQUEsVUFBQXFRLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBaE0sSUFBQSxHQUFBZ00sU0FBQSxDQUFBM04sSUFBQTtRQUFBO1VBQUFzTixVQUFBLEdBQUF0SywwQkFBQSxDQVNQb0Qsc0JBQXNCLENBQ3pCQyxPQUFPLEVBQ1BkLFdBQVcsRUFDWGUsa0JBQVEsQ0FBQ3NILFFBQVEsRUFDakJDLGlCQUFlLENBQUNDLFNBQVMsRUFDekIsRUFBRSxFQUNGLE1BQU0sRUFDTnhFLE9BQ0YsQ0FBQztVQUFBcUUsU0FBQSxDQUFBaE0sSUFBQTtVQUFBMkwsVUFBQSxDQUFBclAsQ0FBQTtRQUFBO1VBQUEsS0FBQXNQLE1BQUEsR0FBQUQsVUFBQSxDQUFBbFIsQ0FBQSxJQUFBa0QsSUFBQTtZQUFBcU8sU0FBQSxDQUFBM04sSUFBQTtZQUFBO1VBQUE7VUFBQXdOLFlBQUEsR0FBQUQsTUFBQSxDQUFBL1EsS0FBQSxFQVZPaVIsT0FBTyxHQUFBRCxZQUFBLENBQWIzRixJQUFJLEVBQ0pxQixrQkFBa0IsR0FBQXNFLFlBQUEsQ0FBbEJ0RSxrQkFBa0I7VUFBQXlFLFNBQUEsQ0FBQTNOLElBQUE7VUFVbEIsT0FBTTtZQUFFeU4sT0FBTyxFQUFQQSxPQUFPO1lBQUV2RSxrQkFBa0IsRUFBbEJBO1VBQW1CLENBQUM7UUFBQTtVQUFBeUUsU0FBQSxDQUFBM04sSUFBQTtVQUFBO1FBQUE7VUFBQTJOLFNBQUEsQ0FBQTNOLElBQUE7VUFBQTtRQUFBO1VBQUEyTixTQUFBLENBQUFoTSxJQUFBO1VBQUFnTSxTQUFBLENBQUF4RSxFQUFBLEdBQUF3RSxTQUFBO1VBQUFMLFVBQUEsQ0FBQXZSLENBQUEsQ0FBQTRSLFNBQUEsQ0FBQXhFLEVBQUE7UUFBQTtVQUFBd0UsU0FBQSxDQUFBaE0sSUFBQTtVQUFBMkwsVUFBQSxDQUFBdFAsQ0FBQTtVQUFBLE9BQUEyUCxTQUFBLENBQUF6TCxNQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUF5TCxTQUFBLENBQUE3TCxJQUFBO01BQUE7SUFBQSxHQUFBdUwsUUFBQTtFQUFBO0FBQUE7QUFJbEMsU0FBVVUsMEJBQTBCQSxDQUN6QzFILE9BQWUsRUFDZmQsV0FBd0I7RUFBQSxJQUN4QitELE9BQU8sR0FBQXhFLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQSxvQkFBQWhKLG1CQUFBLEdBQUFvRixJQUFBLFVBQUE4TSxTQUFBO0lBQUEsSUFBQUMsV0FBQSxFQUFBQyxPQUFBLEVBQUFDLGFBQUEsRUFBQUMsUUFBQSxFQUFBbEYsa0JBQUE7SUFBQSxPQUFBcE4sbUJBQUEsR0FBQXVCLElBQUEsVUFBQWdSLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBM00sSUFBQSxHQUFBMk0sU0FBQSxDQUFBdE8sSUFBQTtRQUFBO1VBQUFpTyxXQUFBLEdBQUFqTCwwQkFBQSxDQVNQb0Qsc0JBQXNCLENBQ3pCQyxPQUFPLEVBQ1BkLFdBQVcsRUFDWGUsa0JBQVEsQ0FBQ2lJLFNBQVMsRUFDbEJDLGtCQUFnQixDQUFDQyxVQUFVLEVBQzNCLEVBQUUsRUFDRixNQUFNLEVBQ05uRixPQUNGLENBQUM7VUFBQWdGLFNBQUEsQ0FBQTNNLElBQUE7VUFBQXNNLFdBQUEsQ0FBQWhRLENBQUE7UUFBQTtVQUFBLEtBQUFpUSxPQUFBLEdBQUFELFdBQUEsQ0FBQTdSLENBQUEsSUFBQWtELElBQUE7WUFBQWdQLFNBQUEsQ0FBQXRPLElBQUE7WUFBQTtVQUFBO1VBQUFtTyxhQUFBLEdBQUFELE9BQUEsQ0FBQTFSLEtBQUEsRUFWTzRSLFFBQVEsR0FBQUQsYUFBQSxDQUFkdEcsSUFBSSxFQUNKcUIsa0JBQWtCLEdBQUFpRixhQUFBLENBQWxCakYsa0JBQWtCO1VBQUFvRixTQUFBLENBQUF0TyxJQUFBO1VBVWxCLE9BQU07WUFBRW9PLFFBQVEsRUFBUkEsUUFBUTtZQUFFbEYsa0JBQWtCLEVBQWxCQTtVQUFtQixDQUFDO1FBQUE7VUFBQW9GLFNBQUEsQ0FBQXRPLElBQUE7VUFBQTtRQUFBO1VBQUFzTyxTQUFBLENBQUF0TyxJQUFBO1VBQUE7UUFBQTtVQUFBc08sU0FBQSxDQUFBM00sSUFBQTtVQUFBMk0sU0FBQSxDQUFBbkYsRUFBQSxHQUFBbUYsU0FBQTtVQUFBTCxXQUFBLENBQUFsUyxDQUFBLENBQUF1UyxTQUFBLENBQUFuRixFQUFBO1FBQUE7VUFBQW1GLFNBQUEsQ0FBQTNNLElBQUE7VUFBQXNNLFdBQUEsQ0FBQWpRLENBQUE7VUFBQSxPQUFBc1EsU0FBQSxDQUFBcE0sTUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBb00sU0FBQSxDQUFBeE0sSUFBQTtNQUFBO0lBQUEsR0FBQWtNLFFBQUE7RUFBQTtBQUFBO0FBSW5DLFNBQVVVLDhCQUE4QkEsQ0FDN0NySSxPQUFlLEVBQ2ZkLFdBQXdCO0VBQUEsSUFDeEIrRCxPQUFPLEdBQUF4RSxTQUFBLENBQUFqRSxNQUFBLFFBQUFpRSxTQUFBLFFBQUE0QixTQUFBLEdBQUE1QixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBQUEsb0JBQUFoSixtQkFBQSxHQUFBb0YsSUFBQSxVQUFBeU4sVUFBQTtJQUFBLElBQUFDLFdBQUEsRUFBQUMsT0FBQSxFQUFBQyxhQUFBLEVBQUFDLFdBQUEsRUFBQTdGLGtCQUFBO0lBQUEsT0FBQXBOLG1CQUFBLEdBQUF1QixJQUFBLFVBQUEyUixXQUFBQyxVQUFBO01BQUEsa0JBQUFBLFVBQUEsQ0FBQXROLElBQUEsR0FBQXNOLFVBQUEsQ0FBQWpQLElBQUE7UUFBQTtVQUFBNE8sV0FBQSxHQUFBNUwsMEJBQUEsQ0FTUG9ELHNCQUFzQixDQUN6QkMsT0FBTyxFQUNQZCxXQUFXLEVBQ1hlLGtCQUFRLENBQUM0SSxvQkFBb0IsRUFDN0JDLGVBQW9CLENBQUNDLGFBQWEsRUFDbEMsRUFBRSxFQUNGLEtBQUssRUFDTDlGLE9BQ0YsQ0FBQztVQUFBMkYsVUFBQSxDQUFBdE4sSUFBQTtVQUFBaU4sV0FBQSxDQUFBM1EsQ0FBQTtRQUFBO1VBQUEsS0FBQTRRLE9BQUEsR0FBQUQsV0FBQSxDQUFBeFMsQ0FBQSxJQUFBa0QsSUFBQTtZQUFBMlAsVUFBQSxDQUFBalAsSUFBQTtZQUFBO1VBQUE7VUFBQThPLGFBQUEsR0FBQUQsT0FBQSxDQUFBclMsS0FBQSxFQVZPdVMsV0FBVyxHQUFBRCxhQUFBLENBQWpCakgsSUFBSSxFQUNKcUIsa0JBQWtCLEdBQUE0RixhQUFBLENBQWxCNUYsa0JBQWtCO1VBQUErRixVQUFBLENBQUFqUCxJQUFBO1VBVWxCLE9BQU07WUFBRStPLFdBQVcsRUFBWEEsV0FBVztZQUFFN0Ysa0JBQWtCLEVBQWxCQTtVQUFtQixDQUFDO1FBQUE7VUFBQStGLFVBQUEsQ0FBQWpQLElBQUE7VUFBQTtRQUFBO1VBQUFpUCxVQUFBLENBQUFqUCxJQUFBO1VBQUE7UUFBQTtVQUFBaVAsVUFBQSxDQUFBdE4sSUFBQTtVQUFBc04sVUFBQSxDQUFBOUYsRUFBQSxHQUFBOEYsVUFBQTtVQUFBTCxXQUFBLENBQUE3UyxDQUFBLENBQUFrVCxVQUFBLENBQUE5RixFQUFBO1FBQUE7VUFBQThGLFVBQUEsQ0FBQXROLElBQUE7VUFBQWlOLFdBQUEsQ0FBQTVRLENBQUE7VUFBQSxPQUFBaVIsVUFBQSxDQUFBL00sTUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBK00sVUFBQSxDQUFBbk4sSUFBQTtNQUFBO0lBQUEsR0FBQTZNLFNBQUE7RUFBQTtBQUFBO0FBSXRDLFNBQVVVLHlCQUF5QkEsQ0FDeENoSixPQUFlLEVBQ2ZkLFdBQXdCO0VBQUEsSUFDeEIrRCxPQUFPLEdBQUF4RSxTQUFBLENBQUFqRSxNQUFBLFFBQUFpRSxTQUFBLFFBQUE0QixTQUFBLEdBQUE1QixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBQUEsb0JBQUFoSixtQkFBQSxHQUFBb0YsSUFBQSxVQUFBb08sVUFBQTtJQUFBLElBQUFDLFdBQUEsRUFBQUMsT0FBQSxFQUFBQyxhQUFBLEVBQUFDLFFBQUEsRUFBQXhHLGtCQUFBO0lBQUEsT0FBQXBOLG1CQUFBLEdBQUF1QixJQUFBLFVBQUFzUyxXQUFBQyxVQUFBO01BQUEsa0JBQUFBLFVBQUEsQ0FBQWpPLElBQUEsR0FBQWlPLFVBQUEsQ0FBQTVQLElBQUE7UUFBQTtVQUFBdVAsV0FBQSxHQUFBdk0sMEJBQUEsQ0FTUG9ELHNCQUFzQixDQUN6QkMsT0FBTyxFQUNQZCxXQUFXLEVBQ1hlLGtCQUFRLENBQUN1SixTQUFTLEVBQ2xCQyxtQkFBZ0IsQ0FBQ0MsV0FBVyxFQUM1QixFQUFFLEVBQ0YsTUFBTSxFQUNOekcsT0FDRixDQUFDO1VBQUFzRyxVQUFBLENBQUFqTyxJQUFBO1VBQUE0TixXQUFBLENBQUF0UixDQUFBO1FBQUE7VUFBQSxLQUFBdVIsT0FBQSxHQUFBRCxXQUFBLENBQUFuVCxDQUFBLElBQUFrRCxJQUFBO1lBQUFzUSxVQUFBLENBQUE1UCxJQUFBO1lBQUE7VUFBQTtVQUFBeVAsYUFBQSxHQUFBRCxPQUFBLENBQUFoVCxLQUFBLEVBVk9rVCxRQUFRLEdBQUFELGFBQUEsQ0FBZDVILElBQUksRUFDSnFCLGtCQUFrQixHQUFBdUcsYUFBQSxDQUFsQnZHLGtCQUFrQjtVQUFBMEcsVUFBQSxDQUFBNVAsSUFBQTtVQVVsQixPQUFNO1lBQUUwUCxRQUFRLEVBQVJBLFFBQVE7WUFBRXhHLGtCQUFrQixFQUFsQkE7VUFBbUIsQ0FBQztRQUFBO1VBQUEwRyxVQUFBLENBQUE1UCxJQUFBO1VBQUE7UUFBQTtVQUFBNFAsVUFBQSxDQUFBNVAsSUFBQTtVQUFBO1FBQUE7VUFBQTRQLFVBQUEsQ0FBQWpPLElBQUE7VUFBQWlPLFVBQUEsQ0FBQXpHLEVBQUEsR0FBQXlHLFVBQUE7VUFBQUwsV0FBQSxDQUFBeFQsQ0FBQSxDQUFBNlQsVUFBQSxDQUFBekcsRUFBQTtRQUFBO1VBQUF5RyxVQUFBLENBQUFqTyxJQUFBO1VBQUE0TixXQUFBLENBQUF2UixDQUFBO1VBQUEsT0FBQTRSLFVBQUEsQ0FBQTFOLE1BQUE7UUFBQTtRQUFBO1VBQUEsT0FBQTBOLFVBQUEsQ0FBQTlOLElBQUE7TUFBQTtJQUFBLEdBQUF3TixTQUFBO0VBQUE7QUFBQTs7QUFJMUM7QUFDQTtBQUNPLFNBQVNVLGlCQUFpQkEsQ0FDL0IzSixPQUFlLEVBQ2Y0SixlQUFnQyxFQUNoQzFLLFdBQXdCLEVBRWxCO0VBQUEsSUFBQTJLLEtBQUEsR0FBQXBMLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFEWSxDQUFDLENBQUM7SUFBQXFMLFNBQUEsR0FBQUQsS0FBQSxDQUFsQm5KLEdBQUc7SUFBSEEsR0FBRyxHQUFBb0osU0FBQSxjQUFHLEtBQUssR0FBQUEsU0FBQTtFQUViLElBQU1DLFdBQXNDLEdBQUcsQ0FBQyxDQUFDO0VBQ2pELElBQU1DLFdBQXNDLEdBQUcsQ0FBQyxDQUFDO0VBQ2pELElBQUlKLGVBQWUsR0FBR0sseUJBQWUsQ0FBQ0MsZ0JBQWdCLEVBQUU7SUFBQSxJQUFBQyxXQUFBLEdBQUF4TiwwQkFBQSxDQUNoQ3NELGtCQUFRLENBQUN3RCxnQkFBZ0I7TUFBQTJHLE9BQUE7SUFBQTtNQUEvQyxLQUFBRCxXQUFBLENBQUF2UyxDQUFBLE1BQUF3UyxPQUFBLEdBQUFELFdBQUEsQ0FBQXBVLENBQUEsSUFBQWtELElBQUEsR0FBaUQ7UUFBQSxJQUF0QzhILE9BQU8sR0FBQXFKLE9BQUEsQ0FBQWpVLEtBQUE7UUFDaEIsSUFBSTRLLE9BQU8sQ0FBQ2EsWUFBWSxFQUFFO1VBQ3hCO1FBQ0Y7UUFDQSxJQUNFMUMsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUMvQmYsT0FBTyxDQUFDN0IsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUN2QzVDLFdBQVcsS0FBSzZCLE9BQU8sQ0FBQzdCLFdBQVcsRUFDbkM7VUFDQTtRQUNGO1FBQ0EsSUFBTStCLFVBQVUsR0FBR2UsZ0JBQUksQ0FBQ3hELElBQUksQ0FDMUJ3QixPQUFPLEVBQ1BlLE9BQU8sQ0FBQ2tCLFFBQVEsQ0FBQzFELE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUNoRCxDQUFDO1FBQUEsSUFBQThMLFdBQUEsR0FBQTFOLDBCQUFBLENBRTZCLElBQUF1RixxQkFBTyxFQUFDakIsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7VUFBQXFKLE9BQUE7UUFBQTtVQUE5RCxLQUFBRCxXQUFBLENBQUF6UyxDQUFBLE1BQUEwUyxPQUFBLEdBQUFELFdBQUEsQ0FBQXRVLENBQUEsSUFBQWtELElBQUEsR0FBZ0U7WUFBQSxJQUFyRHNSLGVBQWUsR0FBQUQsT0FBQSxDQUFBblUsS0FBQTtZQUN4QixJQUFNcVUsY0FBYyxHQUFHRCxlQUFlLENBQUNBLGVBQWUsQ0FBQy9QLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDZ1EsY0FBYyxDQUFDckksUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2NBQ3JDO1lBQ0Y7WUFDQSxJQUFNc0ksY0FBYyxHQUFHekksZ0JBQUksQ0FBQ3hELElBQUksQ0FBQUUsS0FBQSxDQUFUc0QsZ0JBQUksR0FBTWYsVUFBVSxFQUFBYyxNQUFBLENBQUEvRixrQkFBQSxDQUFLdU8sZUFBZSxHQUFDO1lBQ2hFLElBQUk3SixHQUFHLEVBQUU7Y0FDUDBCLE9BQU8sQ0FBQzFCLEdBQUcsa0JBQUFxQixNQUFBLENBQWtCMEksY0FBYyxXQUFHLENBQUM7WUFDakQ7WUFDQSxJQUFNQyxVQUFrQixHQUFHckksbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDbUksY0FBYyxFQUFFO2NBQ3pEbEksUUFBUSxFQUFFO1lBQ1osQ0FBQyxDQUFDO1lBQ0YsSUFBTWUsTUFBTSxHQUFHSSwyQkFBdUIsQ0FBQ0MsUUFBUSxDQUFDK0csVUFBVSxDQUFDO1lBQzNEO1lBQ0EsSUFBSVgsV0FBVyxDQUFDekcsTUFBTSxDQUFDWCxHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUN6QzBKLFdBQVcsQ0FBQ3pHLE1BQU0sQ0FBQ1gsR0FBRyxDQUFDLEdBQUdXLE1BQU07WUFDbEM7VUFDRjtRQUFDLFNBQUFwRyxHQUFBO1VBQUFtTixXQUFBLENBQUEzVSxDQUFBLENBQUF3SCxHQUFBO1FBQUE7VUFBQW1OLFdBQUEsQ0FBQTFTLENBQUE7UUFBQTtRQUFBLElBQUFnVCxXQUFBLEdBQUFoTywwQkFBQSxDQUU2QixJQUFBdUYscUJBQU8sRUFBQ2pCLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1VBQUEySixPQUFBO1FBQUE7VUFBOUQsS0FBQUQsV0FBQSxDQUFBL1MsQ0FBQSxNQUFBZ1QsT0FBQSxHQUFBRCxXQUFBLENBQUE1VSxDQUFBLElBQUFrRCxJQUFBLEdBQWdFO1lBQUEsSUFBckQ0UixlQUFlLEdBQUFELE9BQUEsQ0FBQXpVLEtBQUE7WUFDeEIsSUFBTTJVLGNBQWMsR0FBR0QsZUFBZSxDQUFDQSxlQUFlLENBQUNyUSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQ3NRLGNBQWMsQ0FBQzNJLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtjQUNyQztZQUNGO1lBQ0EsSUFBTTRJLGNBQWMsR0FBRy9JLGdCQUFJLENBQUN4RCxJQUFJLENBQUFFLEtBQUEsQ0FBVHNELGdCQUFJLEdBQU1mLFVBQVUsRUFBQWMsTUFBQSxDQUFBL0Ysa0JBQUEsQ0FBSzZPLGVBQWUsR0FBQztZQUNoRSxJQUFJbkssR0FBRyxFQUFFO2NBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQmdKLGNBQWMsV0FBRyxDQUFDO1lBQ2pEO1lBQ0EsSUFBTUMsVUFBa0IsR0FBRzNJLG1CQUFFLENBQUNDLFlBQVksQ0FBQ3lJLGNBQWMsRUFBRTtjQUN6RHhJLFFBQVEsRUFBRTtZQUNaLENBQUMsQ0FBQztZQUNGLElBQU0wQixNQUFNLEdBQUdQLDJCQUF1QixDQUFDVSxRQUFRLENBQUM0RyxVQUFVLENBQUM7WUFDM0Q7WUFDQSxJQUFJaEIsV0FBVyxDQUFDL0YsTUFBTSxDQUFDdEIsR0FBRyxDQUFDLEtBQUt0QyxTQUFTLEVBQUU7Y0FDekMySixXQUFXLENBQUMvRixNQUFNLENBQUN0QixHQUFHLENBQUMsR0FBR3NCLE1BQU07WUFDbEM7VUFDRjtRQUFDLFNBQUEvRyxHQUFBO1VBQUF5TixXQUFBLENBQUFqVixDQUFBLENBQUF3SCxHQUFBO1FBQUE7VUFBQXlOLFdBQUEsQ0FBQWhULENBQUE7UUFBQTtNQUNIO0lBQUMsU0FBQXVGLEdBQUE7TUFBQWlOLFdBQUEsQ0FBQXpVLENBQUEsQ0FBQXdILEdBQUE7SUFBQTtNQUFBaU4sV0FBQSxDQUFBeFMsQ0FBQTtJQUFBO0VBQ0g7RUFFQSxJQUFNc1QsWUFBd0MsR0FBRyxDQUFDLENBQUM7RUFDbkQsSUFBTUMsYUFBMkMsR0FBRyxDQUFDLENBQUM7RUFDdEQsSUFBTUMsb0JBQXlELEdBQUcsQ0FBQyxDQUFDO0VBQ3BFLElBQUl2QixlQUFlLEdBQUdLLHlCQUFlLENBQUNtQixPQUFPLEVBQUU7SUFBQSxJQUFBQyxXQUFBLEdBQUExTywwQkFBQSxDQUN2QnNELGtCQUFRLENBQUMyRyxPQUFPO01BQUEwRSxPQUFBO0lBQUE7TUFBdEMsS0FBQUQsV0FBQSxDQUFBelQsQ0FBQSxNQUFBMFQsT0FBQSxHQUFBRCxXQUFBLENBQUF0VixDQUFBLElBQUFrRCxJQUFBLEdBQXdDO1FBQUEsSUFBN0I4SCxRQUFPLEdBQUF1SyxPQUFBLENBQUFuVixLQUFBO1FBQ2hCLElBQUk0SyxRQUFPLENBQUNhLFlBQVksRUFBRTtVQUN4QjtRQUNGO1FBQ0EsSUFDRTFDLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDL0JmLFFBQU8sQ0FBQzdCLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDdkM1QyxXQUFXLEtBQUs2QixRQUFPLENBQUM3QixXQUFXLEVBQ25DO1VBQ0E7UUFDRjtRQUNBLElBQU0rQixXQUFVLEdBQUdlLGdCQUFJLENBQUN4RCxJQUFJLENBQzFCd0IsT0FBTyxFQUNQZSxRQUFPLENBQUNrQixRQUFRLENBQUMxRCxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FDaEQsQ0FBQztRQUFBLElBQUFnTixXQUFBLEdBQUE1TywwQkFBQSxDQUM4QixJQUFBdUYscUJBQU8sRUFBQ2pCLFdBQVUsQ0FBQztVQUFBdUssT0FBQTtRQUFBO1VBQWxELEtBQUFELFdBQUEsQ0FBQTNULENBQUEsTUFBQTRULE9BQUEsR0FBQUQsV0FBQSxDQUFBeFYsQ0FBQSxJQUFBa0QsSUFBQSxHQUFvRDtZQUFBLElBQXpDd1MsZ0JBQWdCLEdBQUFELE9BQUEsQ0FBQXJWLEtBQUE7WUFDekIsSUFBTXVWLGVBQWUsR0FBR0QsZ0JBQWdCLENBQUNBLGdCQUFnQixDQUFDalIsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUNrUixlQUFlLENBQUN2SixRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Y0FDdEM7WUFDRjtZQUNBLElBQU13SixlQUFlLEdBQUczSixnQkFBSSxDQUFDeEQsSUFBSSxDQUFBRSxLQUFBLENBQVRzRCxnQkFBSSxHQUFNZixXQUFVLEVBQUFjLE1BQUEsQ0FBQS9GLGtCQUFBLENBQUt5UCxnQkFBZ0IsR0FBQztZQUNsRSxJQUFJL0ssR0FBRyxFQUFFO2NBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQjRKLGVBQWUsV0FBRyxDQUFDO1lBQ2xEO1lBQ0EsSUFBTUMsV0FBbUIsR0FBR3ZKLG1CQUFFLENBQUNDLFlBQVksQ0FBQ3FKLGVBQWUsRUFBRTtjQUMzRHBKLFFBQVEsRUFBRTtZQUNaLENBQUMsQ0FBQztZQUNGLElBQU1rRSxPQUFPLEdBQUdJLGdCQUFjLENBQUNDLFNBQVMsQ0FBQzhFLFdBQVcsQ0FBQztZQUNyRCxJQUFJWCxZQUFZLENBQUN4RSxPQUFPLENBQUM5RCxHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUMzQzRLLFlBQVksQ0FBQ3hFLE9BQU8sQ0FBQzlELEdBQUcsQ0FBQyxHQUFHOEQsT0FBTztZQUNyQztZQUVBLElBQU1vRixJQUFHLEdBQUdwRixPQUFPLENBQUNxRixjQUFjLENBQUNDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSUMsYUFBYSxHQUFHZixhQUFhLENBQUNXLElBQUcsQ0FBQztZQUN0QyxJQUFJSSxhQUFhLEtBQUs1TCxTQUFTLEVBQUU7Y0FDL0I0TCxhQUFhLEdBQUdmLGFBQWEsQ0FBQ1csSUFBRyxDQUFDLEdBQUcsRUFBRTtZQUN6QztZQUNBSSxhQUFhLENBQUM5UixJQUFJLENBQUNzTSxPQUFPLENBQUM7WUFFM0IsSUFBTXlGLEdBQUcsR0FBR3pGLE9BQU8sQ0FBQ3lGLEdBQUc7WUFDdkIsSUFBSUEsR0FBRyxLQUFLN0wsU0FBUyxFQUFFO2NBQUEsSUFBQThMLFdBQUEsR0FBQXhQLDBCQUFBLENBQ0V1UCxHQUFHLENBQUNFLFNBQVMsSUFBSSxFQUFFO2dCQUFBQyxPQUFBO2NBQUE7Z0JBQTFDLEtBQUFGLFdBQUEsQ0FBQXZVLENBQUEsTUFBQXlVLE9BQUEsR0FBQUYsV0FBQSxDQUFBcFcsQ0FBQSxJQUFBa0QsSUFBQSxHQUE0QztrQkFBQSxJQUFqQ3FULFFBQVEsR0FBQUQsT0FBQSxDQUFBbFcsS0FBQTtrQkFBQSxJQUFBb1csV0FBQSxHQUFBNVAsMEJBQUEsQ0FDa0IyUCxRQUFRLENBQUNFLHVCQUF1QixJQUNqRSxFQUFFO29CQUFBQyxPQUFBO2tCQUFBO29CQURKLEtBQUFGLFdBQUEsQ0FBQTNVLENBQUEsTUFBQTZVLE9BQUEsR0FBQUYsV0FBQSxDQUFBeFcsQ0FBQSxJQUFBa0QsSUFBQSxHQUNNO3NCQUFBLElBREt5VCxvQkFBb0IsR0FBQUQsT0FBQSxDQUFBdFcsS0FBQTtzQkFFN0IsSUFBSXdXLG9CQUFvQixHQUN0QnhCLG9CQUFvQixDQUFDdUIsb0JBQW9CLENBQUM7c0JBQzVDLElBQUlDLG9CQUFvQixLQUFLdE0sU0FBUyxFQUFFO3dCQUN0Q3NNLG9CQUFvQixHQUFHeEIsb0JBQW9CLENBQ3pDdUIsb0JBQW9CLENBQ3JCLEdBQUcsRUFBRTtzQkFDUjtzQkFDQUMsb0JBQW9CLENBQUN4UyxJQUFJLENBQUNzTSxPQUFPLENBQUM7b0JBQ3BDO2tCQUFDLFNBQUF2SixHQUFBO29CQUFBcVAsV0FBQSxDQUFBN1csQ0FBQSxDQUFBd0gsR0FBQTtrQkFBQTtvQkFBQXFQLFdBQUEsQ0FBQTVVLENBQUE7a0JBQUE7Z0JBQ0g7Y0FBQyxTQUFBdUYsR0FBQTtnQkFBQWlQLFdBQUEsQ0FBQXpXLENBQUEsQ0FBQXdILEdBQUE7Y0FBQTtnQkFBQWlQLFdBQUEsQ0FBQXhVLENBQUE7Y0FBQTtZQUNIO1VBQ0Y7UUFBQyxTQUFBdUYsR0FBQTtVQUFBcU8sV0FBQSxDQUFBN1YsQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUFxTyxXQUFBLENBQUE1VCxDQUFBO1FBQUE7TUFDSDtJQUFDLFNBQUF1RixHQUFBO01BQUFtTyxXQUFBLENBQUEzVixDQUFBLENBQUF3SCxHQUFBO0lBQUE7TUFBQW1PLFdBQUEsQ0FBQTFULENBQUE7SUFBQTtFQUNIO0VBRUEsSUFBTWlWLGVBQThDLEdBQUcsQ0FBQyxDQUFDO0VBQ3pELElBQUloRCxlQUFlLEdBQUdLLHlCQUFlLENBQUM0QyxXQUFXLEVBQUU7SUFBQSxJQUFBQyxXQUFBLEdBQUFuUSwwQkFBQSxDQUMzQnNELGtCQUFRLENBQUM0RSxXQUFXO01BQUFrSSxPQUFBO0lBQUE7TUFBMUMsS0FBQUQsV0FBQSxDQUFBbFYsQ0FBQSxNQUFBbVYsT0FBQSxHQUFBRCxXQUFBLENBQUEvVyxDQUFBLElBQUFrRCxJQUFBLEdBQTRDO1FBQUEsSUFBakM4SCxTQUFPLEdBQUFnTSxPQUFBLENBQUE1VyxLQUFBO1FBQ2hCLElBQUk0SyxTQUFPLENBQUNhLFlBQVksRUFBRTtVQUN4QjtRQUNGO1FBQ0EsSUFDRTFDLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDL0JmLFNBQU8sQ0FBQzdCLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDdkM1QyxXQUFXLEtBQUs2QixTQUFPLENBQUM3QixXQUFXLEVBQ25DO1VBQ0E7UUFDRjtRQUNBLElBQU0rQixZQUFVLEdBQUdlLGdCQUFJLENBQUN4RCxJQUFJLENBQzFCd0IsT0FBTyxFQUNQZSxTQUFPLENBQUNrQixRQUFRLENBQUMxRCxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FDaEQsQ0FBQztRQUFBLElBQUF5TyxXQUFBLEdBQUFyUSwwQkFBQSxDQUVpQyxJQUFBdUYscUJBQU8sRUFBQ2pCLFlBQVUsQ0FBQztVQUFBZ00sT0FBQTtRQUFBO1VBQXJELEtBQUFELFdBQUEsQ0FBQXBWLENBQUEsTUFBQXFWLE9BQUEsR0FBQUQsV0FBQSxDQUFBalgsQ0FBQSxJQUFBa0QsSUFBQSxHQUF1RDtZQUFBLElBQTVDaVUsbUJBQW1CLEdBQUFELE9BQUEsQ0FBQTlXLEtBQUE7WUFDNUIsSUFBTWdYLGtCQUFrQixHQUN0QkQsbUJBQW1CLENBQUNBLG1CQUFtQixDQUFDMVMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMyUyxrQkFBa0IsQ0FBQ2hMLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtjQUN6QztZQUNGO1lBQ0EsSUFBTWlMLGtCQUFrQixHQUFHcEwsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQUUsS0FBQSxDQUFUc0QsZ0JBQUksR0FBTWYsWUFBVSxFQUFBYyxNQUFBLENBQUEvRixrQkFBQSxDQUFLa1IsbUJBQW1CLEdBQUM7WUFDeEUsSUFBSXhNLEdBQUcsRUFBRTtjQUNQMEIsT0FBTyxDQUFDMUIsR0FBRyxrQkFBQXFCLE1BQUEsQ0FBa0JxTCxrQkFBa0IsV0FBRyxDQUFDO1lBQ3JEO1lBQ0EsSUFBTUMsY0FBc0IsR0FBR2hMLG1CQUFFLENBQUNDLFlBQVksQ0FBQzhLLGtCQUFrQixFQUFFO2NBQ2pFN0ssUUFBUSxFQUFFO1lBQ1osQ0FBQyxDQUFDO1lBQ0YsSUFBTW1DLFVBQVUsR0FBR0ksb0JBQWtCLENBQUNDLFlBQVksQ0FBQ3NJLGNBQWMsQ0FBQztZQUNsRSxJQUFJVCxlQUFlLENBQUNsSSxVQUFVLENBQUMvQixHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUNqRHVNLGVBQWUsQ0FBQ2xJLFVBQVUsQ0FBQy9CLEdBQUcsQ0FBQyxHQUFHK0IsVUFBVTtZQUM5QztVQUNGO1FBQUMsU0FBQXhILEdBQUE7VUFBQThQLFdBQUEsQ0FBQXRYLENBQUEsQ0FBQXdILEdBQUE7UUFBQTtVQUFBOFAsV0FBQSxDQUFBclYsQ0FBQTtRQUFBO01BQ0g7SUFBQyxTQUFBdUYsR0FBQTtNQUFBNFAsV0FBQSxDQUFBcFgsQ0FBQSxDQUFBd0gsR0FBQTtJQUFBO01BQUE0UCxXQUFBLENBQUFuVixDQUFBO0lBQUE7RUFDSDtFQUVBLElBQU0yVixhQUEwQyxHQUFHLENBQUMsQ0FBQztFQUNyRCxJQUFNQyxpQ0FFTCxHQUFHLENBQUMsQ0FBQztFQUNOLElBQU1DLGlDQUVMLEdBQUcsQ0FBQyxDQUFDO0VBQ04sSUFBTUMseUJBQWtFLEdBQUcsQ0FBQyxDQUFDO0VBQzdFLElBQUk3RCxlQUFlLEdBQUdLLHlCQUFlLENBQUN5RCxtQkFBbUIsRUFBRTtJQUFBLElBQUFDLFdBQUEsR0FBQWhSLDBCQUFBLENBQ25Dc0Qsa0JBQVEsQ0FBQ3VGLG1CQUFtQjtNQUFBb0ksT0FBQTtJQUFBO01BQWxELEtBQUFELFdBQUEsQ0FBQS9WLENBQUEsTUFBQWdXLE9BQUEsR0FBQUQsV0FBQSxDQUFBNVgsQ0FBQSxJQUFBa0QsSUFBQSxHQUFvRDtRQUFBLElBQXpDOEgsU0FBTyxHQUFBNk0sT0FBQSxDQUFBelgsS0FBQTtRQUNoQixJQUFJNEssU0FBTyxDQUFDYSxZQUFZLEVBQUU7VUFDeEI7UUFDRjtRQUNBLElBQ0UxQyxXQUFXLEtBQUsyQyx5QkFBVyxDQUFDQyxHQUFHLElBQy9CZixTQUFPLENBQUM3QixXQUFXLEtBQUsyQyx5QkFBVyxDQUFDQyxHQUFHLElBQ3ZDNUMsV0FBVyxLQUFLNkIsU0FBTyxDQUFDN0IsV0FBVyxFQUNuQztVQUNBO1FBQ0Y7UUFDQSxJQUFNK0IsWUFBVSxHQUFHZSxnQkFBSSxDQUFDeEQsSUFBSSxDQUMxQndCLE9BQU8sRUFDUGUsU0FBTyxDQUFDa0IsUUFBUSxDQUFDMUQsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQ2hELENBQUM7UUFBQSxJQUFBc1AsV0FBQSxHQUFBbFIsMEJBQUEsQ0FFK0IsSUFBQXVGLHFCQUFPLEVBQUNqQixZQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztVQUFBNk0sT0FBQTtRQUFBO1VBQWxFLEtBQUFELFdBQUEsQ0FBQWpXLENBQUEsTUFBQWtXLE9BQUEsR0FBQUQsV0FBQSxDQUFBOVgsQ0FBQSxJQUFBa0QsSUFBQSxHQUFvRTtZQUFBLElBQXpEOFUsaUJBQWlCLEdBQUFELE9BQUEsQ0FBQTNYLEtBQUE7WUFDMUIsSUFBTTZYLGdCQUFnQixHQUFHRCxpQkFBaUIsQ0FBQ0EsaUJBQWlCLENBQUN2VCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQ3dULGdCQUFnQixDQUFDN0wsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2NBQ3ZDO1lBQ0Y7WUFDQSxJQUFNOEwsZ0JBQWdCLEdBQUdqTSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFBRSxLQUFBLENBQVRzRCxnQkFBSSxHQUFNZixZQUFVLEVBQUFjLE1BQUEsQ0FBQS9GLGtCQUFBLENBQUsrUixpQkFBaUIsR0FBQztZQUNwRSxJQUFJck4sR0FBRyxFQUFFO2NBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQmtNLGdCQUFnQixXQUFHLENBQUM7WUFDbkQ7WUFDQSxJQUFNQyxZQUFvQixHQUFHN0wsbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDMkwsZ0JBQWdCLEVBQUU7Y0FDN0QxTCxRQUFRLEVBQUU7WUFDWixDQUFDLENBQUM7WUFDRixJQUFNOEMsUUFBUSxHQUFHSSw2QkFBMEIsQ0FBQ0MsVUFBVSxDQUFDd0ksWUFBWSxDQUFDO1lBQ3BFLElBQUlaLGFBQWEsQ0FBQ2pJLFFBQVEsQ0FBQzFDLEdBQUcsQ0FBQyxLQUFLdEMsU0FBUyxFQUFFO2NBQzdDaU4sYUFBYSxDQUFDakksUUFBUSxDQUFDMUMsR0FBRyxDQUFDLEdBQUcwQyxRQUFRO1lBQ3hDO1VBQ0Y7UUFBQyxTQUFBbkksR0FBQTtVQUFBMlEsV0FBQSxDQUFBblksQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUEyUSxXQUFBLENBQUFsVyxDQUFBO1FBQUE7UUFBQSxJQUFBd1csV0FBQSxHQUFBeFIsMEJBQUEsQ0FFOEIsSUFBQXVGLHFCQUFPLEVBQUNqQixZQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztVQUFBbU4sT0FBQTtRQUFBO1VBQWhFLEtBQUFELFdBQUEsQ0FBQXZXLENBQUEsTUFBQXdXLE9BQUEsR0FBQUQsV0FBQSxDQUFBcFksQ0FBQSxJQUFBa0QsSUFBQSxHQUFrRTtZQUFBLElBQXZEb1YsZ0JBQWdCLEdBQUFELE9BQUEsQ0FBQWpZLEtBQUE7WUFDekIsSUFBTW1ZLGVBQWUsR0FBR0QsZ0JBQWdCLENBQUNBLGdCQUFnQixDQUFDN1QsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUM4VCxlQUFlLENBQUNuTSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Y0FDdEM7WUFDRjtZQUNBLElBQU1vTSxlQUFlLEdBQUd2TSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFBRSxLQUFBLENBQVRzRCxnQkFBSSxHQUFNZixZQUFVLEVBQUFjLE1BQUEsQ0FBQS9GLGtCQUFBLENBQUtxUyxnQkFBZ0IsR0FBQztZQUNsRSxJQUFJM04sR0FBRyxFQUFFO2NBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQndNLGVBQWUsV0FBRyxDQUFDO1lBQ2xEO1lBQ0EsSUFBTUMsV0FBbUIsR0FBR25NLG1CQUFFLENBQUNDLFlBQVksQ0FBQ2lNLGVBQWUsRUFBRTtjQUMzRGhNLFFBQVEsRUFBRTtZQUNaLENBQUMsQ0FBQztZQUNGLElBQU1rTSxPQUFPLEdBQ1hoSiw2QkFBMEIsQ0FBQ1Usc0JBQXNCLENBQUNxSSxXQUFXLENBQUM7WUFDaEUsSUFBTUUsWUFBWSxHQUFHRCxPQUFPLENBQUNDLFlBQVk7WUFDekMsSUFDRUEsWUFBWSxDQUFDQyxXQUFXLElBQ3hCcEIsaUNBQWlDLENBQUNtQixZQUFZLENBQUNDLFdBQVcsQ0FBQyxLQUN6RHRPLFNBQVMsRUFDWDtjQUNBa04saUNBQWlDLENBQUNtQixZQUFZLENBQUNDLFdBQVcsQ0FBQyxHQUFHRixPQUFPO1lBQ3ZFO1lBQ0EsSUFDRUMsWUFBWSxDQUFDRSxXQUFXLElBQ3hCcEIsaUNBQWlDLENBQUNrQixZQUFZLENBQUNFLFdBQVcsQ0FBQyxLQUN6RHZPLFNBQVMsRUFDWDtjQUNBbU4saUNBQWlDLENBQUNrQixZQUFZLENBQUNFLFdBQVcsQ0FBQyxHQUFHSCxPQUFPO1lBQ3ZFO1lBQ0EsSUFBSWhCLHlCQUF5QixDQUFDZ0IsT0FBTyxDQUFDOUwsR0FBRyxDQUFDLEtBQUt0QyxTQUFTLEVBQUU7Y0FDeERvTix5QkFBeUIsQ0FBQ2dCLE9BQU8sQ0FBQzlMLEdBQUcsQ0FBQyxHQUFHOEwsT0FBTztZQUNsRDtVQUNGO1FBQUMsU0FBQXZSLEdBQUE7VUFBQWlSLFdBQUEsQ0FBQXpZLENBQUEsQ0FBQXdILEdBQUE7UUFBQTtVQUFBaVIsV0FBQSxDQUFBeFcsQ0FBQTtRQUFBO01BQ0g7SUFBQyxTQUFBdUYsR0FBQTtNQUFBeVEsV0FBQSxDQUFBalksQ0FBQSxDQUFBd0gsR0FBQTtJQUFBO01BQUF5USxXQUFBLENBQUFoVyxDQUFBO0lBQUE7RUFDSDtFQUVBLElBQUlrWCxVQUFvQyxHQUFHLENBQUMsQ0FBQztFQUM3QyxJQUFJakYsZUFBZSxHQUFHSyx5QkFBZSxDQUFDNkUsTUFBTSxFQUFFO0lBQzVDO01BQ0UsSUFBTUMsWUFBb0IsR0FBRy9NLGdCQUFJLENBQUN4RCxJQUFJLENBQ3BDd0IsT0FBTyxvQkFBQStCLE1BQUE7TUFFTDtNQUNBN0MsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxHQUFHRCx5QkFBVyxDQUFDbU4sT0FBTyxHQUFHOVAsV0FBVyxHQUVyRSxjQUNGLENBQUM7TUFDRCxJQUFJbUQsbUJBQUUsQ0FBQzRNLFVBQVUsQ0FBQ0YsWUFBWSxDQUFDLEVBQUU7UUFDL0IsSUFBSXJPLEdBQUcsRUFBRTtVQUNQMEIsT0FBTyxDQUFDMUIsR0FBRyxrQkFBQXFCLE1BQUEsQ0FBa0JnTixZQUFZLENBQUUsQ0FBQztRQUM5QztRQUNBLElBQU1HLEtBQVksR0FBRzdNLG1CQUFFLENBQUNDLFlBQVksQ0FBQ3lNLFlBQVksRUFBRTtVQUFFeE0sUUFBUSxFQUFFO1FBQU8sQ0FBQyxDQUFDO1FBQ3hFMU0sTUFBTSxDQUFDc1osTUFBTSxDQUFDTixVQUFVLEVBQUVyTSxJQUFJLENBQUNDLEtBQUssQ0FBQ3lNLEtBQUksQ0FBQyxDQUFDO01BQzdDLENBQUMsTUFBTSxJQUFJeE8sR0FBRyxFQUFFO1FBQ2QwQixPQUFPLENBQUMxQixHQUFHLDJCQUFBcUIsTUFBQSxDQUEyQmdOLFlBQVksQ0FBRSxDQUFDO01BQ3ZEO0lBQ0Y7SUFFQTtNQUNFLElBQU1BLGFBQW9CLEdBQUcvTSxnQkFBSSxDQUFDeEQsSUFBSSxDQUNwQ3dCLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsZ0JBQ0YsQ0FBQztNQUNELElBQUlxQyxtQkFBRSxDQUFDNE0sVUFBVSxDQUFDRixhQUFZLENBQUMsRUFBRTtRQUMvQixJQUFJck8sR0FBRyxFQUFFO1VBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQmdOLGFBQVksQ0FBRSxDQUFDO1FBQzlDO1FBQ0EsSUFBTUcsTUFBWSxHQUFHN00sbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDeU0sYUFBWSxFQUFFO1VBQUV4TSxRQUFRLEVBQUU7UUFBTyxDQUFDLENBQUM7UUFDeEUxTSxNQUFNLENBQUNzWixNQUFNLENBQUNOLFVBQVUsRUFBRXJNLElBQUksQ0FBQ0MsS0FBSyxDQUFDeU0sTUFBSSxDQUFDLENBQUM7TUFDN0MsQ0FBQyxNQUFNLElBQUl4TyxHQUFHLEVBQUU7UUFDZDBCLE9BQU8sQ0FBQzFCLEdBQUcsMkJBQUFxQixNQUFBLENBQTJCZ04sYUFBWSxDQUFFLENBQUM7TUFDdkQ7SUFDRjtFQUNGO0VBRUEsSUFBTUssWUFBd0MsR0FBRyxDQUFDLENBQUM7RUFDbkQsSUFBSXhGLGVBQWUsR0FBR0sseUJBQWUsQ0FBQ29GLFFBQVEsRUFBRTtJQUFBLElBQUFDLFdBQUEsR0FBQTNTLDBCQUFBLENBQ3hCc0Qsa0JBQVEsQ0FBQ3NILFFBQVE7TUFBQWdJLE9BQUE7SUFBQTtNQUF2QyxLQUFBRCxXQUFBLENBQUExWCxDQUFBLE1BQUEyWCxPQUFBLEdBQUFELFdBQUEsQ0FBQXZaLENBQUEsSUFBQWtELElBQUEsR0FBeUM7UUFBQSxJQUE5QjhILFNBQU8sR0FBQXdPLE9BQUEsQ0FBQXBaLEtBQUE7UUFDaEIsSUFBSTRLLFNBQU8sQ0FBQ2EsWUFBWSxFQUFFO1VBQ3hCO1FBQ0Y7UUFDQSxJQUNFMUMsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUMvQmYsU0FBTyxDQUFDN0IsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUN2QzVDLFdBQVcsS0FBSzZCLFNBQU8sQ0FBQzdCLFdBQVcsRUFDbkM7VUFDQTtRQUNGO1FBQ0EsSUFBTStCLFlBQVUsR0FBR2UsZ0JBQUksQ0FBQ3hELElBQUksQ0FDMUJ3QixPQUFPLEVBQ1BlLFNBQU8sQ0FBQ2tCLFFBQVEsQ0FBQzFELE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUNoRCxDQUFDO1FBQUEsSUFBQWlSLFdBQUEsR0FBQTdTLDBCQUFBLENBRThCLElBQUF1RixxQkFBTyxFQUFDakIsWUFBVSxDQUFDO1VBQUF3TyxPQUFBO1FBQUE7VUFBbEQsS0FBQUQsV0FBQSxDQUFBNVgsQ0FBQSxNQUFBNlgsT0FBQSxHQUFBRCxXQUFBLENBQUF6WixDQUFBLElBQUFrRCxJQUFBLEdBQW9EO1lBQUEsSUFBekN5VyxnQkFBZ0IsR0FBQUQsT0FBQSxDQUFBdFosS0FBQTtZQUN6QixJQUFNd1osZUFBZSxHQUFHRCxnQkFBZ0IsQ0FBQ0EsZ0JBQWdCLENBQUNsVixNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQ21WLGVBQWUsQ0FBQ3hOLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtjQUN0QztZQUNGO1lBQ0EsSUFBTXlOLGVBQWUsR0FBRzVOLGdCQUFJLENBQUN4RCxJQUFJLENBQUFFLEtBQUEsQ0FBVHNELGdCQUFJLEdBQU1mLFlBQVUsRUFBQWMsTUFBQSxDQUFBL0Ysa0JBQUEsQ0FBSzBULGdCQUFnQixHQUFDO1lBQ2xFLElBQUloUCxHQUFHLEVBQUU7Y0FDUDBCLE9BQU8sQ0FBQzFCLEdBQUcsa0JBQUFxQixNQUFBLENBQWtCNk4sZUFBZSxXQUFHLENBQUM7WUFDbEQ7WUFDQSxJQUFNQyxXQUFtQixHQUFHeE4sbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDc04sZUFBZSxFQUFFO2NBQzNEck4sUUFBUSxFQUFFO1lBQ1osQ0FBQyxDQUFDO1lBQ0YsSUFBTTZFLE9BQU8sR0FBR0ksaUJBQWUsQ0FBQ0MsU0FBUyxDQUFDb0ksV0FBVyxDQUFDO1lBQ3RELElBQUlULFlBQVksQ0FBQ2hJLE9BQU8sQ0FBQ3pFLEdBQUcsQ0FBQyxLQUFLdEMsU0FBUyxFQUFFO2NBQzNDK08sWUFBWSxDQUFDaEksT0FBTyxDQUFDekUsR0FBRyxDQUFDLEdBQUd5RSxPQUFPO1lBQ3JDO1VBQ0Y7UUFBQyxTQUFBbEssR0FBQTtVQUFBc1MsV0FBQSxDQUFBOVosQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUFzUyxXQUFBLENBQUE3WCxDQUFBO1FBQUE7TUFDSDtJQUFDLFNBQUF1RixHQUFBO01BQUFvUyxXQUFBLENBQUE1WixDQUFBLENBQUF3SCxHQUFBO0lBQUE7TUFBQW9TLFdBQUEsQ0FBQTNYLENBQUE7SUFBQTtFQUNIO0VBRUEsSUFBTW1ZLGFBQTBDLEdBQUcsQ0FBQyxDQUFDO0VBQ3JELElBQUlsRyxlQUFlLEdBQUdLLHlCQUFlLENBQUM4RixTQUFTLEVBQUU7SUFBQSxJQUFBQyxXQUFBLEdBQUFyVCwwQkFBQSxDQUN6QnNELGtCQUFRLENBQUNpSSxTQUFTO01BQUErSCxPQUFBO0lBQUE7TUFBeEMsS0FBQUQsV0FBQSxDQUFBcFksQ0FBQSxNQUFBcVksT0FBQSxHQUFBRCxXQUFBLENBQUFqYSxDQUFBLElBQUFrRCxJQUFBLEdBQTBDO1FBQUEsSUFBL0I4SCxTQUFPLEdBQUFrUCxPQUFBLENBQUE5WixLQUFBO1FBQ2hCLElBQUk0SyxTQUFPLENBQUNhLFlBQVksRUFBRTtVQUN4QjtRQUNGO1FBQ0EsSUFDRTFDLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDL0JmLFNBQU8sQ0FBQzdCLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDdkM1QyxXQUFXLEtBQUs2QixTQUFPLENBQUM3QixXQUFXLEVBQ25DO1VBQ0E7UUFDRjtRQUNBLElBQU0rQixZQUFVLEdBQUdlLGdCQUFJLENBQUN4RCxJQUFJLENBQzFCd0IsT0FBTyxFQUNQZSxTQUFPLENBQUNrQixRQUFRLENBQUMxRCxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FDaEQsQ0FBQztRQUFBLElBQUEyUixXQUFBLEdBQUF2VCwwQkFBQSxDQUUrQixJQUFBdUYscUJBQU8sRUFBQ2pCLFlBQVUsQ0FBQztVQUFBa1AsT0FBQTtRQUFBO1VBQW5ELEtBQUFELFdBQUEsQ0FBQXRZLENBQUEsTUFBQXVZLE9BQUEsR0FBQUQsV0FBQSxDQUFBbmEsQ0FBQSxJQUFBa0QsSUFBQSxHQUFxRDtZQUFBLElBQTFDbVgsaUJBQWlCLEdBQUFELE9BQUEsQ0FBQWhhLEtBQUE7WUFDMUIsSUFBTWthLGdCQUFnQixHQUFHRCxpQkFBaUIsQ0FBQ0EsaUJBQWlCLENBQUM1VixNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQzZWLGdCQUFnQixDQUFDbE8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2NBQ3ZDO1lBQ0Y7WUFDQSxJQUFNbU8sZ0JBQWdCLEdBQUd0TyxnQkFBSSxDQUFDeEQsSUFBSSxDQUFBRSxLQUFBLENBQVRzRCxnQkFBSSxHQUFNZixZQUFVLEVBQUFjLE1BQUEsQ0FBQS9GLGtCQUFBLENBQUtvVSxpQkFBaUIsR0FBQztZQUNwRSxJQUFJMVAsR0FBRyxFQUFFO2NBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQnVPLGdCQUFnQixXQUFHLENBQUM7WUFDbkQ7WUFDQSxJQUFNQyxZQUFvQixHQUFHbE8sbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDZ08sZ0JBQWdCLEVBQUU7Y0FDN0QvTixRQUFRLEVBQUU7WUFDWixDQUFDLENBQUM7WUFDRixJQUFNd0YsUUFBUSxHQUFHSSxrQkFBZ0IsQ0FBQ0MsVUFBVSxDQUFDbUksWUFBWSxDQUFDO1lBQzFELElBQUlULGFBQWEsQ0FBQy9ILFFBQVEsQ0FBQ3BGLEdBQUcsQ0FBQyxLQUFLdEMsU0FBUyxFQUFFO2NBQzdDeVAsYUFBYSxDQUFDL0gsUUFBUSxDQUFDcEYsR0FBRyxDQUFDLEdBQUdvRixRQUFRO1lBQ3hDO1VBQ0Y7UUFBQyxTQUFBN0ssR0FBQTtVQUFBZ1QsV0FBQSxDQUFBeGEsQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUFnVCxXQUFBLENBQUF2WSxDQUFBO1FBQUE7TUFDSDtJQUFDLFNBQUF1RixHQUFBO01BQUE4UyxXQUFBLENBQUF0YSxDQUFBLENBQUF3SCxHQUFBO0lBQUE7TUFBQThTLFdBQUEsQ0FBQXJZLENBQUE7SUFBQTtFQUNIO0VBRUEsSUFBTTZZLGdCQUFnRCxHQUFHLENBQUMsQ0FBQztFQUMzRCxJQUFJNUcsZUFBZSxHQUFHSyx5QkFBZSxDQUFDd0csb0JBQW9CLEVBQUU7SUFBQSxJQUFBQyxXQUFBLEdBQUEvVCwwQkFBQSxDQUNwQ3NELGtCQUFRLENBQUM0SSxvQkFBb0I7TUFBQThILE9BQUE7SUFBQTtNQUFuRCxLQUFBRCxXQUFBLENBQUE5WSxDQUFBLE1BQUErWSxPQUFBLEdBQUFELFdBQUEsQ0FBQTNhLENBQUEsSUFBQWtELElBQUEsR0FBcUQ7UUFBQSxJQUExQzhILFNBQU8sR0FBQTRQLE9BQUEsQ0FBQXhhLEtBQUE7UUFDaEIsSUFBSTRLLFNBQU8sQ0FBQ2EsWUFBWSxFQUFFO1VBQ3hCO1FBQ0Y7UUFDQSxJQUNFMUMsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUMvQmYsU0FBTyxDQUFDN0IsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUN2QzVDLFdBQVcsS0FBSzZCLFNBQU8sQ0FBQzdCLFdBQVcsRUFDbkM7VUFDQTtRQUNGO1FBQ0EsSUFBTStCLFlBQVUsR0FBR2UsZ0JBQUksQ0FBQ3hELElBQUksQ0FDMUJ3QixPQUFPLEVBQ1BlLFNBQU8sQ0FBQ2tCLFFBQVEsQ0FBQzFELE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUNoRCxDQUFDO1FBQUEsSUFBQXFTLFdBQUEsR0FBQWpVLDBCQUFBLENBRTZCLElBQUF1RixxQkFBTyxFQUFDakIsWUFBVSxDQUFDO1VBQUE0UCxPQUFBO1FBQUE7VUFBakQsS0FBQUQsV0FBQSxDQUFBaFosQ0FBQSxNQUFBaVosT0FBQSxHQUFBRCxXQUFBLENBQUE3YSxDQUFBLElBQUFrRCxJQUFBLEdBQW1EO1lBQUEsSUFBeEM2WCxlQUFlLEdBQUFELE9BQUEsQ0FBQTFhLEtBQUE7WUFDeEIsSUFBTTRhLG1CQUFtQixHQUFHRCxlQUFlLENBQUNBLGVBQWUsQ0FBQ3RXLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDdVcsbUJBQW1CLENBQUM1TyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Y0FDMUM7WUFDRjtZQUNBLElBQU02TyxtQkFBbUIsR0FBR2hQLGdCQUFJLENBQUN4RCxJQUFJLENBQUFFLEtBQUEsQ0FBVHNELGdCQUFJLEdBQU1mLFlBQVUsRUFBQWMsTUFBQSxDQUFBL0Ysa0JBQUEsQ0FBSzhVLGVBQWUsR0FBQztZQUNyRSxJQUFJcFEsR0FBRyxFQUFFO2NBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQmlQLG1CQUFtQixXQUFHLENBQUM7WUFDdEQ7WUFDQSxJQUFNQyxlQUF1QixHQUFHNU8sbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDME8sbUJBQW1CLEVBQUU7Y0FDbkV6TyxRQUFRLEVBQUU7WUFDWixDQUFDLENBQUM7WUFDRixJQUFNbUcsV0FBVyxHQUFHSSxlQUFvQixDQUFDQyxhQUFhLENBQUNrSSxlQUFlLENBQUM7WUFDdkUsSUFBSVQsZ0JBQWdCLENBQUM5SCxXQUFXLENBQUMvRixHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUNuRG1RLGdCQUFnQixDQUFDOUgsV0FBVyxDQUFDL0YsR0FBRyxDQUFDLEdBQUcrRixXQUFXO1lBQ2pEO1VBQ0Y7UUFBQyxTQUFBeEwsR0FBQTtVQUFBMFQsV0FBQSxDQUFBbGIsQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUEwVCxXQUFBLENBQUFqWixDQUFBO1FBQUE7TUFDSDtJQUFDLFNBQUF1RixHQUFBO01BQUF3VCxXQUFBLENBQUFoYixDQUFBLENBQUF3SCxHQUFBO0lBQUE7TUFBQXdULFdBQUEsQ0FBQS9ZLENBQUE7SUFBQTtFQUNIO0VBRUEsT0FBTztJQUNMb1MsV0FBVyxFQUFYQSxXQUFXO0lBQ1g2QyxlQUFlLEVBQWZBLGVBQWU7SUFDZlUsYUFBYSxFQUFiQSxhQUFhO0lBQ2JDLGlDQUFpQyxFQUFqQ0EsaUNBQWlDO0lBQ2pDQyxpQ0FBaUMsRUFBakNBLGlDQUFpQztJQUNqQ0MseUJBQXlCLEVBQXpCQSx5QkFBeUI7SUFDekJ6RCxXQUFXLEVBQVhBLFdBQVc7SUFDWDZFLFVBQVUsRUFBVkEsVUFBVTtJQUNWNUQsWUFBWSxFQUFaQSxZQUFZO0lBQ1pDLGFBQWEsRUFBYkEsYUFBYTtJQUNiQyxvQkFBb0IsRUFBcEJBLG9CQUFvQjtJQUNwQmlFLFlBQVksRUFBWkEsWUFBWTtJQUNaVSxhQUFhLEVBQWJBLGFBQWE7SUFDYlUsZ0JBQWdCLEVBQWhCQTtFQUNGLENBQUM7QUFDSDs7QUFFQTtBQUNBO0FBQ08sU0FBU1UsNkJBQTZCQSxDQUMzQ2xSLE9BQWUsRUFDZjRKLGVBQWdDLEVBQ2hDMUssV0FBd0IsRUFFbEI7RUFBQSxJQUFBaVMsS0FBQSxHQUFBMVMsU0FBQSxDQUFBakUsTUFBQSxRQUFBaUUsU0FBQSxRQUFBNEIsU0FBQSxHQUFBNUIsU0FBQSxNQURZLENBQUMsQ0FBQztJQUFBMlMsU0FBQSxHQUFBRCxLQUFBLENBQWxCelEsR0FBRztJQUFIQSxHQUFHLEdBQUEwUSxTQUFBLGNBQUcsS0FBSyxHQUFBQSxTQUFBO0VBRWIsSUFBTXJILFdBQXNDLEdBQUcsQ0FBQyxDQUFDO0VBQ2pELElBQU1DLFdBQXNDLEdBQUcsQ0FBQyxDQUFDO0VBQ2pELElBQUlKLGVBQWUsR0FBR0sseUJBQWUsQ0FBQ0MsZ0JBQWdCLEVBQUU7SUFBQSxJQUFBbUgsV0FBQSxHQUFBMVUsMEJBQUEsQ0FDaENzRCxrQkFBUSxDQUFDd0QsZ0JBQWdCO01BQUE2TixPQUFBO0lBQUE7TUFBL0MsS0FBQUQsV0FBQSxDQUFBelosQ0FBQSxNQUFBMFosT0FBQSxHQUFBRCxXQUFBLENBQUF0YixDQUFBLElBQUFrRCxJQUFBLEdBQWlEO1FBQUEsSUFBdEM4SCxPQUFPLEdBQUF1USxPQUFBLENBQUFuYixLQUFBO1FBQ2hCLElBQUk0SyxPQUFPLENBQUNhLFlBQVksRUFBRTtVQUN4QjtRQUNGO1FBQ0EsSUFDRTFDLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDL0JmLE9BQU8sQ0FBQzdCLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDdkM1QyxXQUFXLEtBQUs2QixPQUFPLENBQUM3QixXQUFXLEVBQ25DO1VBQ0E7UUFDRjtRQUNBLElBQU02UCxZQUFvQixHQUFHL00sZ0JBQUksQ0FBQ3hELElBQUksQ0FDcEN3QixPQUFPLEVBQ1BlLE9BQU8sQ0FBQ2tCLFFBQVEsQ0FBQzFELE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUNyRCxDQUFDO1FBQ0QsSUFBSW1DLEdBQUcsRUFBRTtVQUNQMEIsT0FBTyxDQUFDMUIsR0FBRyxrQkFBQXFCLE1BQUEsQ0FBa0JnTixZQUFZLENBQUUsQ0FBQztRQUM5QztRQUNBLElBQU1HLE1BQVksR0FBRzdNLG1CQUFFLENBQUNDLFlBQVksQ0FBQ3lNLFlBQVksRUFBRTtVQUFFeE0sUUFBUSxFQUFFO1FBQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQU1rQixnQkFBZ0IsR0FBR0MsMkJBQXVCLENBQUM2TixrQkFBa0IsQ0FBQ3JDLE1BQUksQ0FBQztRQUFBLElBQUFzQyxXQUFBLEdBQUE3VSwwQkFBQSxDQUNwRDhHLGdCQUFnQixDQUFDZ08sT0FBTztVQUFBQyxPQUFBO1FBQUE7VUFBN0MsS0FBQUYsV0FBQSxDQUFBNVosQ0FBQSxNQUFBOFosT0FBQSxHQUFBRixXQUFBLENBQUF6YixDQUFBLElBQUFrRCxJQUFBLEdBQStDO1lBQUEsSUFBcENxSyxNQUFNLEdBQUFvTyxPQUFBLENBQUF2YixLQUFBO1lBQ2Y7WUFDQSxJQUFJNFQsV0FBVyxDQUFDekcsTUFBTSxDQUFDWCxHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUN6QzBKLFdBQVcsQ0FBQ3pHLE1BQU0sQ0FBQ1gsR0FBRyxDQUFDLEdBQUdXLE1BQU07WUFDbEM7VUFDRjtRQUFDLFNBQUFwRyxHQUFBO1VBQUFzVSxXQUFBLENBQUE5YixDQUFBLENBQUF3SCxHQUFBO1FBQUE7VUFBQXNVLFdBQUEsQ0FBQTdaLENBQUE7UUFBQTtRQUFBLElBQUFnYSxXQUFBLEdBQUFoViwwQkFBQSxDQUNvQjhHLGdCQUFnQixDQUFDbU8sT0FBTztVQUFBQyxPQUFBO1FBQUE7VUFBN0MsS0FBQUYsV0FBQSxDQUFBL1osQ0FBQSxNQUFBaWEsT0FBQSxHQUFBRixXQUFBLENBQUE1YixDQUFBLElBQUFrRCxJQUFBLEdBQStDO1lBQUEsSUFBcENnTCxNQUFNLEdBQUE0TixPQUFBLENBQUExYixLQUFBO1lBQ2Y7WUFDQSxJQUFJNlQsV0FBVyxDQUFDL0YsTUFBTSxDQUFDdEIsR0FBRyxDQUFDLEtBQUt0QyxTQUFTLEVBQUU7Y0FDekMySixXQUFXLENBQUMvRixNQUFNLENBQUN0QixHQUFHLENBQUMsR0FBR3NCLE1BQU07WUFDbEM7VUFDRjtRQUFDLFNBQUEvRyxHQUFBO1VBQUF5VSxXQUFBLENBQUFqYyxDQUFBLENBQUF3SCxHQUFBO1FBQUE7VUFBQXlVLFdBQUEsQ0FBQWhhLENBQUE7UUFBQTtNQUNIO0lBQUMsU0FBQXVGLEdBQUE7TUFBQW1VLFdBQUEsQ0FBQTNiLENBQUEsQ0FBQXdILEdBQUE7SUFBQTtNQUFBbVUsV0FBQSxDQUFBMVosQ0FBQTtJQUFBO0VBQ0g7RUFFQSxJQUFNc1QsWUFBd0MsR0FBRyxDQUFDLENBQUM7RUFDbkQsSUFBTUMsYUFBMkMsR0FBRyxDQUFDLENBQUM7RUFDdEQsSUFBTUMsb0JBQXlELEdBQUcsQ0FBQyxDQUFDO0VBQ3BFLElBQUl2QixlQUFlLEdBQUdLLHlCQUFlLENBQUNtQixPQUFPLEVBQUU7SUFBQSxJQUFBMEcsV0FBQSxHQUFBblYsMEJBQUEsQ0FDdkJzRCxrQkFBUSxDQUFDMkcsT0FBTztNQUFBbUwsT0FBQTtJQUFBO01BQXRDLEtBQUFELFdBQUEsQ0FBQWxhLENBQUEsTUFBQW1hLE9BQUEsR0FBQUQsV0FBQSxDQUFBL2IsQ0FBQSxJQUFBa0QsSUFBQSxHQUF3QztRQUFBLElBQTdCOEgsU0FBTyxHQUFBZ1IsT0FBQSxDQUFBNWIsS0FBQTtRQUNoQixJQUFJNEssU0FBTyxDQUFDYSxZQUFZLEVBQUU7VUFDeEI7UUFDRjtRQUNBLElBQ0UxQyxXQUFXLEtBQUsyQyx5QkFBVyxDQUFDQyxHQUFHLElBQy9CZixTQUFPLENBQUM3QixXQUFXLEtBQUsyQyx5QkFBVyxDQUFDQyxHQUFHLElBQ3ZDNUMsV0FBVyxLQUFLNkIsU0FBTyxDQUFDN0IsV0FBVyxFQUNuQztVQUNBO1FBQ0Y7UUFDQSxJQUFNNlAsY0FBb0IsR0FBRy9NLGdCQUFJLENBQUN4RCxJQUFJLENBQ3BDd0IsT0FBTyxFQUNQZSxTQUFPLENBQUNrQixRQUFRLENBQUMxRCxPQUFPLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FDckQsQ0FBQztRQUNELElBQUltQyxHQUFHLEVBQUU7VUFDUDBCLE9BQU8sQ0FBQzFCLEdBQUcsa0JBQUFxQixNQUFBLENBQWtCZ04sY0FBWSxDQUFFLENBQUM7UUFDOUM7UUFDQSxJQUFNRyxNQUFZLEdBQUc3TSxtQkFBRSxDQUFDQyxZQUFZLENBQUN5TSxjQUFZLEVBQUU7VUFBRXhNLFFBQVEsRUFBRTtRQUFPLENBQUMsQ0FBQztRQUN4RSxJQUFNcUUsT0FBTyxHQUFHQyxnQkFBYyxDQUFDbUwsU0FBUyxDQUFDOUMsTUFBSSxDQUFDO1FBQUEsSUFBQStDLFdBQUEsR0FBQXRWLDBCQUFBLENBQ3hCaUssT0FBTyxDQUFDc0wsUUFBUTtVQUFBQyxPQUFBO1FBQUE7VUFBdEMsS0FBQUYsV0FBQSxDQUFBcmEsQ0FBQSxNQUFBdWEsT0FBQSxHQUFBRixXQUFBLENBQUFsYyxDQUFBLElBQUFrRCxJQUFBLEdBQXdDO1lBQUEsSUFBN0J3TixPQUFPLEdBQUEwTCxPQUFBLENBQUFoYyxLQUFBO1lBQ2hCLElBQUk4VSxZQUFZLENBQUN4RSxPQUFPLENBQUM5RCxHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUMzQzRLLFlBQVksQ0FBQ3hFLE9BQU8sQ0FBQzlELEdBQUcsQ0FBQyxHQUFHOEQsT0FBTztZQUNyQztZQUVBLElBQU1vRixLQUFHLEdBQUdwRixPQUFPLENBQUNxRixjQUFjLENBQUNDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSUMsYUFBYSxHQUFHZixhQUFhLENBQUNXLEtBQUcsQ0FBQztZQUN0QyxJQUFJSSxhQUFhLEtBQUs1TCxTQUFTLEVBQUU7Y0FDL0I0TCxhQUFhLEdBQUdmLGFBQWEsQ0FBQ1csS0FBRyxDQUFDLEdBQUcsRUFBRTtZQUN6QztZQUNBSSxhQUFhLENBQUM5UixJQUFJLENBQUNzTSxPQUFPLENBQUM7WUFFM0IsSUFBTXlGLEdBQUcsR0FBR3pGLE9BQU8sQ0FBQ3lGLEdBQUc7WUFDdkIsSUFBSUEsR0FBRyxLQUFLN0wsU0FBUyxFQUFFO2NBQUEsSUFBQStSLFdBQUEsR0FBQXpWLDBCQUFBLENBQ0V1UCxHQUFHLENBQUNFLFNBQVMsSUFBSSxFQUFFO2dCQUFBaUcsT0FBQTtjQUFBO2dCQUExQyxLQUFBRCxXQUFBLENBQUF4YSxDQUFBLE1BQUF5YSxPQUFBLEdBQUFELFdBQUEsQ0FBQXJjLENBQUEsSUFBQWtELElBQUEsR0FBNEM7a0JBQUEsSUFBakNxVCxRQUFRLEdBQUErRixPQUFBLENBQUFsYyxLQUFBO2tCQUFBLElBQUFtYyxXQUFBLEdBQUEzViwwQkFBQSxDQUNrQjJQLFFBQVEsQ0FBQ0UsdUJBQXVCLElBQ2pFLEVBQUU7b0JBQUErRixPQUFBO2tCQUFBO29CQURKLEtBQUFELFdBQUEsQ0FBQTFhLENBQUEsTUFBQTJhLE9BQUEsR0FBQUQsV0FBQSxDQUFBdmMsQ0FBQSxJQUFBa0QsSUFBQSxHQUNNO3NCQUFBLElBREt5VCxvQkFBb0IsR0FBQTZGLE9BQUEsQ0FBQXBjLEtBQUE7c0JBRTdCLElBQUl3VyxvQkFBb0IsR0FDdEJ4QixvQkFBb0IsQ0FBQ3VCLG9CQUFvQixDQUFDO3NCQUM1QyxJQUFJQyxvQkFBb0IsS0FBS3RNLFNBQVMsRUFBRTt3QkFDdENzTSxvQkFBb0IsR0FBR3hCLG9CQUFvQixDQUN6Q3VCLG9CQUFvQixDQUNyQixHQUFHLEVBQUU7c0JBQ1I7c0JBQ0FDLG9CQUFvQixDQUFDeFMsSUFBSSxDQUFDc00sT0FBTyxDQUFDO29CQUNwQztrQkFBQyxTQUFBdkosR0FBQTtvQkFBQW9WLFdBQUEsQ0FBQTVjLENBQUEsQ0FBQXdILEdBQUE7a0JBQUE7b0JBQUFvVixXQUFBLENBQUEzYSxDQUFBO2tCQUFBO2dCQUNIO2NBQUMsU0FBQXVGLEdBQUE7Z0JBQUFrVixXQUFBLENBQUExYyxDQUFBLENBQUF3SCxHQUFBO2NBQUE7Z0JBQUFrVixXQUFBLENBQUF6YSxDQUFBO2NBQUE7WUFDSDtVQUNGO1FBQUMsU0FBQXVGLEdBQUE7VUFBQStVLFdBQUEsQ0FBQXZjLENBQUEsQ0FBQXdILEdBQUE7UUFBQTtVQUFBK1UsV0FBQSxDQUFBdGEsQ0FBQTtRQUFBO01BQ0g7SUFBQyxTQUFBdUYsR0FBQTtNQUFBNFUsV0FBQSxDQUFBcGMsQ0FBQSxDQUFBd0gsR0FBQTtJQUFBO01BQUE0VSxXQUFBLENBQUFuYSxDQUFBO0lBQUE7RUFDSDtFQUVBLElBQU1pVixlQUE4QyxHQUFHLENBQUMsQ0FBQztFQUN6RCxJQUFJaEQsZUFBZSxHQUFHSyx5QkFBZSxDQUFDNEMsV0FBVyxFQUFFO0lBQUEsSUFBQTJGLFdBQUEsR0FBQTdWLDBCQUFBLENBQzNCc0Qsa0JBQVEsQ0FBQzRFLFdBQVc7TUFBQTROLE9BQUE7SUFBQTtNQUExQyxLQUFBRCxXQUFBLENBQUE1YSxDQUFBLE1BQUE2YSxPQUFBLEdBQUFELFdBQUEsQ0FBQXpjLENBQUEsSUFBQWtELElBQUEsR0FBNEM7UUFBQSxJQUFqQzhILFNBQU8sR0FBQTBSLE9BQUEsQ0FBQXRjLEtBQUE7UUFDaEIsSUFBSTRLLFNBQU8sQ0FBQ2EsWUFBWSxFQUFFO1VBQ3hCO1FBQ0Y7UUFDQSxJQUNFMUMsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUMvQmYsU0FBTyxDQUFDN0IsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUN2QzVDLFdBQVcsS0FBSzZCLFNBQU8sQ0FBQzdCLFdBQVcsRUFDbkM7VUFDQTtRQUNGO1FBQ0EsSUFBTTZQLGNBQW9CLEdBQUcvTSxnQkFBSSxDQUFDeEQsSUFBSSxDQUNwQ3dCLE9BQU8sRUFDUGUsU0FBTyxDQUFDa0IsUUFBUSxDQUFDMUQsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQ3JELENBQUM7UUFDRCxJQUFJbUMsR0FBRyxFQUFFO1VBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQmdOLGNBQVksQ0FBRSxDQUFDO1FBQzlDO1FBQ0EsSUFBTUcsTUFBWSxHQUFHN00sbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDeU0sY0FBWSxFQUFFO1VBQUV4TSxRQUFRLEVBQUU7UUFBTyxDQUFDLENBQUM7UUFDeEUsSUFBTXNDLFdBQVcsR0FBR0Msb0JBQWtCLENBQUM0TixhQUFhLENBQUN4RCxNQUFJLENBQUM7UUFBQSxJQUFBeUQsV0FBQSxHQUFBaFcsMEJBQUEsQ0FDNUJrSSxXQUFXLENBQUMrTixpQkFBaUI7VUFBQUMsT0FBQTtRQUFBO1VBQTNELEtBQUFGLFdBQUEsQ0FBQS9hLENBQUEsTUFBQWliLE9BQUEsR0FBQUYsV0FBQSxDQUFBNWMsQ0FBQSxJQUFBa0QsSUFBQSxHQUE2RDtZQUFBLElBQWxENlosZUFBZSxHQUFBRCxPQUFBLENBQUExYyxLQUFBO1lBQUEsSUFBQTRjLFdBQUEsR0FBQXBXLDBCQUFBLENBQ0NtVyxlQUFlLENBQUNqTyxXQUFXO2NBQUFtTyxPQUFBO1lBQUE7Y0FBcEQsS0FBQUQsV0FBQSxDQUFBbmIsQ0FBQSxNQUFBb2IsT0FBQSxHQUFBRCxXQUFBLENBQUFoZCxDQUFBLElBQUFrRCxJQUFBLEdBQXNEO2dCQUFBLElBQTNDeUwsVUFBVSxHQUFBc08sT0FBQSxDQUFBN2MsS0FBQTtnQkFDbkIsSUFBSXlXLGVBQWUsQ0FBQ2xJLFVBQVUsQ0FBQy9CLEdBQUcsQ0FBQyxLQUFLdEMsU0FBUyxFQUFFO2tCQUNqRHVNLGVBQWUsQ0FBQ2xJLFVBQVUsQ0FBQy9CLEdBQUcsQ0FBQyxHQUFHK0IsVUFBVTtnQkFDOUM7Y0FDRjtZQUFDLFNBQUF4SCxHQUFBO2NBQUE2VixXQUFBLENBQUFyZCxDQUFBLENBQUF3SCxHQUFBO1lBQUE7Y0FBQTZWLFdBQUEsQ0FBQXBiLENBQUE7WUFBQTtVQUNIO1FBQUMsU0FBQXVGLEdBQUE7VUFBQXlWLFdBQUEsQ0FBQWpkLENBQUEsQ0FBQXdILEdBQUE7UUFBQTtVQUFBeVYsV0FBQSxDQUFBaGIsQ0FBQTtRQUFBO01BQ0g7SUFBQyxTQUFBdUYsR0FBQTtNQUFBc1YsV0FBQSxDQUFBOWMsQ0FBQSxDQUFBd0gsR0FBQTtJQUFBO01BQUFzVixXQUFBLENBQUE3YSxDQUFBO0lBQUE7RUFDSDtFQUVBLElBQU0yVixhQUEwQyxHQUFHLENBQUMsQ0FBQztFQUNyRCxJQUFNQyxpQ0FFTCxHQUFHLENBQUMsQ0FBQztFQUNOLElBQU1DLGlDQUVMLEdBQUcsQ0FBQyxDQUFDO0VBQ04sSUFBTUMseUJBQWtFLEdBQUcsQ0FBQyxDQUFDO0VBQzdFLElBQUk3RCxlQUFlLEdBQUdLLHlCQUFlLENBQUN5RCxtQkFBbUIsRUFBRTtJQUFBLElBQUF1RixXQUFBLEdBQUF0VywwQkFBQSxDQUNuQ3NELGtCQUFRLENBQUN1RixtQkFBbUI7TUFBQTBOLE9BQUE7SUFBQTtNQUFsRCxLQUFBRCxXQUFBLENBQUFyYixDQUFBLE1BQUFzYixPQUFBLEdBQUFELFdBQUEsQ0FBQWxkLENBQUEsSUFBQWtELElBQUEsR0FBb0Q7UUFBQSxJQUF6QzhILFNBQU8sR0FBQW1TLE9BQUEsQ0FBQS9jLEtBQUE7UUFDaEIsSUFBSTRLLFNBQU8sQ0FBQ2EsWUFBWSxFQUFFO1VBQ3hCO1FBQ0Y7UUFDQSxJQUNFMUMsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUMvQmYsU0FBTyxDQUFDN0IsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUN2QzVDLFdBQVcsS0FBSzZCLFNBQU8sQ0FBQzdCLFdBQVcsRUFDbkM7VUFDQTtRQUNGO1FBQ0EsSUFBTTZQLGNBQW9CLEdBQUcvTSxnQkFBSSxDQUFDeEQsSUFBSSxDQUNwQ3dCLE9BQU8sRUFDUGUsU0FBTyxDQUFDa0IsUUFBUSxDQUFDMUQsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQ3JELENBQUM7UUFDRCxJQUFJbUMsR0FBRyxFQUFFO1VBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQmdOLGNBQVksQ0FBRSxDQUFDO1FBQzlDO1FBQ0EsSUFBTUcsTUFBWSxHQUFHN00sbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDeU0sY0FBWSxFQUFFO1VBQUV4TSxRQUFRLEVBQUU7UUFBTyxDQUFDLENBQUM7UUFDeEUsSUFBTWlELG1CQUFtQixHQUN2QkMsNkJBQTBCLENBQUMwTixxQkFBcUIsQ0FBQ2pFLE1BQUksQ0FBQztRQUFBLElBQUFrRSxXQUFBLEdBQUF6VywwQkFBQSxDQUNqQzZJLG1CQUFtQixDQUFDb04saUJBQWlCO1VBQUFTLE9BQUE7UUFBQTtVQUE1RCxLQUFBRCxXQUFBLENBQUF4YixDQUFBLE1BQUF5YixPQUFBLEdBQUFELFdBQUEsQ0FBQXJkLENBQUEsSUFBQWtELElBQUEsR0FBOEQ7WUFBQSxJQUFuRG9NLFFBQVEsR0FBQWdPLE9BQUEsQ0FBQWxkLEtBQUE7WUFDakIsSUFBSW1YLGFBQWEsQ0FBQ2pJLFFBQVEsQ0FBQzFDLEdBQUcsQ0FBQyxLQUFLdEMsU0FBUyxFQUFFO2NBQzdDaU4sYUFBYSxDQUFDakksUUFBUSxDQUFDMUMsR0FBRyxDQUFDLEdBQUcwQyxRQUFRO1lBQ3hDO1VBQ0Y7UUFBQyxTQUFBbkksR0FBQTtVQUFBa1csV0FBQSxDQUFBMWQsQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUFrVyxXQUFBLENBQUF6YixDQUFBO1FBQUE7UUFBQSxJQUFBMmIsV0FBQSxHQUFBM1csMEJBQUEsQ0FDcUI2SSxtQkFBbUIsQ0FBQytOLHNCQUFzQjtVQUFBQyxPQUFBO1FBQUE7VUFBaEUsS0FBQUYsV0FBQSxDQUFBMWIsQ0FBQSxNQUFBNGIsT0FBQSxHQUFBRixXQUFBLENBQUF2ZCxDQUFBLElBQUFrRCxJQUFBLEdBQWtFO1lBQUEsSUFBdkR3VixPQUFPLEdBQUErRSxPQUFBLENBQUFyZCxLQUFBO1lBQ2hCLElBQU11WSxZQUFZLEdBQUdELE9BQU8sQ0FBQ0MsWUFBWTtZQUN6QyxJQUNFQSxZQUFZLENBQUNDLFdBQVcsSUFDeEJwQixpQ0FBaUMsQ0FBQ21CLFlBQVksQ0FBQ0MsV0FBVyxDQUFDLEtBQ3pEdE8sU0FBUyxFQUNYO2NBQ0FrTixpQ0FBaUMsQ0FBQ21CLFlBQVksQ0FBQ0MsV0FBVyxDQUFDLEdBQUdGLE9BQU87WUFDdkU7WUFDQSxJQUNFQyxZQUFZLENBQUNFLFdBQVcsSUFDeEJwQixpQ0FBaUMsQ0FBQ2tCLFlBQVksQ0FBQ0UsV0FBVyxDQUFDLEtBQ3pEdk8sU0FBUyxFQUNYO2NBQ0FtTixpQ0FBaUMsQ0FBQ2tCLFlBQVksQ0FBQ0UsV0FBVyxDQUFDLEdBQUdILE9BQU87WUFDdkU7WUFDQSxJQUFJaEIseUJBQXlCLENBQUNnQixPQUFPLENBQUM5TCxHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUN4RG9OLHlCQUF5QixDQUFDZ0IsT0FBTyxDQUFDOUwsR0FBRyxDQUFDLEdBQUc4TCxPQUFPO1lBQ2xEO1VBQ0Y7UUFBQyxTQUFBdlIsR0FBQTtVQUFBb1csV0FBQSxDQUFBNWQsQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUFvVyxXQUFBLENBQUEzYixDQUFBO1FBQUE7TUFDSDtJQUFDLFNBQUF1RixHQUFBO01BQUErVixXQUFBLENBQUF2ZCxDQUFBLENBQUF3SCxHQUFBO0lBQUE7TUFBQStWLFdBQUEsQ0FBQXRiLENBQUE7SUFBQTtFQUNIO0VBRUEsSUFBTWtYLFVBQW9DLEdBQUcsQ0FBQyxDQUFDO0VBQy9DLElBQUlqRixlQUFlLEdBQUdLLHlCQUFlLENBQUM2RSxNQUFNLEVBQUU7SUFDNUMsSUFBTUQsV0FBVSxHQUFHLENBQUMsQ0FBQztJQUVyQjtNQUNFLElBQU1FLGNBQW9CLEdBQUcvTSxnQkFBSSxDQUFDeEQsSUFBSSxDQUNwQ3dCLE9BQU8sb0JBQUErQixNQUFBO01BRUw7TUFDQTdDLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsR0FBR0QseUJBQVcsQ0FBQ21OLE9BQU8sR0FBRzlQLFdBQVcsR0FFckUsY0FDRixDQUFDO01BQ0QsSUFBSW1ELG1CQUFFLENBQUM0TSxVQUFVLENBQUNGLGNBQVksQ0FBQyxFQUFFO1FBQy9CLElBQUlyTyxHQUFHLEVBQUU7VUFDUDBCLE9BQU8sQ0FBQzFCLEdBQUcsa0JBQUFxQixNQUFBLENBQWtCZ04sY0FBWSxDQUFFLENBQUM7UUFDOUM7UUFDQSxJQUFNRyxNQUFZLEdBQUc3TSxtQkFBRSxDQUFDQyxZQUFZLENBQUN5TSxjQUFZLEVBQUU7VUFBRXhNLFFBQVEsRUFBRTtRQUFPLENBQUMsQ0FBQztRQUN4RTFNLE1BQU0sQ0FBQ3NaLE1BQU0sQ0FBQ04sV0FBVSxFQUFFck0sSUFBSSxDQUFDQyxLQUFLLENBQUN5TSxNQUFJLENBQUMsQ0FBQztNQUM3QyxDQUFDLE1BQU0sSUFBSXhPLEdBQUcsRUFBRTtRQUNkMEIsT0FBTyxDQUFDMUIsR0FBRywyQkFBQXFCLE1BQUEsQ0FBMkJnTixjQUFZLENBQUUsQ0FBQztNQUN2RDtJQUNGO0lBRUE7TUFDRSxJQUFNQSxjQUFvQixHQUFHL00sZ0JBQUksQ0FBQ3hELElBQUksQ0FDcEN3QixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGdCQUNGLENBQUM7TUFDRCxJQUFJcUMsbUJBQUUsQ0FBQzRNLFVBQVUsQ0FBQ0YsY0FBWSxDQUFDLEVBQUU7UUFDL0IsSUFBSXJPLEdBQUcsRUFBRTtVQUNQMEIsT0FBTyxDQUFDMUIsR0FBRyxrQkFBQXFCLE1BQUEsQ0FBa0JnTixjQUFZLENBQUUsQ0FBQztRQUM5QztRQUNBLElBQU1HLE1BQVksR0FBRzdNLG1CQUFFLENBQUNDLFlBQVksQ0FBQ3lNLGNBQVksRUFBRTtVQUFFeE0sUUFBUSxFQUFFO1FBQU8sQ0FBQyxDQUFDO1FBQ3hFMU0sTUFBTSxDQUFDc1osTUFBTSxDQUFDTixXQUFVLEVBQUVyTSxJQUFJLENBQUNDLEtBQUssQ0FBQ3lNLE1BQUksQ0FBQyxDQUFDO01BQzdDLENBQUMsTUFBTSxJQUFJeE8sR0FBRyxFQUFFO1FBQ2QwQixPQUFPLENBQUMxQixHQUFHLDJCQUFBcUIsTUFBQSxDQUEyQmdOLGNBQVksQ0FBRSxDQUFDO01BQ3ZEO0lBQ0Y7RUFDRjtFQUVBLElBQU1LLFlBQXdDLEdBQUcsQ0FBQyxDQUFDO0VBQ25ELElBQUl4RixlQUFlLEdBQUdLLHlCQUFlLENBQUNvRixRQUFRLEVBQUU7SUFBQSxJQUFBb0UsV0FBQSxHQUFBOVcsMEJBQUEsQ0FDeEJzRCxrQkFBUSxDQUFDc0gsUUFBUTtNQUFBbU0sT0FBQTtJQUFBO01BQXZDLEtBQUFELFdBQUEsQ0FBQTdiLENBQUEsTUFBQThiLE9BQUEsR0FBQUQsV0FBQSxDQUFBMWQsQ0FBQSxJQUFBa0QsSUFBQSxHQUF5QztRQUFBLElBQTlCOEgsVUFBTyxHQUFBMlMsT0FBQSxDQUFBdmQsS0FBQTtRQUNoQixJQUFJNEssVUFBTyxDQUFDYSxZQUFZLEVBQUU7VUFDeEI7UUFDRjtRQUNBLElBQ0UxQyxXQUFXLEtBQUsyQyx5QkFBVyxDQUFDQyxHQUFHLElBQy9CZixVQUFPLENBQUM3QixXQUFXLEtBQUsyQyx5QkFBVyxDQUFDQyxHQUFHLElBQ3ZDNUMsV0FBVyxLQUFLNkIsVUFBTyxDQUFDN0IsV0FBVyxFQUNuQztVQUNBO1FBQ0Y7UUFDQSxJQUFNNlAsY0FBb0IsR0FBRy9NLGdCQUFJLENBQUN4RCxJQUFJLENBQ3BDd0IsT0FBTyxFQUNQZSxVQUFPLENBQUNrQixRQUFRLENBQUMxRCxPQUFPLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FDckQsQ0FBQztRQUNELElBQUltQyxHQUFHLEVBQUU7VUFDUDBCLE9BQU8sQ0FBQzFCLEdBQUcsa0JBQUFxQixNQUFBLENBQWtCZ04sY0FBWSxDQUFFLENBQUM7UUFDOUM7UUFDQSxJQUFNRyxNQUFZLEdBQUc3TSxtQkFBRSxDQUFDQyxZQUFZLENBQUN5TSxjQUFZLEVBQUU7VUFBRXhNLFFBQVEsRUFBRTtRQUFPLENBQUMsQ0FBQztRQUN4RSxJQUFNZ0YsUUFBUSxHQUFHQyxpQkFBZSxDQUFDbU0sVUFBVSxDQUFDekUsTUFBSSxDQUFDO1FBQUEsSUFBQTBFLFdBQUEsR0FBQWpYLDBCQUFBLENBQzNCNEssUUFBUSxDQUFDQSxRQUFRO1VBQUFzTSxPQUFBO1FBQUE7VUFBdkMsS0FBQUQsV0FBQSxDQUFBaGMsQ0FBQSxNQUFBaWMsT0FBQSxHQUFBRCxXQUFBLENBQUE3ZCxDQUFBLElBQUFrRCxJQUFBLEdBQXlDO1lBQUEsSUFBOUJtTyxPQUFPLEdBQUF5TSxPQUFBLENBQUExZCxLQUFBO1lBQ2hCLElBQUlpWixZQUFZLENBQUNoSSxPQUFPLENBQUN6RSxHQUFHLENBQUMsS0FBS3RDLFNBQVMsRUFBRTtjQUMzQytPLFlBQVksQ0FBQ2hJLE9BQU8sQ0FBQ3pFLEdBQUcsQ0FBQyxHQUFHeUUsT0FBTztZQUNyQztVQUNGO1FBQUMsU0FBQWxLLEdBQUE7VUFBQTBXLFdBQUEsQ0FBQWxlLENBQUEsQ0FBQXdILEdBQUE7UUFBQTtVQUFBMFcsV0FBQSxDQUFBamMsQ0FBQTtRQUFBO01BQ0g7SUFBQyxTQUFBdUYsR0FBQTtNQUFBdVcsV0FBQSxDQUFBL2QsQ0FBQSxDQUFBd0gsR0FBQTtJQUFBO01BQUF1VyxXQUFBLENBQUE5YixDQUFBO0lBQUE7RUFDSDtFQUVBLElBQU1tWSxhQUEwQyxHQUFHLENBQUMsQ0FBQztFQUNyRCxJQUFJbEcsZUFBZSxHQUFHSyx5QkFBZSxDQUFDOEYsU0FBUyxFQUFFO0lBQUEsSUFBQStELFdBQUEsR0FBQW5YLDBCQUFBLENBQ3pCc0Qsa0JBQVEsQ0FBQ2lJLFNBQVM7TUFBQTZMLE9BQUE7SUFBQTtNQUF4QyxLQUFBRCxXQUFBLENBQUFsYyxDQUFBLE1BQUFtYyxPQUFBLEdBQUFELFdBQUEsQ0FBQS9kLENBQUEsSUFBQWtELElBQUEsR0FBMEM7UUFBQSxJQUEvQjhILFVBQU8sR0FBQWdULE9BQUEsQ0FBQTVkLEtBQUE7UUFDaEIsSUFBSTRLLFVBQU8sQ0FBQ2EsWUFBWSxFQUFFO1VBQ3hCO1FBQ0Y7UUFDQSxJQUNFMUMsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUMvQmYsVUFBTyxDQUFDN0IsV0FBVyxLQUFLMkMseUJBQVcsQ0FBQ0MsR0FBRyxJQUN2QzVDLFdBQVcsS0FBSzZCLFVBQU8sQ0FBQzdCLFdBQVcsRUFDbkM7VUFDQTtRQUNGO1FBQ0EsSUFBTTZQLGNBQW9CLEdBQUcvTSxnQkFBSSxDQUFDeEQsSUFBSSxDQUNwQ3dCLE9BQU8sRUFDUGUsVUFBTyxDQUFDa0IsUUFBUSxDQUFDMUQsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQ3JELENBQUM7UUFDRCxJQUFJbUMsR0FBRyxFQUFFO1VBQ1AwQixPQUFPLENBQUMxQixHQUFHLGtCQUFBcUIsTUFBQSxDQUFrQmdOLGNBQVksQ0FBRSxDQUFDO1FBQzlDO1FBQ0EsSUFBTUcsT0FBWSxHQUFHN00sbUJBQUUsQ0FBQ0MsWUFBWSxDQUFDeU0sY0FBWSxFQUFFO1VBQUV4TSxRQUFRLEVBQUU7UUFBTyxDQUFDLENBQUM7UUFDeEUsSUFBTTJGLFNBQVMsR0FBR0Msa0JBQWdCLENBQUM2TCxXQUFXLENBQUM5RSxPQUFJLENBQUM7UUFBQSxJQUFBK0UsV0FBQSxHQUFBdFgsMEJBQUEsQ0FDN0J1TCxTQUFTLENBQUNBLFNBQVM7VUFBQWdNLE9BQUE7UUFBQTtVQUExQyxLQUFBRCxXQUFBLENBQUFyYyxDQUFBLE1BQUFzYyxPQUFBLEdBQUFELFdBQUEsQ0FBQWxlLENBQUEsSUFBQWtELElBQUEsR0FBNEM7WUFBQSxJQUFqQzhPLFFBQVEsR0FBQW1NLE9BQUEsQ0FBQS9kLEtBQUE7WUFDakIsSUFBSTJaLGFBQWEsQ0FBQy9ILFFBQVEsQ0FBQ3BGLEdBQUcsQ0FBQyxLQUFLdEMsU0FBUyxFQUFFO2NBQzdDeVAsYUFBYSxDQUFDL0gsUUFBUSxDQUFDcEYsR0FBRyxDQUFDLEdBQUdvRixRQUFRO1lBQ3hDO1VBQ0Y7UUFBQyxTQUFBN0ssR0FBQTtVQUFBK1csV0FBQSxDQUFBdmUsQ0FBQSxDQUFBd0gsR0FBQTtRQUFBO1VBQUErVyxXQUFBLENBQUF0YyxDQUFBO1FBQUE7TUFDSDtJQUFDLFNBQUF1RixHQUFBO01BQUE0VyxXQUFBLENBQUFwZSxDQUFBLENBQUF3SCxHQUFBO0lBQUE7TUFBQTRXLFdBQUEsQ0FBQW5jLENBQUE7SUFBQTtFQUNIO0VBRUEsSUFBTTZZLGdCQUFnRCxHQUFHLENBQUMsQ0FBQztFQUMzRCxJQUFJNUcsZUFBZSxHQUFHSyx5QkFBZSxDQUFDd0csb0JBQW9CLEVBQUU7SUFBQSxJQUFBMEQsV0FBQSxHQUFBeFgsMEJBQUEsQ0FDcENzRCxrQkFBUSxDQUFDNEksb0JBQW9CO01BQUF1TCxPQUFBO0lBQUE7TUFBbkQsS0FBQUQsV0FBQSxDQUFBdmMsQ0FBQSxNQUFBd2MsT0FBQSxHQUFBRCxXQUFBLENBQUFwZSxDQUFBLElBQUFrRCxJQUFBLEdBQXFEO1FBQUEsSUFBMUM4SCxVQUFPLEdBQUFxVCxPQUFBLENBQUFqZSxLQUFBO1FBQ2hCLElBQUk0SyxVQUFPLENBQUNhLFlBQVksRUFBRTtVQUN4QjtRQUNGO1FBQ0EsSUFDRTFDLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDL0JmLFVBQU8sQ0FBQzdCLFdBQVcsS0FBSzJDLHlCQUFXLENBQUNDLEdBQUcsSUFDdkM1QyxXQUFXLEtBQUs2QixVQUFPLENBQUM3QixXQUFXLEVBQ25DO1VBQ0E7UUFDRjtRQUNBLElBQU02UCxjQUFvQixHQUFHL00sZ0JBQUksQ0FBQ3hELElBQUksQ0FDcEN3QixPQUFPLEVBQ1BlLFVBQU8sQ0FBQ2tCLFFBQVEsQ0FBQzFELE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUNyRCxDQUFDO1FBQ0QsSUFBSW1DLEdBQUcsRUFBRTtVQUNQMEIsT0FBTyxDQUFDMUIsR0FBRyxrQkFBQXFCLE1BQUEsQ0FBa0JnTixjQUFZLENBQUUsQ0FBQztRQUM5QztRQUNBLElBQU1HLE9BQVksR0FBRzdNLG1CQUFFLENBQUNDLFlBQVksQ0FBQ3lNLGNBQVksRUFBRTtVQUFFeE0sUUFBUSxFQUFFO1FBQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQU04UixhQUFhLEdBQUd2TCxlQUFvQixDQUFDd0wsZUFBZSxDQUFDcEYsT0FBSSxDQUFDO1FBQUEsSUFBQXFGLFdBQUEsR0FBQTVYLDBCQUFBLENBQ3RDMFgsYUFBYSxDQUFDQSxhQUFhO1VBQUFHLE9BQUE7UUFBQTtVQUFyRCxLQUFBRCxXQUFBLENBQUEzYyxDQUFBLE1BQUE0YyxPQUFBLEdBQUFELFdBQUEsQ0FBQXhlLENBQUEsSUFBQWtELElBQUEsR0FBdUQ7WUFBQSxJQUE1Q3lQLFdBQVcsR0FBQThMLE9BQUEsQ0FBQXJlLEtBQUE7WUFDcEIsSUFBSXFhLGdCQUFnQixDQUFDOUgsV0FBVyxDQUFDL0YsR0FBRyxDQUFDLEtBQUt0QyxTQUFTLEVBQUU7Y0FDbkRtUSxnQkFBZ0IsQ0FBQzlILFdBQVcsQ0FBQy9GLEdBQUcsQ0FBQyxHQUFHK0YsV0FBVztZQUNqRDtVQUNGO1FBQUMsU0FBQXhMLEdBQUE7VUFBQXFYLFdBQUEsQ0FBQTdlLENBQUEsQ0FBQXdILEdBQUE7UUFBQTtVQUFBcVgsV0FBQSxDQUFBNWMsQ0FBQTtRQUFBO01BQ0g7SUFBQyxTQUFBdUYsR0FBQTtNQUFBaVgsV0FBQSxDQUFBemUsQ0FBQSxDQUFBd0gsR0FBQTtJQUFBO01BQUFpWCxXQUFBLENBQUF4YyxDQUFBO0lBQUE7RUFDSDtFQUVBLE9BQU87SUFDTG9TLFdBQVcsRUFBWEEsV0FBVztJQUNYNkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZVLGFBQWEsRUFBYkEsYUFBYTtJQUNiQyxpQ0FBaUMsRUFBakNBLGlDQUFpQztJQUNqQ0MsaUNBQWlDLEVBQWpDQSxpQ0FBaUM7SUFDakNDLHlCQUF5QixFQUF6QkEseUJBQXlCO0lBQ3pCekQsV0FBVyxFQUFYQSxXQUFXO0lBQ1g2RSxVQUFVLEVBQVZBLFVBQVU7SUFDVjVELFlBQVksRUFBWkEsWUFBWTtJQUNaQyxhQUFhLEVBQWJBLGFBQWE7SUFDYkMsb0JBQW9CLEVBQXBCQSxvQkFBb0I7SUFDcEJpRSxZQUFZLEVBQVpBLFlBQVk7SUFDWlUsYUFBYSxFQUFiQSxhQUFhO0lBQ2JVLGdCQUFnQixFQUFoQkE7RUFDRixDQUFDO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTaUUseUJBQXlCQSxDQUN2Q3pVLE9BQWUsRUFDZjJDLEdBQVcsRUFDWCtSLE9BQTRCLEVBT2hCO0VBQ1osSUFBTUMsWUFBWSxHQUFHM1MsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQ3dCLE9BQU8sRUFBRSxXQUFXLENBQUM7RUFDcEQsSUFBTTRVLFdBQVcsR0FBR0MsbUJBQW1CLENBQUNGLFlBQVksRUFBRWhTLEdBQUcsQ0FBQztFQUMxRCxJQUFNbVMsU0FBUyxHQUFHOVMsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQ29XLFdBQVcsRUFBRSxZQUFZLENBQUM7RUFDdEQsSUFBSSxDQUFDdlMsbUJBQUUsQ0FBQzBTLGNBQWMsQ0FBQ0QsU0FBUyxDQUFDLEVBQUU7SUFDakMsT0FBT3pVLFNBQVM7RUFDbEI7RUFDQSxJQUFNMlUsS0FBSyxHQUFHM1MsbUJBQUUsQ0FBQzRTLFlBQVksQ0FBQ0gsU0FBUyxDQUF1QjtFQUFBLElBQUFJLFdBQUEsR0FBQXZZLDBCQUFBLENBQ3pDK1gsT0FBTztJQUFBUyxPQUFBO0VBQUE7SUFBNUIsS0FBQUQsV0FBQSxDQUFBdGQsQ0FBQSxNQUFBdWQsT0FBQSxHQUFBRCxXQUFBLENBQUFuZixDQUFBLElBQUFrRCxJQUFBLEdBQThCO01BQUEsSUFBQW1jLGFBQUE7TUFBQSxJQUFuQkMsTUFBTSxHQUFBRixPQUFBLENBQUFoZixLQUFBO01BQUEsSUFBQW1mLFdBQUEsR0FBQTNZLDBCQUFBLEVBQUF5WSxhQUFBLEdBQ2lCSixLQUFLLENBQUNLLE1BQU0sQ0FBQyxjQUFBRCxhQUFBLGNBQUFBLGFBQUEsR0FBSSxFQUFFO1FBQUFHLE9BQUE7TUFBQTtRQUFuRCxLQUFBRCxXQUFBLENBQUExZCxDQUFBLE1BQUEyZCxPQUFBLEdBQUFELFdBQUEsQ0FBQXZmLENBQUEsSUFBQWtELElBQUEsR0FBcUQ7VUFBQSxJQUFBdWMsYUFBQSxHQUFBRCxPQUFBLENBQUFwZixLQUFBO1lBQXhDOEwsUUFBUSxHQUFBdVQsYUFBQSxDQUFSdlQsUUFBUTtZQUFFd1QsR0FBRyxHQUFBRCxhQUFBLENBQUhDLEdBQUc7VUFDeEIsSUFBSXhULFFBQVEsS0FBSzVCLFNBQVMsRUFBRTtZQUMxQjtVQUNGO1VBQ0EsT0FBTztZQUFFZ1YsTUFBTSxFQUFOQSxNQUFNO1lBQUVyVCxJQUFJLEVBQUVBLGdCQUFJLENBQUN4RCxJQUFJLENBQUNvVyxXQUFXLEVBQUUzUyxRQUFRLENBQUM7WUFBRXdULEdBQUcsRUFBSEE7VUFBSSxDQUFDO1FBQ2hFO01BQUMsU0FBQXZZLEdBQUE7UUFBQW9ZLFdBQUEsQ0FBQTVmLENBQUEsQ0FBQXdILEdBQUE7TUFBQTtRQUFBb1ksV0FBQSxDQUFBM2QsQ0FBQTtNQUFBO0lBQ0g7RUFBQyxTQUFBdUYsR0FBQTtJQUFBZ1ksV0FBQSxDQUFBeGYsQ0FBQSxDQUFBd0gsR0FBQTtFQUFBO0lBQUFnWSxXQUFBLENBQUF2ZCxDQUFBO0VBQUE7RUFDRCxPQUFPMEksU0FBUztBQUNsQjtBQUVPLFNBQVNxViwwQkFBMEJBLENBQ3hDMVYsT0FBZSxFQUNmZCxXQUF3QixFQUVFO0VBQUEsSUFBQXlXLEtBQUEsR0FBQWxYLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFEUixDQUFDLENBQUM7SUFBQW1YLFNBQUEsR0FBQUQsS0FBQSxDQUFsQmpWLEdBQUc7SUFBSEEsR0FBRyxHQUFBa1YsU0FBQSxjQUFHLEtBQUssR0FBQUEsU0FBQTtFQUViLElBQU03RyxZQUFvQixHQUFHL00sZ0JBQUksQ0FBQ3hELElBQUksQ0FDcEN3QixPQUFPLG9CQUFBK0IsTUFBQTtFQUVMO0VBQ0E3QyxXQUFXLEtBQUsyQyx5QkFBVyxDQUFDQyxHQUFHLEdBQUdELHlCQUFXLENBQUNtTixPQUFPLEdBQUc5UCxXQUFXLEdBRXJFLGNBQ0YsQ0FBQztFQUNELElBQUl3QixHQUFHLEVBQUU7SUFDUDBCLE9BQU8sQ0FBQzFCLEdBQUcsa0JBQUFxQixNQUFBLENBQWtCZ04sWUFBWSxDQUFFLENBQUM7RUFDOUM7RUFDQSxJQUFNRyxJQUFZLEdBQUc3TSxtQkFBRSxDQUFDQyxZQUFZLENBQUN5TSxZQUFZLEVBQUU7SUFBRXhNLFFBQVEsRUFBRTtFQUFPLENBQUMsQ0FBQztFQUN4RSxPQUFPQyxJQUFJLENBQUNDLEtBQUssQ0FBQ3lNLElBQUksQ0FBQztBQUN6QjtBQUVPLFNBQVMyRyw0QkFBNEJBLENBQzFDN1YsT0FBZSxFQUVXO0VBQUEsSUFBQThWLEtBQUEsR0FBQXJYLFNBQUEsQ0FBQWpFLE1BQUEsUUFBQWlFLFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFEUixDQUFDLENBQUM7SUFBQXNYLFNBQUEsR0FBQUQsS0FBQSxDQUFsQnBWLEdBQUc7SUFBSEEsR0FBRyxHQUFBcVYsU0FBQSxjQUFHLEtBQUssR0FBQUEsU0FBQTtFQUViLElBQU1oSCxZQUFvQixHQUFHL00sZ0JBQUksQ0FBQ3hELElBQUksQ0FDcEN3QixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGdCQUNGLENBQUM7RUFDRCxJQUFJVSxHQUFHLEVBQUU7SUFDUDBCLE9BQU8sQ0FBQzFCLEdBQUcsa0JBQUFxQixNQUFBLENBQWtCZ04sWUFBWSxDQUFFLENBQUM7RUFDOUM7RUFDQSxJQUFNRyxJQUFZLEdBQUc3TSxtQkFBRSxDQUFDQyxZQUFZLENBQUN5TSxZQUFZLEVBQUU7SUFBRXhNLFFBQVEsRUFBRTtFQUFPLENBQUMsQ0FBQztFQUN4RSxPQUFPQyxJQUFJLENBQUNDLEtBQUssQ0FBQ3lNLElBQUksQ0FBQztBQUN6QjtBQUVPLFNBQVMyRixtQkFBbUJBLENBQUNGLFlBQW9CLEVBQUVoUyxHQUFXLEVBQVU7RUFBQSxJQUFBcVQsb0JBQUEsRUFBQUMsZUFBQSxFQUFBQyxrQkFBQSxFQUFBQyxtQkFBQSxFQUFBQyxjQUFBO0VBQzdFLElBQU1DLEtBQUssR0FBRzFULEdBQUcsQ0FBQzBULEtBQUssQ0FBQ3ZYLGdCQUFnQixDQUFDO0VBQ3pDd1gsa0JBQU0sQ0FBQ0MsY0FBYyxDQUNuQkYsS0FBSyxFQUNMLElBQUksNENBQUF0VSxNQUFBLENBQ3NDWSxHQUFHLENBQy9DLENBQUM7RUFDRCxJQUFNdEUsTUFBTSxHQUFHZ1ksS0FBSyxDQUFFaFksTUFBbUM7RUFDekQsSUFBTVUsWUFBWSxHQUFHaUQsZ0JBQUksQ0FBQ3hELElBQUksQ0FDNUJtVyxZQUFZLEdBQUFxQixvQkFBQSxHQUNaM1gsTUFBTSxDQUFDVSxZQUFZLGNBQUFpWCxvQkFBQSxjQUFBQSxvQkFBQSxHQUFJM1gsTUFBTSxDQUFDZ0IsYUFDaEMsQ0FBQztFQUNELElBQU1tWCxVQUFVLEdBQUd4VSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFDTyxZQUFZLEdBQUFrWCxlQUFBLEdBQUU1WCxNQUFNLENBQUNXLE9BQU8sY0FBQWlYLGVBQUEsY0FBQUEsZUFBQSxHQUFJNVgsTUFBTSxDQUFDaUIsUUFBUSxDQUFDO0VBQzdFLElBQU1tWCxhQUFhLEdBQUd6VSxnQkFBSSxDQUFDeEQsSUFBSSxDQUM3QmdZLFVBQVUsR0FBQU4sa0JBQUEsR0FDVjdYLE1BQU0sQ0FBQ1ksVUFBVSxjQUFBaVgsa0JBQUEsY0FBQUEsa0JBQUEsR0FBSTdYLE1BQU0sQ0FBQ2tCLFdBQzlCLENBQUM7RUFDRCxJQUFNbVgsY0FBYyxHQUFHMVUsZ0JBQUksQ0FBQ3hELElBQUksQ0FDOUJpWSxhQUFhLEdBQUFOLG1CQUFBLEdBQ2I5WCxNQUFNLENBQUNhLFdBQVcsY0FBQWlYLG1CQUFBLGNBQUFBLG1CQUFBLEdBQUk5WCxNQUFNLENBQUNtQixZQUMvQixDQUFDO0VBQ0QsSUFBTUwsSUFBSSxHQUFHZCxNQUFNLENBQUNjLElBQUk7RUFDeEIsSUFBSUEsSUFBSSxLQUFLa0IsU0FBUyxFQUFFO0lBQ3RCZ0MsbUJBQUUsQ0FBQ3NVLGFBQWEsQ0FBQ0QsY0FBYyxDQUFDO0lBQ2hDLE9BQU8xVSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFDa1ksY0FBYyxFQUFFL1QsR0FBRyxDQUFDO0VBQ3ZDO0VBQ0EsSUFBTWlVLE9BQU8sR0FBRzVVLGdCQUFJLENBQUN4RCxJQUFJLENBQUNrWSxjQUFjLEVBQUV2WCxJQUFJLENBQUM7RUFDL0MsSUFBSUMsTUFBTSxHQUFHLFFBQVEsS0FBQWdYLGNBQUEsR0FBSS9YLE1BQU0sQ0FBQ2UsTUFBTSxjQUFBZ1gsY0FBQSxjQUFBQSxjQUFBLEdBQUkvWCxNQUFNLENBQUNvQixPQUFPLENBQUM7RUFDekRMLE1BQU0sR0FBR0EsTUFBTSxDQUFDeVgsU0FBUyxDQUFDelgsTUFBTSxDQUFDNUUsTUFBTSxHQUFHLENBQUMsQ0FBQztFQUM1QyxJQUFNc2MsaUJBQWlCLEdBQUc5VSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFDb1ksT0FBTyxFQUFFeFgsTUFBTSxDQUFDeVgsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNwRXhVLG1CQUFFLENBQUNzVSxhQUFhLENBQUNHLGlCQUFpQixDQUFDO0VBQ25DLE9BQU85VSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFDc1ksaUJBQWlCLEVBQUVuVSxHQUFHLENBQUM7QUFDMUM7QUFFTyxTQUFTb1UsK0JBQStCQSxDQUM3Q0MsV0FBbUIsRUFDbkJyVSxHQUFXLEVBQ0g7RUFDUixPQUFPc1UsV0FBVyxDQUFDRCxXQUFXLEVBQUVyVSxHQUFHLEVBQUVqRCxlQUFlLENBQUM7QUFDdkQ7QUFFTyxTQUFTd1gsa0JBQWtCQSxDQUFDQyxXQUFtQixFQUFFeFUsR0FBVyxFQUFVO0VBQzNFLElBQU0wVCxLQUFLLEdBQUcxVyxlQUFlLENBQUN2QixJQUFJLENBQUN1RSxHQUFHLENBQUM7RUFDdkMyVCxrQkFBTSxDQUFDQyxjQUFjLENBQ25CRixLQUFLLEVBQ0wsSUFBSSwyQ0FBQXRVLE1BQUEsQ0FDcUNZLEdBQUcsQ0FDOUMsQ0FBQztFQUNELElBQU02VCxVQUFVLEdBQUd4VSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFDMlksV0FBVyxFQUFFZCxLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7RUFDcEQsSUFBTUksYUFBYSxHQUFHelUsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQ2dZLFVBQVUsRUFBRUgsS0FBSyxDQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ3RELElBQU1LLGNBQWMsR0FBRzFVLGdCQUFJLENBQUN4RCxJQUFJLENBQUNpWSxhQUFhLEVBQUVKLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQztFQUMxRCxJQUFNZSxVQUFVLEdBQUdwVixnQkFBSSxDQUFDeEQsSUFBSSxDQUFDa1ksY0FBYyxFQUFFTCxLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7RUFDdkQsSUFBTWdCLEtBQUssR0FBR3JWLGdCQUFJLENBQUN4RCxJQUFJLENBQUM0WSxVQUFVLEVBQUVmLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQztFQUM5QyxJQUFJalgsTUFBTSxHQUFHLFdBQVcsR0FBR2lYLEtBQUssQ0FBRSxDQUFDLENBQUM7RUFDcENqWCxNQUFNLEdBQUdBLE1BQU0sQ0FBQ3lYLFNBQVMsQ0FBQ3pYLE1BQU0sQ0FBQzVFLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDNUMsSUFBTThjLGlCQUFpQixHQUFHdFYsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQzZZLEtBQUssRUFBRWpZLE1BQU0sQ0FBQ3lYLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFDbEUsSUFBTUMsaUJBQWlCLEdBQUc5VSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFDOFksaUJBQWlCLEVBQUVsWSxNQUFNLENBQUN5WCxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQzlFeFUsbUJBQUUsQ0FBQ3NVLGFBQWEsQ0FBQ0csaUJBQWlCLENBQUM7RUFDbkMsT0FBTzlVLGdCQUFJLENBQUN4RCxJQUFJLENBQUNzWSxpQkFBaUIsRUFBRW5VLEdBQUcsQ0FBQztBQUMxQztBQUVPLFNBQVM0VSxrQkFBa0JBLENBQUNDLFdBQW1CLEVBQUU3VSxHQUFXLEVBQVU7RUFDM0UsSUFBTTBULEtBQUssR0FBR3pXLGVBQWUsQ0FBQ3hCLElBQUksQ0FBQ3VFLEdBQUcsQ0FBQztFQUN2QzJULGtCQUFNLENBQUNDLGNBQWMsQ0FDbkJGLEtBQUssRUFDTCxJQUFJLDJDQUFBdFUsTUFBQSxDQUNxQ1ksR0FBRyxDQUM5QyxDQUFDO0VBQ0QsSUFBTTZULFVBQVUsR0FBR3hVLGdCQUFJLENBQUN4RCxJQUFJLENBQUNnWixXQUFXLEVBQUVuQixLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7RUFDcEQsSUFBTUksYUFBYSxHQUFHelUsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQ2dZLFVBQVUsRUFBRUgsS0FBSyxDQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ3RELElBQU1LLGNBQWMsR0FBRzFVLGdCQUFJLENBQUN4RCxJQUFJLENBQUNpWSxhQUFhLEVBQUVKLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQztFQUMxRCxJQUFJalgsTUFBTSxHQUFHLFFBQVEsR0FBR2lYLEtBQUssQ0FBRSxDQUFDLENBQUM7RUFDakNqWCxNQUFNLEdBQUdBLE1BQU0sQ0FBQ3lYLFNBQVMsQ0FBQ3pYLE1BQU0sQ0FBQzVFLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDNUMsSUFBTXNjLGlCQUFpQixHQUFHOVUsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQ2tZLGNBQWMsRUFBRXRYLE1BQU0sQ0FBQ3lYLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFDM0V4VSxtQkFBRSxDQUFDc1UsYUFBYSxDQUFDRyxpQkFBaUIsQ0FBQztFQUNuQyxPQUFPOVUsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQ3NZLGlCQUFpQixFQUFFblUsR0FBRyxDQUFDO0FBQzFDO0FBRU8sU0FBUzhVLG1CQUFtQkEsQ0FBQ3pYLE9BQWUsRUFBRTJDLEdBQVcsRUFBVTtFQUN4RSxPQUFPc1UsV0FBVyxDQUFDalgsT0FBTyxFQUFFMkMsR0FBRyxFQUFFN0MsZ0JBQWdCLENBQUM7QUFDcEQ7QUFFTyxTQUFTNFgsc0JBQXNCQSxDQUFDMVgsT0FBZSxFQUFFMkMsR0FBVyxFQUFVO0VBQzNFLE9BQU9zVSxXQUFXLENBQUNqWCxPQUFPLEVBQUUyQyxHQUFHLEVBQUU5QyxtQkFBbUIsQ0FBQztBQUN2RDs7QUFFQTtBQUNBLFNBQVNvWCxXQUFXQSxDQUFDalgsT0FBZSxFQUFFMkMsR0FBVyxFQUFFZ1YsVUFBa0IsRUFBVTtFQUM3RSxJQUFNdEIsS0FBSyxHQUFHc0IsVUFBVSxDQUFDdlosSUFBSSxDQUFDdUUsR0FBRyxDQUFDO0VBQ2xDMlQsa0JBQU0sQ0FBQ0MsY0FBYyxDQUNuQkYsS0FBSyxFQUNMLElBQUksK0NBQUF0VSxNQUFBLENBQ3lDWSxHQUFHLENBQ2xELENBQUM7RUFDRCxJQUFNOFQsYUFBYSxHQUFHelUsZ0JBQUksQ0FBQ3hELElBQUksQ0FBQ3dCLE9BQU8sRUFBRXFXLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQztFQUNuRCxJQUFNSyxjQUFjLEdBQUcxVSxnQkFBSSxDQUFDeEQsSUFBSSxDQUFDaVksYUFBYSxFQUFFSixLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7RUFDMUQsSUFBSWpYLE1BQU0sR0FBRyxRQUFRLEdBQUdpWCxLQUFLLENBQUUsQ0FBQyxDQUFDO0VBQ2pDalgsTUFBTSxHQUFHQSxNQUFNLENBQUN5WCxTQUFTLENBQUN6WCxNQUFNLENBQUM1RSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0VBQzVDLElBQU1zYyxpQkFBaUIsR0FBRzlVLGdCQUFJLENBQUN4RCxJQUFJLENBQUNrWSxjQUFjLEVBQUV0WCxNQUFNLENBQUN5WCxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQzNFeFUsbUJBQUUsQ0FBQ3NVLGFBQWEsQ0FBQ0csaUJBQWlCLENBQUM7RUFDbkMsT0FBTzlVLGdCQUFJLENBQUN4RCxJQUFJLENBQUNzWSxpQkFBaUIsRUFBRW5VLEdBQUcsQ0FBQztBQUMxQyJ9
1689
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsImUiLCJfX2VzTW9kdWxlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwidG9TdHJpbmciLCJ0ZXN0IiwiX3dyYXBSZWdFeHAiLCJCYWJlbFJlZ0V4cCIsIlJlZ0V4cCIsIldlYWtNYXAiLCJzZXQiLCJnZXQiLCJfc2V0UHJvdG90eXBlT2YiLCJidWlsZEdyb3VwcyIsInJlZHVjZSIsIl9pbmhlcml0cyIsImV4ZWMiLCJncm91cHMiLCJpbmRpY2VzIiwicmVwbGFjZSIsImpvaW4iLCJhcmd1bWVudHMiLCJhcHBseSIsImJpbmQiLCJkb2N1bWVudFVpZFJlZ2V4IiwiZG9jdW1lbnRUeXBlIiwiY2hhbWJyZSIsInJlcHVibGlxdWUiLCJsZWdpc2xhdHVyZSIsImV0YXQiLCJudW1lcm8iLCJkb2N1bWVudFR5cGUyIiwiY2hhbWJyZTIiLCJyZXB1YmxpcXVlMiIsImxlZ2lzbGF0dXJlMiIsIm51bWVybzIiLCJkb3NzaWVyVWlkUmVnZXgiLCJyZXVuaW9uVWlkUmVnZXgiLCJzY3J1dGluVWlkUmVnZXgiLCJjb21wdGVSZW5kdVVpZFJlZ2V4IiwicXVlc3Rpb25VaWRSZWdleCIsIml0ZXJMb2FkQXNzZW1ibGVlSXRlbXMiLCJkYXRhRGlyIiwiZGF0YXNldHMiLCJjb252ZXJ0VG9JdGVtIiwic3ViZm9sZGVyTmFtZSIsImZpbGVFeHRlbnNpb24iLCJ1bmRlZmluZWQiLCJfcmVmIiwiX3JlZiRub1ZhbGlkYXRpb24iLCJub1ZhbGlkYXRpb24iLCJfcmVmJGxvZyIsImxvZyIsIl9jYWxsZWUiLCJpdGVtVWlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJkYXRhc2V0IiwiZmlsZUV4dGVuc2lvblJlZ2V4IiwiZGF0YXNldERpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJpdGVtU3BsaXRQYXRoIiwiaXRlbUZpbGVuYW1lIiwiaXRlbUZpbGVQYXRoIiwiaXRlbUpzb24iLCJpdGVtIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIlNldCIsImlnbm9yZUZvcldlYiIsIkxlZ2lzbGF0dXJlIiwiQWxsIiwiY29uY2F0IiwicGF0aCIsImZpbGVuYW1lIiwid2Fsa0RpciIsImVuZHNXaXRoIiwiY29uc29sZSIsImZzIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJKU09OIiwicGFyc2UiLCJoYXMiLCJ1aWQiLCJhZGQiLCJkYXRhc2V0TGVnaXNsYXR1cmUiLCJ0MCIsInQxIiwiaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzIiwib3B0aW9ucyIsIl9jYWxsZWUyIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9zdGVwMyR2YWx1ZSIsImFjdGV1ciIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImFjdGV1cnNFdE9yZ2FuZXMiLCJBY3RldXJzRXRPcmdhbmVzQ29udmVydCIsInRvQWN0ZXVyIiwiaXRlckxvYWRBc3NlbWJsZWVPcmdhbmVzIiwiX2NhbGxlZTMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiX3N0ZXA0JHZhbHVlIiwib3JnYW5lIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwidG9PcmdhbmUiLCJpdGVyTG9hZEFzc2VtYmxlZUFtZW5kZW1lbnRzIiwiX2NhbGxlZTQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiX3N0ZXA1JHZhbHVlIiwiYW1lbmRlbWVudCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImFtZW5kZW1lbnRzIiwiQW1lbmRlbWVudHNDb252ZXJ0IiwidG9BbWVuZGVtZW50IiwiaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMiLCJfY2FsbGVlNSIsIl9pdGVyYXRvcjYiLCJfc3RlcDYiLCJfc3RlcDYkdmFsdWUiLCJkb2N1bWVudCIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfY2FsbGVlNiIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfc3RlcDckdmFsdWUiLCJkb3NzaWVyUGFybGVtZW50YWlyZSIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsInRvRG9zc2llclBhcmxlbWVudGFpcmUiLCJpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zIiwiX2NhbGxlZTciLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiX3N0ZXA4JHZhbHVlIiwicmV1bmlvbiIsIl9jYWxsZWU3JCIsIl9jb250ZXh0NyIsImFnZW5kYXMiLCJBZ2VuZGFzQ29udmVydCIsInRvUmV1bmlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMiLCJfY2FsbGVlOCIsIl9pdGVyYXRvcjkiLCJfc3RlcDkiLCJfc3RlcDkkdmFsdWUiLCJzY3J1dGluIiwiX2NhbGxlZTgkIiwiX2NvbnRleHQ4Iiwic2NydXRpbnMiLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyIsIl9jYWxsZWU5IiwiX2l0ZXJhdG9yMTAiLCJfc3RlcDEwIiwiX3N0ZXAxMCR2YWx1ZSIsInF1ZXN0aW9uIiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwicXVlc3Rpb25zIiwiUXVlc3Rpb25zQ29udmVydCIsInRvUXVlc3Rpb24iLCJpdGVyTG9hZEFzc2VtYmxlZUNvbXB0ZXNSZW5kdXMiLCJfY2FsbGVlMTAiLCJfaXRlcmF0b3IxMSIsIl9zdGVwMTEiLCJfc3RlcDExJHZhbHVlIiwiY29tcHRlUmVuZHUiLCJfY2FsbGVlMTAkIiwiX2NvbnRleHQxMCIsImNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiQ29tcHRlc1JlbmR1c0NvbnZlcnQiLCJ0b0NvbXB0ZVJlbmR1IiwibG9hZEFzc2VtYmxlZURhdGEiLCJlbmFibGVkRGF0YXNldHMiLCJfcmVmMiIsIl9yZWYyJGxvZyIsImFjdGV1ckJ5VWlkIiwib3JnYW5lQnlVaWQiLCJFbmFibGVkRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwiX2l0ZXJhdG9yMTMiLCJfc3RlcDEzIiwiYWN0ZXVyU3BsaXRQYXRoIiwiYWN0ZXVyRmlsZW5hbWUiLCJhY3RldXJGaWxlUGF0aCIsImFjdGV1ckpzb24iLCJlcnIiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJvcmdhbmVTcGxpdFBhdGgiLCJvcmdhbmVGaWxlbmFtZSIsIm9yZ2FuZUZpbGVQYXRoIiwib3JnYW5lSnNvbiIsInJldW5pb25CeVVpZCIsInJldW5pb25zQnlEYXkiLCJyZXVuaW9uc0J5RG9zc2llclVpZCIsIkFnZW5kYXMiLCJfaXRlcmF0b3IxNSIsIl9zdGVwMTUiLCJfaXRlcmF0b3IxNiIsIl9zdGVwMTYiLCJyZXVuaW9uU3BsaXRQYXRoIiwicmV1bmlvbkZpbGVuYW1lIiwicmV1bmlvbkZpbGVQYXRoIiwicmV1bmlvbkpzb24iLCJkYXkiLCJ0aW1lc3RhbXBEZWJ1dCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyZXVuaW9uc0F0RGF5Iiwib2RqIiwiX2l0ZXJhdG9yMTciLCJwb2ludHNPZGoiLCJfc3RlcDE3IiwicG9pbnRPZGoiLCJfaXRlcmF0b3IxOCIsImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIiwiX3N0ZXAxOCIsImRvc3NpZXJMZWdpc2xhdGlmUmVmIiwicmV1bmlvbnNBdERvc3NpZXJVaWQiLCJhbWVuZGVtZW50QnlVaWQiLCJBbWVuZGVtZW50cyIsIl9pdGVyYXRvcjE5IiwiX3N0ZXAxOSIsIl9pdGVyYXRvcjIwIiwiX3N0ZXAyMCIsImFtZW5kZW1lbnRTcGxpdFBhdGgiLCJhbWVuZGVtZW50RmlsZW5hbWUiLCJhbWVuZGVtZW50RmlsZVBhdGgiLCJhbWVuZGVtZW50SnNvbiIsImRvY3VtZW50QnlVaWQiLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjIxIiwiX3N0ZXAyMSIsIl9pdGVyYXRvcjIyIiwiX3N0ZXAyMiIsImRvY3VtZW50U3BsaXRQYXRoIiwiZG9jdW1lbnRGaWxlbmFtZSIsImRvY3VtZW50RmlsZVBhdGgiLCJkb2N1bWVudEpzb24iLCJfaXRlcmF0b3IyMyIsIl9zdGVwMjMiLCJkb3NzaWVyU3BsaXRQYXRoIiwiZG9zc2llckZpbGVuYW1lIiwiZG9zc2llckZpbGVQYXRoIiwiZG9zc2llckpzb24iLCJkb3NzaWVyIiwidGl0cmVEb3NzaWVyIiwic2VuYXRDaGVtaW4iLCJ0aXRyZUNoZW1pbiIsInBob3RvQnlVaWQiLCJQaG90b3MiLCJqc29uRmlsZVBhdGgiLCJEaXhTZXB0IiwiZXhpc3RzU3luYyIsImpzb24iLCJhc3NpZ24iLCJzY3J1dGluQnlVaWQiLCJTY3J1dGlucyIsIl9pdGVyYXRvcjI0IiwiX3N0ZXAyNCIsIl9pdGVyYXRvcjI1IiwiX3N0ZXAyNSIsInNjcnV0aW5TcGxpdFBhdGgiLCJzY3J1dGluRmlsZW5hbWUiLCJzY3J1dGluRmlsZVBhdGgiLCJzY3J1dGluSnNvbiIsInF1ZXN0aW9uQnlVaWQiLCJRdWVzdGlvbnMiLCJfaXRlcmF0b3IyNiIsIl9zdGVwMjYiLCJfaXRlcmF0b3IyNyIsIl9zdGVwMjciLCJxdWVzdGlvblNwbGl0UGF0aCIsInF1ZXN0aW9uRmlsZW5hbWUiLCJxdWVzdGlvbkZpbGVQYXRoIiwicXVlc3Rpb25Kc29uIiwiY29tcHRlUmVuZHVCeVVpZCIsIkNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiX2l0ZXJhdG9yMjgiLCJfc3RlcDI4IiwiX2l0ZXJhdG9yMjkiLCJfc3RlcDI5IiwiY29tcHRlUmVuZHVQYXRoIiwiY29tcHRlUmVuZHVGaWxlbmFtZSIsImNvbXB0ZVJlbmR1RmlsZVBhdGgiLCJjb21wdGVSZW5kdUpzb24iLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsIl9yZWYzIiwiX3JlZjMkbG9nIiwiX2l0ZXJhdG9yMzAiLCJfc3RlcDMwIiwidG9BY3RldXJzRXRPcmdhbmVzIiwiX2l0ZXJhdG9yMzEiLCJhY3RldXJzIiwiX3N0ZXAzMSIsIl9pdGVyYXRvcjMyIiwib3JnYW5lcyIsIl9zdGVwMzIiLCJfaXRlcmF0b3IzMyIsIl9zdGVwMzMiLCJ0b0FnZW5kYXMiLCJfaXRlcmF0b3IzNCIsInJldW5pb25zIiwiX3N0ZXAzNCIsIl9pdGVyYXRvcjM1IiwiX3N0ZXAzNSIsIl9pdGVyYXRvcjM2IiwiX3N0ZXAzNiIsIl9pdGVyYXRvcjM3IiwiX3N0ZXAzNyIsInRvQW1lbmRlbWVudHMiLCJfaXRlcmF0b3IzOCIsInRleHRlc0xlZ2lzbGF0aWZzIiwiX3N0ZXAzOCIsInRleHRlTGVnaXNsYXRpZiIsIl9pdGVyYXRvcjM5IiwiX3N0ZXAzOSIsIl9pdGVyYXRvcjQwIiwiX3N0ZXA0MCIsInRvRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjQxIiwiX3N0ZXA0MSIsIl9pdGVyYXRvcjQyIiwiZG9zc2llcnNQYXJsZW1lbnRhaXJlcyIsIl9zdGVwNDIiLCJfaXRlcmF0b3I0MyIsIl9zdGVwNDMiLCJ0b1NjcnV0aW5zIiwiX2l0ZXJhdG9yNDQiLCJfc3RlcDQ0IiwiX2l0ZXJhdG9yNDUiLCJfc3RlcDQ1IiwidG9RdWVzdGlvbnMiLCJfaXRlcmF0b3I0NiIsIl9zdGVwNDYiLCJfaXRlcmF0b3I0NyIsIl9zdGVwNDciLCJjb21wdGVzUmVuZHVzIiwidG9Db21wdGVzUmVuZHVzIiwiX2l0ZXJhdG9yNDgiLCJfc3RlcDQ4IiwibG9hZEFzc2VtYmxlZURvY3VtZW50RmlsZSIsImZvcm1hdHMiLCJkb2N1bWVudHNEaXIiLCJkb2N1bWVudERpciIsInBhdGhGcm9tRG9jdW1lbnRVaWQiLCJpbmRleFBhdGgiLCJwYXRoRXhpc3RzU3luYyIsImluZGV4IiwicmVhZEpzb25TeW5jIiwiX2l0ZXJhdG9yNDkiLCJfc3RlcDQ5IiwiX2luZGV4JGZvcm1hdCIsImZvcm1hdCIsIl9pdGVyYXRvcjUwIiwiX3N0ZXA1MCIsIl9zdGVwNTAkdmFsdWUiLCJ1cmwiLCJsb2FkQXNzZW1ibGVlUGhvdG9zRGVwdXRlcyIsIl9yZWY0IiwiX3JlZjQkbG9nIiwibG9hZEFzc2VtYmxlZVBob3Rvc1NlbmF0ZXVycyIsIl9yZWY1IiwiX3JlZjUkbG9nIiwiX2dyb3VwcyRkb2N1bWVudFR5cGUiLCJfZ3JvdXBzJGNoYW1icmUiLCJfZ3JvdXBzJHJlcHVibGlxdWUiLCJfZ3JvdXBzJGxlZ2lzbGF0dXJlIiwiX2dyb3VwcyRudW1lcm8iLCJtYXRjaCIsImFzc2VydCIsIm5vdFN0cmljdEVxdWFsIiwiY2hhbWJyZURpciIsInJlcHVibGlxdWVEaXIiLCJsZWdpc2xhdHVyZURpciIsImVuc3VyZURpclN5bmMiLCJldGF0RGlyIiwic3Vic3RyaW5nIiwibnVtZXJvTWlsbGllcnNEaXIiLCJwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkIiwiZG9zc2llcnNEaXIiLCJwYXRoRnJvbVVpZCIsInBhdGhGcm9tUmV1bmlvblVpZCIsInJldW5pb25zRGlyIiwic2Vzc2lvbkRpciIsImlkRGlyIiwibnVtZXJvTWlsbGlvbnNEaXIiLCJwYXRoRnJvbVNjcnV0aW5VaWQiLCJzY3J1dGluc0RpciIsInBhdGhGcm9tUXVlc3Rpb25VaWQiLCJwYXRoRnJvbUNvbXB0ZVJlbmR1VWlkIiwiZGF0YVJlZ2V4cCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2FkZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vLyBMb2FkIGRhdGEgZnJvbSBmaWxlc1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuL2RhdGFzZXRzXCJcbmltcG9ydCB7IGRhdGFzZXRzLCBFbmFibGVkRGF0YXNldHMsIERhdGFzZXQgfSBmcm9tIFwiLi9kYXRhc2V0c1wiXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50RmlsZXNJbmRleCB9IGZyb20gXCIuL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmV4cG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQge1xuICBBY3RldXIsXG4gIENvbnZlcnQgYXMgQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQsXG4gIE9yZ2FuZSxcbiAgUGhvdG8sXG59IGZyb20gXCIuL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFnZW5kYXNDb252ZXJ0LCBSZXVuaW9uIH0gZnJvbSBcIi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50LCBDb252ZXJ0IGFzIEFtZW5kZW1lbnRzQ29udmVydCB9IGZyb20gXCIuL3R5cGVzL2FtZW5kZW1lbnRzXCJcbmltcG9ydCB7XG4gIENvbnZlcnQgYXMgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQsXG4gIERvY3VtZW50LFxuICBEb3NzaWVyUGFybGVtZW50YWlyZSxcbn0gZnJvbSBcIi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgTGVnaXNsYXR1cmUgfSBmcm9tIFwiLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBTY3J1dGluc0NvbnZlcnQsIFNjcnV0aW4gfSBmcm9tIFwiLi90eXBlcy9zY3J1dGluc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFF1ZXN0aW9uc0NvbnZlcnQsIFF1ZXN0aW9uIH0gZnJvbSBcIi4vdHlwZXMvcXVlc3Rpb25zXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQ29tcHRlc1JlbmR1c0NvbnZlcnQsIENvbXB0ZVJlbmR1IH0gZnJvbSBcIi4vdHlwZXMvZGViYXRzXCJcbmltcG9ydCB7IERvY3VtZW50VXJsRm9ybWF0IH0gZnJvbSBcIi4vdXJsc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YSB7XG4gIHJlYWRvbmx5IGFjdGV1ckJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFjdGV1ciB9XG4gIHJlYWRvbmx5IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH1cbiAgcmVhZG9ubHkgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH1cbiAgcmVhZG9ubHkgb3JnYW5lQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogT3JnYW5lIH1cbiAgcmVhZG9ubHkgcGhvdG9CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9XG4gIHJlYWRvbmx5IHJldW5pb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBSZXVuaW9uIH1cbiAgcmVhZG9ubHkgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfVxuICByZWFkb25seSByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH1cbiAgcmVhZG9ubHkgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfVxuICByZWFkb25seSBxdWVzdGlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFF1ZXN0aW9uIH1cbiAgcmVhZG9ubHkgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9XG59XG5cbmNvbnN0IGRvY3VtZW50VWlkUmVnZXggPVxuICAvXigoPzxkb2N1bWVudFR5cGU+QUNJTnxBTENOfEFWQ0V8QVZJU3xERUNMfEVUREl8TEVUVHxNRVNTfE1JT058UElPTnxQTlJFfFBSSkx8UkFQUHxSSU5GfFJJT04pKD88Y2hhbWJyZT5BTnxDR3xTTikoPzxyZXB1YmxpcXVlPlJcXGQrKVtMU10oPzxsZWdpc2xhdHVyZT5cXGQrKSg/PGV0YXQ+QnxCVEF8QlRDfFRBUCkoPzxudW1lcm8+XFxkKykoLS4qKT8pfCgoPzxkb2N1bWVudFR5cGUyPk1JT04pKD88Y2hhbWJyZTI+QU58U04pKD88cmVwdWJsaXF1ZTI+UlxcZCspW0xTXSg/PGxlZ2lzbGF0dXJlMj5cXGQrKS1OKD88bnVtZXJvMj5cXGQrKSkkL1xuY29uc3QgZG9zc2llclVpZFJlZ2V4ID0gL15ETChSXFxkKykoTFxcZCspTihcXGQrKSQvXG5jb25zdCByZXVuaW9uVWlkUmVnZXggPVxuICAvXlJVKEFOfENHfFNOKShSXFxkKykoTFxcZCspKFtBU11cXGR7NH0pKElEQ3xJREZMP3xJRFMpKFxcZCspJC9cbmNvbnN0IHNjcnV0aW5VaWRSZWdleCA9IC9eVlQoQU58Q0cpKFJcXGQrKShMXFxkKylWKFxcZCspJC9cbmNvbnN0IGNvbXB0ZVJlbmR1VWlkUmVnZXg6IFJlZ0V4cCA9XG4gIC9eQ1JTKEFOfENHKShSXFxkKykoTFxcZCspKFNcXGQrKShPfEV8RCkoXFxkKykoTlxcZCspJC9cbmNvbnN0IHF1ZXN0aW9uVWlkUmVnZXg6IFJlZ0V4cCA9IC9eUUFOKFJcXGQrKShMXFxkKylRKEV8R3xPU0QpKFxcZCspJC9cblxudHlwZSBJdGVtQ29udmVydGVyPFQ+ID0gKGpzb246IHN0cmluZykgPT4gVFxuXG5mdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVJdGVtczxUIGV4dGVuZHMgeyB1aWQ6IHN0cmluZyB9PihcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIGRhdGFzZXRzOiBEYXRhc2V0W10sXG4gIGNvbnZlcnRUb0l0ZW06IEl0ZW1Db252ZXJ0ZXI8VD4sXG4gIHN1YmZvbGRlck5hbWU6IHN0cmluZ1tdLFxuICBmaWxlRXh0ZW5zaW9uOiBzdHJpbmcgPSBcImpzb25cIixcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPHsgaXRlbTogVDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LCB2b2lkLCB1bmtub3duPiB7XG4gIGNvbnN0IGl0ZW1VaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGxldCBmaWxlRXh0ZW5zaW9uUmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcLiR7ZmlsZUV4dGVuc2lvbn0kYClcbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZShmaWxlRXh0ZW5zaW9uUmVnZXgsIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBpdGVtU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgc3ViZm9sZGVyTmFtZSkpIHtcbiAgICAgIGNvbnN0IGl0ZW1GaWxlbmFtZSA9IGl0ZW1TcGxpdFBhdGhbaXRlbVNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFpdGVtRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgaXRlbUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLml0ZW1TcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7aXRlbUZpbGVQYXRofeKApmApXG4gICAgICB9XG5cbiAgICAgIGxldCBpdGVtSnNvbjogYW55ID0gZnMucmVhZEZpbGVTeW5jKGl0ZW1GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGxldCBpdGVtOiBUID0gbm9WYWxpZGF0aW9uXG4gICAgICAgID8gSlNPTi5wYXJzZShpdGVtSnNvbilcbiAgICAgICAgOiBjb252ZXJ0VG9JdGVtKGl0ZW1Kc29uKVxuXG4gICAgICBpZiAoaXRlbVVpZC5oYXMoaXRlbS51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpdGVtVWlkLmFkZChpdGVtLnVpZClcbiAgICAgIHlpZWxkIHsgaXRlbTogaXRlbSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cblxuICAgICAgaXRlbUpzb24gPSBudWxsXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGFjdGV1cjogQWN0ZXVyOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBhY3RldXIsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8QWN0ZXVyPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXIsXG4gICAgW1wiYWN0ZXVyc1wiXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBhY3RldXIsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZU9yZ2FuZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgb3JnYW5lOiBPcmdhbmU7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IG9yZ2FuZSxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxPcmdhbmU+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcyxcbiAgICBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZSxcbiAgICBbXCJvcmdhbmVzXCJdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IG9yZ2FuZSwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQW1lbmRlbWVudHMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgYW1lbmRlbWVudDogQW1lbmRlbWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogYW1lbmRlbWVudCxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxBbWVuZGVtZW50PihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmFtZW5kZW1lbnRzLFxuICAgIEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQsXG4gICAgW10sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgYW1lbmRlbWVudCwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGRvY3VtZW50OiBEb2N1bWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogZG9jdW1lbnQsXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8RG9jdW1lbnQ+KFxuICAgIGRhdGFEaXIsXG4gICAgbGVnaXNsYXR1cmUsXG4gICAgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcyxcbiAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50LFxuICAgIFtcImRvY3VtZW50c1wiXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBkb2N1bWVudCwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9zc2llcnNQYXJsZW1lbnRhaXJlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAge1xuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IGRvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPERvc3NpZXJQYXJsZW1lbnRhaXJlPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMsXG4gICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICBbXCJkb3NzaWVyc1wiXSxcbiAgICBcImpzb25cIixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgeWllbGQgeyBkb3NzaWVyUGFybGVtZW50YWlyZSwgZGF0YXNldExlZ2lzbGF0dXJlIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlUmV1bmlvbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgcmV1bmlvbjogUmV1bmlvbjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgZm9yIChjb25zdCB7XG4gICAgaXRlbTogcmV1bmlvbixcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxSZXVuaW9uPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLmFnZW5kYXMsXG4gICAgQWdlbmRhc0NvbnZlcnQudG9SZXVuaW9uLFxuICAgIFtdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IHJldW5pb24sIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVNjcnV0aW5zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgb3B0aW9ucyA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHNjcnV0aW46IFNjcnV0aW47IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IHNjcnV0aW4sXG4gICAgZGF0YXNldExlZ2lzbGF0dXJlLFxuICB9IG9mIGl0ZXJMb2FkQXNzZW1ibGVlSXRlbXM8U2NydXRpbj4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5zY3J1dGlucyxcbiAgICBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluLFxuICAgIFtdLFxuICAgIFwianNvblwiLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICB5aWVsZCB7IHNjcnV0aW4sIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIG9wdGlvbnMgPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBxdWVzdGlvbjogUXVlc3Rpb247IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGZvciAoY29uc3Qge1xuICAgIGl0ZW06IHF1ZXN0aW9uLFxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZSxcbiAgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUl0ZW1zPFF1ZXN0aW9uPihcbiAgICBkYXRhRGlyLFxuICAgIGxlZ2lzbGF0dXJlLFxuICAgIGRhdGFzZXRzLnF1ZXN0aW9ucyxcbiAgICBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb24sXG4gICAgW10sXG4gICAgXCJqc29uXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgcXVlc3Rpb24sIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUNvbXB0ZXNSZW5kdXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICBvcHRpb25zID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgY29tcHRlUmVuZHU6IENvbXB0ZVJlbmR1OyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBmb3IgKGNvbnN0IHtcbiAgICBpdGVtOiBjb21wdGVSZW5kdSxcbiAgICBkYXRhc2V0TGVnaXNsYXR1cmUsXG4gIH0gb2YgaXRlckxvYWRBc3NlbWJsZWVJdGVtczxDb21wdGVSZW5kdT4oXG4gICAgZGF0YURpcixcbiAgICBsZWdpc2xhdHVyZSxcbiAgICBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcyxcbiAgICBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZVJlbmR1LFxuICAgIFtdLFxuICAgIFwieG1sXCIsXG4gICAgb3B0aW9ucyxcbiAgKSkge1xuICAgIHlpZWxkIHsgY29tcHRlUmVuZHUsIGRhdGFzZXRMZWdpc2xhdHVyZSB9XG4gIH1cbn1cblxuLy8vIExvYWQgZGF0YSBmcm9tIHNwbGl0IGZpbGVzLlxuLy8vIERlcHJlY2F0ZWQ6IFVzZSBpdGVyTG9hZC4uLiBpdGVyYXRvcnMgaW5zdGVhZC5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YShcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBhY3RldXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJhY3RldXJzXCJdKSkge1xuICAgICAgICBjb25zdCBhY3RldXJGaWxlbmFtZSA9IGFjdGV1clNwbGl0UGF0aFthY3RldXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFhY3RldXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RldXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hY3RldXJTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FjdGV1ckZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0ZXVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFjdGV1ckZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBhY3RldXIgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cihhY3RldXJKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAoYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID0gYWN0ZXVyXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJvcmdhbmVzXCJdKSkge1xuICAgICAgICBjb25zdCBvcmdhbmVGaWxlbmFtZSA9IG9yZ2FuZVNwbGl0UGF0aFtvcmdhbmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmdhbmVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5vcmdhbmVTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke29yZ2FuZUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JnYW5lSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKG9yZ2FuZUZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBvcmdhbmUgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZShvcmdhbmVKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcIm9yZ2FuZVwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAob3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID0gb3JnYW5lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG4gICAgICBmb3IgKGNvbnN0IHJldW5pb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCByZXVuaW9uRmlsZW5hbWUgPSByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnJldW5pb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3JldW5pb25GaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldW5pb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocmV1bmlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCByZXVuaW9uID0gQWdlbmRhc0NvbnZlcnQudG9SZXVuaW9uKHJldW5pb25Kc29uKVxuICAgICAgICBpZiAocmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9IHJldW5pb25cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRheSA9IHJldW5pb24udGltZXN0YW1wRGVidXQudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICAgICAgbGV0IHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV1cbiAgICAgICAgaWYgKHJldW5pb25zQXREYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHJldW5pb25zQXREYXkucHVzaChyZXVuaW9uKVxuXG4gICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgIGlmIChvZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcG9pbnRPZGogb2Ygb2RqLnBvaW50c09kaiB8fCBbXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyTGVnaXNsYXRpZlJlZiBvZiBwb2ludE9kai5kb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyB8fFxuICAgICAgICAgICAgICBbXSkge1xuICAgICAgICAgICAgICBsZXQgcmV1bmlvbnNBdERvc3NpZXJVaWQgPVxuICAgICAgICAgICAgICAgIHJldW5pb25zQnlEb3NzaWVyVWlkW2Rvc3NpZXJMZWdpc2xhdGlmUmVmXVxuICAgICAgICAgICAgICBpZiAocmV1bmlvbnNBdERvc3NpZXJVaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkID0gcmV1bmlvbnNCeURvc3NpZXJVaWRbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyTGVnaXNsYXRpZlJlZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkLnB1c2gocmV1bmlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYW1lbmRlbWVudFNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhbWVuZGVtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KGFtZW5kZW1lbnRKc29uKVxuICAgICAgICBpZiAoYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9IGFtZW5kZW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRGaWxlbmFtZSA9IGRvY3VtZW50U3BsaXRQYXRoW2RvY3VtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9jdW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmRvY3VtZW50U3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb2N1bWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50KGRvY3VtZW50SnNvbilcbiAgICAgICAgaWYgKGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID0gZG9jdW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJkb3NzaWVyc1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9zc2llckZpbGVuYW1lID0gZG9zc2llclNwbGl0UGF0aFtkb3NzaWVyU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9zc2llckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvc3NpZXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5kb3NzaWVyU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb3NzaWVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGRvc3NpZXJGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9zc2llciA9XG4gICAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZShkb3NzaWVySnNvbilcbiAgICAgICAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llci50aXRyZURvc3NpZXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci5zZW5hdENoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIudGl0cmVDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLkRpeFNlcHQgOiBsZWdpc2xhdHVyZVxuICAgICAgICB9YCxcbiAgICAgICAgXCJkZXB1dGVzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IHNjcnV0aW5TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBzY3J1dGluRmlsZW5hbWUgPSBzY3J1dGluU3BsaXRQYXRoW3NjcnV0aW5TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFzY3J1dGluRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnNjcnV0aW5TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3NjcnV0aW5GaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcnV0aW5Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoc2NydXRpbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBzY3J1dGluID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbihzY3J1dGluSnNvbilcbiAgICAgICAgaWYgKHNjcnV0aW5CeVVpZFtzY3J1dGluLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNjcnV0aW5CeVVpZFtzY3J1dGluLnVpZF0gPSBzY3J1dGluXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVzdGlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFF1ZXN0aW9uIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlF1ZXN0aW9ucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5xdWVzdGlvbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBxdWVzdGlvblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZW5hbWUgPSBxdWVzdGlvblNwbGl0UGF0aFtxdWVzdGlvblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIXF1ZXN0aW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlc3Rpb25GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5xdWVzdGlvblNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7cXVlc3Rpb25GaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHF1ZXN0aW9uRmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uKHF1ZXN0aW9uSnNvbilcbiAgICAgICAgaWYgKHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID0gcXVlc3Rpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbXB0ZVJlbmR1QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQ29tcHRlUmVuZHUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQ29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBjb21wdGVSZW5kdVBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBjb21wdGVSZW5kdUZpbGVuYW1lID0gY29tcHRlUmVuZHVQYXRoW2NvbXB0ZVJlbmR1UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWNvbXB0ZVJlbmR1RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5jb21wdGVSZW5kdVBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2NvbXB0ZVJlbmR1RmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wdGVSZW5kdUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhjb21wdGVSZW5kdUZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBjb21wdGVSZW5kdSA9IENvbXB0ZXNSZW5kdXNDb252ZXJ0LnRvQ29tcHRlUmVuZHUoY29tcHRlUmVuZHVKc29uKVxuICAgICAgICBpZiAoY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPSBjb21wdGVSZW5kdVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhY3RldXJCeVVpZCxcbiAgICBhbWVuZGVtZW50QnlVaWQsXG4gICAgZG9jdW1lbnRCeVVpZCxcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQsXG4gICAgb3JnYW5lQnlVaWQsXG4gICAgcGhvdG9CeVVpZCxcbiAgICByZXVuaW9uQnlVaWQsXG4gICAgcmV1bmlvbnNCeURheSxcbiAgICByZXVuaW9uc0J5RG9zc2llclVpZCxcbiAgICBzY3J1dGluQnlVaWQsXG4gICAgcXVlc3Rpb25CeVVpZCxcbiAgICBjb21wdGVSZW5kdUJ5VWlkLFxuICB9XG59XG5cbi8vLyBMb2FkIGRhdGEgZnJvbSBiaWcgbW9ub2x5dGljIGZpbGVzLlxuLy8vIERlcHJlY2F0ZWQ6IEFzc2VtYmzDqWUgbmF0aW9uYWxlIG9wZW4gZGF0YSBubyBtb3JlIHVzZXMgbW9ub2x5dGljIGZpbGVzLlxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVEYXRhRnJvbUJpZ0ZpbGVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGVuYWJsZWREYXRhc2V0czogRW5hYmxlZERhdGFzZXRzLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogRGF0YSB7XG4gIGNvbnN0IGFjdGV1ckJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFjdGV1ciB9ID0ge31cbiAgY29uc3Qgb3JnYW5lQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogT3JnYW5lIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFjdGV1cnNFdE9yZ2FuZXMgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cnNFdE9yZ2FuZXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgYWN0ZXVyIG9mIGFjdGV1cnNFdE9yZ2FuZXMuYWN0ZXVycykge1xuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAoYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID0gYWN0ZXVyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qgb3JnYW5lIG9mIGFjdGV1cnNFdE9yZ2FuZXMub3JnYW5lcykge1xuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcIm9yZ2FuZVwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAob3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID0gb3JnYW5lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYWdlbmRhcyA9IEFnZW5kYXNDb252ZXJ0LnRvQWdlbmRhcyhqc29uKVxuICAgICAgZm9yIChjb25zdCByZXVuaW9uIG9mIGFnZW5kYXMucmV1bmlvbnMpIHtcbiAgICAgICAgaWYgKHJldW5pb25CeVVpZFtyZXVuaW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25CeVVpZFtyZXVuaW9uLnVpZF0gPSByZXVuaW9uXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkYXkgPSByZXVuaW9uLnRpbWVzdGFtcERlYnV0LnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdXG4gICAgICAgIGxldCByZXVuaW9uc0F0RGF5ID0gcmV1bmlvbnNCeURheVtkYXldXG4gICAgICAgIGlmIChyZXVuaW9uc0F0RGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uc0F0RGF5ID0gcmV1bmlvbnNCeURheVtkYXldID0gW11cbiAgICAgICAgfVxuICAgICAgICByZXVuaW9uc0F0RGF5LnB1c2gocmV1bmlvbilcblxuICAgICAgICBjb25zdCBvZGogPSByZXVuaW9uLm9kalxuICAgICAgICBpZiAob2RqICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHBvaW50T2RqIG9mIG9kai5wb2ludHNPZGogfHwgW10pIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZG9zc2llckxlZ2lzbGF0aWZSZWYgb2YgcG9pbnRPZGouZG9zc2llcnNMZWdpc2xhdGlmc1JlZnMgfHxcbiAgICAgICAgICAgICAgW10pIHtcbiAgICAgICAgICAgICAgbGV0IHJldW5pb25zQXREb3NzaWVyVWlkID1cbiAgICAgICAgICAgICAgICByZXVuaW9uc0J5RG9zc2llclVpZFtkb3NzaWVyTGVnaXNsYXRpZlJlZl1cbiAgICAgICAgICAgICAgaWYgKHJldW5pb25zQXREb3NzaWVyVWlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXVuaW9uc0F0RG9zc2llclVpZCA9IHJldW5pb25zQnlEb3NzaWVyVWlkW1xuICAgICAgICAgICAgICAgICAgZG9zc2llckxlZ2lzbGF0aWZSZWZcbiAgICAgICAgICAgICAgICBdID0gW11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXVuaW9uc0F0RG9zc2llclVpZC5wdXNoKHJldW5pb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYW1lbmRlbWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFtZW5kZW1lbnQgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhbWVuZGVtZW50cyA9IEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnRzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IHRleHRlTGVnaXNsYXRpZiBvZiBhbWVuZGVtZW50cy50ZXh0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnQgb2YgdGV4dGVMZWdpc2xhdGlmLmFtZW5kZW1lbnRzKSB7XG4gICAgICAgICAgaWYgKGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9IGFtZW5kZW1lbnRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBkb2N1bWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvY3VtZW50IH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuRG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5kb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgZG9zc2llcnNMZWdpc2xhdGlmcyA9XG4gICAgICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llcnNMZWdpc2xhdGlmcyhqc29uKVxuICAgICAgZm9yIChjb25zdCBkb2N1bWVudCBvZiBkb3NzaWVyc0xlZ2lzbGF0aWZzLnRleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgIGlmIChkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9IGRvY3VtZW50XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgZG9zc2llciBvZiBkb3NzaWVyc0xlZ2lzbGF0aWZzLmRvc3NpZXJzUGFybGVtZW50YWlyZXMpIHtcbiAgICAgICAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llci50aXRyZURvc3NpZXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci5zZW5hdENoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIudGl0cmVDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcGhvdG9CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5QaG90b3MpIHtcbiAgICBjb25zdCBwaG90b0J5VWlkID0ge31cblxuICAgIHtcbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBgcGhvdG9zX2RlcHV0ZXNfJHtcbiAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgTGVnaXNsYXR1cmUuQWxsLlxuICAgICAgICAgIGxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgPyBMZWdpc2xhdHVyZS5EaXhTZXB0IDogbGVnaXNsYXR1cmVcbiAgICAgICAgfWAsXG4gICAgICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgICAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBzY3J1dGlucyA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW5zKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IHNjcnV0aW4gb2Ygc2NydXRpbnMuc2NydXRpbnMpIHtcbiAgICAgICAgaWYgKHNjcnV0aW5CeVVpZFtzY3J1dGluLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNjcnV0aW5CeVVpZFtzY3J1dGluLnVpZF0gPSBzY3J1dGluXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBxdWVzdGlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFF1ZXN0aW9uIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlF1ZXN0aW9ucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5xdWVzdGlvbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBxdWVzdGlvbnMgPSBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb25zKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9ucy5xdWVzdGlvbnMpIHtcbiAgICAgICAgaWYgKHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID0gcXVlc3Rpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbXB0ZVJlbmR1QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQ29tcHRlUmVuZHUgfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQ29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBjb21wdGVzUmVuZHVzID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVzUmVuZHVzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGNvbXB0ZVJlbmR1IG9mIGNvbXB0ZXNSZW5kdXMuY29tcHRlc1JlbmR1cykge1xuICAgICAgICBpZiAoY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPSBjb21wdGVSZW5kdVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhY3RldXJCeVVpZCxcbiAgICBhbWVuZGVtZW50QnlVaWQsXG4gICAgZG9jdW1lbnRCeVVpZCxcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQsXG4gICAgb3JnYW5lQnlVaWQsXG4gICAgcGhvdG9CeVVpZCxcbiAgICByZXVuaW9uQnlVaWQsXG4gICAgcmV1bmlvbnNCeURheSxcbiAgICByZXVuaW9uc0J5RG9zc2llclVpZCxcbiAgICBzY3J1dGluQnlVaWQsXG4gICAgcXVlc3Rpb25CeVVpZCxcbiAgICBjb21wdGVSZW5kdUJ5VWlkLFxuICB9XG59XG5cbi8qKlxuICogUmVhZCBpbmZvcyBvZiBhIGRvY3VtZW50IG9yIGEgZGl2aXNpb24gb2YgYSBkb2N1bWVudCBmcm9tIGZpbGUgc3lzdGVtXG4gKlxuICogQHBhcmFtIGRhdGFEaXJcbiAqIEBwYXJhbSB1aWQgVUlEIG9mIGEgZG9jdW1lbnQgb3IgYSBkaXZpc2lvblxuICogQHBhcmFtIGZvcm1hdHMgcmVxdWVzdGVkIGZvcm1hdHMgb2YgdGhlIGRvY3VtZW50IGluIGRlY3JlYXNpbmcgcHJlZmVyZW5jZSBvcmRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZURvY3VtZW50RmlsZShcbiAgZGF0YURpcjogc3RyaW5nLFxuICB1aWQ6IHN0cmluZyxcbiAgZm9ybWF0czogRG9jdW1lbnRVcmxGb3JtYXRbXSxcbik6XG4gIHwge1xuICAgICAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdFxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgICB1cmw6IHN0cmluZ1xuICAgIH1cbiAgfCB1bmRlZmluZWQge1xuICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgXCJEb2N1bWVudHNcIilcbiAgY29uc3QgZG9jdW1lbnREaXIgPSBwYXRoRnJvbURvY3VtZW50VWlkKGRvY3VtZW50c0RpciwgdWlkKVxuICBjb25zdCBpbmRleFBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIFwiaW5kZXguanNvblwiKVxuICBpZiAoIWZzLnBhdGhFeGlzdHNTeW5jKGluZGV4UGF0aCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbiAgY29uc3QgaW5kZXggPSBmcy5yZWFkSnNvblN5bmMoaW5kZXhQYXRoKSBhcyBEb2N1bWVudEZpbGVzSW5kZXhcbiAgZm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykge1xuICAgIGZvciAoY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gb2YgaW5kZXhbZm9ybWF0XSA/PyBbXSkge1xuICAgICAgaWYgKGZpbGVuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGZvcm1hdCwgcGF0aDogcGF0aC5qb2luKGRvY3VtZW50RGlyLCBmaWxlbmFtZSksIHVybCB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgIGxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgPyBMZWdpc2xhdHVyZS5EaXhTZXB0IDogbGVnaXNsYXR1cmVcbiAgICB9YCxcbiAgICBcImRlcHV0ZXMuanNvblwiLFxuICApXG4gIGlmIChsb2cpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICB9XG4gIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKGpzb24pIGFzIHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZVBob3Rvc1NlbmF0ZXVycyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSB7XG4gIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgXCJzZW5hdGV1cnMuanNvblwiLFxuICApXG4gIGlmIChsb2cpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICB9XG4gIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKGpzb24pIGFzIHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21Eb2N1bWVudFVpZChkb2N1bWVudHNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHVpZC5tYXRjaChkb2N1bWVudFVpZFJlZ2V4KVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIGRvY3VtZW50IFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBncm91cHMgPSBtYXRjaCEuZ3JvdXBzIGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgY29uc3QgZG9jdW1lbnRUeXBlID0gcGF0aC5qb2luKFxuICAgIGRvY3VtZW50c0RpcixcbiAgICBncm91cHMuZG9jdW1lbnRUeXBlID8/IGdyb3Vwcy5kb2N1bWVudFR5cGUyLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4oZG9jdW1lbnRUeXBlLCBncm91cHMuY2hhbWJyZSA/PyBncm91cHMuY2hhbWJyZTIpXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oXG4gICAgY2hhbWJyZURpcixcbiAgICBncm91cHMucmVwdWJsaXF1ZSA/PyBncm91cHMucmVwdWJsaXF1ZTIsXG4gIClcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4oXG4gICAgcmVwdWJsaXF1ZURpcixcbiAgICBncm91cHMubGVnaXNsYXR1cmUgPz8gZ3JvdXBzLmxlZ2lzbGF0dXJlMixcbiAgKVxuICBjb25zdCBldGF0ID0gZ3JvdXBzLmV0YXRcbiAgaWYgKGV0YXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGZzLmVuc3VyZURpclN5bmMobGVnaXNsYXR1cmVEaXIpXG4gICAgcmV0dXJuIHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgdWlkKVxuICB9XG4gIGNvbnN0IGV0YXREaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIGV0YXQpXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgKGdyb3Vwcy5udW1lcm8gPz8gZ3JvdXBzLm51bWVybzIpXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGV0YXREaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tRG9zc2llclBhcmxlbWVudGFpcmVVaWQoXG4gIGRvc3NpZXJzRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGhGcm9tVWlkKGRvc3NpZXJzRGlyLCB1aWQsIGRvc3NpZXJVaWRSZWdleClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tUmV1bmlvblVpZChyZXVuaW9uc0Rpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gcmV1bmlvblVpZFJlZ2V4LmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIHJldW5pb24gVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4ocmV1bmlvbnNEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihjaGFtYnJlRGlyLCBtYXRjaCFbMl0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVszXSlcbiAgY29uc3Qgc2Vzc2lvbkRpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgbWF0Y2ghWzRdKVxuICBjb25zdCBpZERpciA9IHBhdGguam9pbihzZXNzaW9uRGlyLCBtYXRjaCFbNV0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMDAwMFwiICsgbWF0Y2ghWzZdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDkpXG4gIGNvbnN0IG51bWVyb01pbGxpb25zRGlyID0gcGF0aC5qb2luKGlkRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihudW1lcm9NaWxsaW9uc0RpciwgbnVtZXJvLnN1YnN0cmluZygzLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21TY3J1dGluVWlkKHNjcnV0aW5zRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBzY3J1dGluVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3Igc2NydXRpbiBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgY2hhbWJyZURpciA9IHBhdGguam9pbihzY3J1dGluc0RpciwgbWF0Y2ghWzFdKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKGNoYW1icmVEaXIsIG1hdGNoIVsyXSlcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4ocmVwdWJsaXF1ZURpciwgbWF0Y2ghWzNdKVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDBcIiArIG1hdGNoIVs0XVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyaW5nKG51bWVyby5sZW5ndGggLSA2KVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgbnVtZXJvLnN1YnN0cmluZygwLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21RdWVzdGlvblVpZChkYXRhRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGhGcm9tVWlkKGRhdGFEaXIsIHVpZCwgcXVlc3Rpb25VaWRSZWdleClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tQ29tcHRlUmVuZHVVaWQoZGF0YURpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXRoRnJvbVVpZChkYXRhRGlyLCB1aWQsIGNvbXB0ZVJlbmR1VWlkUmVnZXgpXG59XG5cbi8vIEdldCBzdGFuZGFyZCBwYXRoIGZvciBvYmplY3Qgd2l0aCB1aWQgOiByZXB1YmxpcXVlID4gbGVnaXNsYXR1cmUgPiBncm91cCBvYmplY3RzIGJ5IHRob3VzYW5kc1xuZnVuY3Rpb24gcGF0aEZyb21VaWQoZGF0YURpcjogc3RyaW5nLCB1aWQ6IHN0cmluZywgZGF0YVJlZ2V4cDogUmVnRXhwKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBkYXRhUmVnZXhwLmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIG9iamVjdCB3aXRoIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4ocmVwdWJsaXF1ZURpciwgbWF0Y2ghWzJdKVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDBcIiArIG1hdGNoIVszXVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyaW5nKG51bWVyby5sZW5ndGggLSA2KVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgbnVtZXJvLnN1YnN0cmluZygwLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdB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Q0FBQzRULGFBQWEsQ0FBQ0csaUJBQWlCLENBQUM7RUFDbkMsT0FBT3BVLGdCQUFJLENBQUN0RCxJQUFJLENBQUMwWCxpQkFBaUIsRUFBRXpULEdBQUcsQ0FBQztBQUMxQztBQUVPLFNBQVNvVSxtQkFBbUJBLENBQUMvVyxPQUFlLEVBQUUyQyxHQUFXLEVBQVU7RUFDeEUsT0FBTzRULFdBQVcsQ0FBQ3ZXLE9BQU8sRUFBRTJDLEdBQUcsRUFBRTdDLGdCQUFnQixDQUFDO0FBQ3BEO0FBRU8sU0FBU2tYLHNCQUFzQkEsQ0FBQ2hYLE9BQWUsRUFBRTJDLEdBQVcsRUFBVTtFQUMzRSxPQUFPNFQsV0FBVyxDQUFDdlcsT0FBTyxFQUFFMkMsR0FBRyxFQUFFOUMsbUJBQW1CLENBQUM7QUFDdkQ7O0FBRUE7QUFDQSxTQUFTMFcsV0FBV0EsQ0FBQ3ZXLE9BQWUsRUFBRTJDLEdBQVcsRUFBRXNVLFVBQWtCLEVBQVU7RUFDN0UsSUFBTXRCLEtBQUssR0FBR3NCLFVBQVUsQ0FBQzNZLElBQUksQ0FBQ3FFLEdBQUcsQ0FBQztFQUNsQ2lULGtCQUFNLENBQUNDLGNBQWMsQ0FDbkJGLEtBQUssRUFDTCxJQUFJLCtDQUFBNVQsTUFBQSxDQUN5Q1ksR0FBRyxDQUNsRCxDQUFDO0VBQ0QsSUFBTW9ULGFBQWEsR0FBRy9ULGdCQUFJLENBQUN0RCxJQUFJLENBQUNzQixPQUFPLEVBQUUyVixLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7RUFDbkQsSUFBTUssY0FBYyxHQUFHaFUsZ0JBQUksQ0FBQ3RELElBQUksQ0FBQ3FYLGFBQWEsRUFBRUosS0FBSyxDQUFFLENBQUMsQ0FBQyxDQUFDO0VBQzFELElBQUl2VyxNQUFNLEdBQUcsUUFBUSxHQUFHdVcsS0FBSyxDQUFFLENBQUMsQ0FBQztFQUNqQ3ZXLE1BQU0sR0FBR0EsTUFBTSxDQUFDK1csU0FBUyxDQUFDL1csTUFBTSxDQUFDOUQsTUFBTSxHQUFHLENBQUMsQ0FBQztFQUM1QyxJQUFNOGEsaUJBQWlCLEdBQUdwVSxnQkFBSSxDQUFDdEQsSUFBSSxDQUFDc1gsY0FBYyxFQUFFNVcsTUFBTSxDQUFDK1csU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUMzRTlULG1CQUFFLENBQUM0VCxhQUFhLENBQUNHLGlCQUFpQixDQUFDO0VBQ25DLE9BQU9wVSxnQkFBSSxDQUFDdEQsSUFBSSxDQUFDMFgsaUJBQWlCLEVBQUV6VCxHQUFHLENBQUM7QUFDMUMiLCJpZ25vcmVMaXN0IjpbXX0=