@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
@@ -7,36 +7,32 @@ import path from "path";
7
7
  import { walkDocumentAndDivisions } from "../dossiers_legislatifs.mjs";
8
8
  import * as git from "../git.mjs";
9
9
  import { iterLoadAssembleeDocuments, pathFromDocumentUid } from "../loaders.mjs";
10
+ import { parseTexte } from "../parsers/index.mjs";
10
11
  import { DocumentUrlFormat, iterDocumentOrDivisionUrls } from "../urls.mjs";
11
- import { commitOption, dataDirDefaultOption, legislatureOption, pullOption, remoteOption, silentOption, verboseOption } from "./shared/cli_helpers.mjs";
12
- const optionsDefinitions = [commitOption, legislatureOption, remoteOption, silentOption, verboseOption, dataDirDefaultOption, pullOption, {
13
- alias: "f",
14
- help: "retrieve all documents, even already retrieved ones",
15
- name: "full",
16
- type: Boolean
17
- }, {
18
- alias: "n",
19
- help: "try to also retrieve documents that were previously not found",
20
- name: "not-found",
21
- type: Boolean
22
- }, {
23
- alias: "u",
24
- help: "UID of first Assemblée's document or division to retrieve",
25
- name: "uid",
26
- type: String
27
- }, {
28
- alias: "F",
29
- help: "format of documents to retrieve",
30
- name: "format",
31
- type: String
32
- }, {
33
- alias: "T",
34
- help: "type of documents to retrieve (for example: PION)",
35
- multiple: true,
36
- name: "document-type",
37
- type: String
38
- }];
39
- const options = commandLineArgs(optionsDefinitions);
12
+ import { commitOption, dataDirDefaultOption, legislatureOption, pullOption, remoteOption, silentOption, verboseOption, documentFormatOption } from "./shared/cli_helpers.mjs";
13
+ function parseArgs(argv) {
14
+ const optionsDefinitions = [commitOption, legislatureOption, remoteOption, silentOption, verboseOption, dataDirDefaultOption, pullOption, {
15
+ alias: "f",
16
+ help: "retrieve all documents, even already retrieved ones",
17
+ name: "full",
18
+ type: Boolean
19
+ }, {
20
+ alias: "n",
21
+ help: "try to also retrieve documents that were previously not found",
22
+ name: "not-found",
23
+ type: Boolean
24
+ }, documentFormatOption, {
25
+ alias: "T",
26
+ help: "type of documents to retrieve (for example: PION)",
27
+ multiple: true,
28
+ name: "document-type",
29
+ type: String
30
+ }];
31
+ const options = commandLineArgs(optionsDefinitions, {
32
+ argv: argv
33
+ });
34
+ return options;
35
+ }
40
36
  const today = new Date();
41
37
  async function fetchWithRetry(url, retries = 3, backoff = 300) {
42
38
  for (let attempt = 0; attempt < retries; attempt++) {
@@ -53,7 +49,46 @@ async function fetchWithRetry(url, retries = 3, backoff = 300) {
53
49
  }
54
50
  throw new Error(`Failed to fetch ${url} after ${retries} attempts`);
55
51
  }
56
- async function retrieveDocuments() {
52
+ export async function downloadAndParse(document, documentsDir, options) {
53
+ if (document.uid.substring(4, 6) === "SN") {
54
+ return;
55
+ }
56
+ if (options.legislature?.toString() !== document.legislature) {
57
+ return;
58
+ }
59
+ if (options.fetchDocuments) {
60
+ const dataDir = options.dataDir;
61
+ const documentsFilesDir = path.join(dataDir, "Documents");
62
+ const documentDir = pathFromDocumentUid(`${documentsDir}/documents`, document.uid);
63
+ const documentFileDir = pathFromDocumentUid(documentsFilesDir, document.uid);
64
+ fs.ensureDirSync(documentsFilesDir);
65
+ await processDocumentOrDivision(document, documentsFilesDir, options);
66
+ if (options.parseDocuments) {
67
+ const documentPath = `${documentDir}.json`;
68
+ const htmlPath = path.join(documentFileDir, `dyn-opendata.html`);
69
+ if (fs.existsSync(htmlPath)) {
70
+ const html = fs.readFileSync(htmlPath, {
71
+ encoding: "utf-8"
72
+ });
73
+ try {
74
+ const parsedDocument = parseTexte("https://www.assemblee-nationale.fr", html);
75
+ if (parsedDocument && fs.existsSync(documentPath)) {
76
+ const json = fs.readFileSync(documentPath, {
77
+ encoding: "utf-8"
78
+ });
79
+ const documentJson = JSON.parse(json);
80
+ documentJson.subdivisions = parsedDocument?.subdivisions;
81
+ fs.writeFileSync(documentPath, JSON.stringify(documentJson, null, 2));
82
+ }
83
+ } catch (e) {
84
+ console.log(`Unable to parse document ${document.uid}`);
85
+ return;
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ async function retrieveDocuments(options) {
57
92
  assert(!options.commit || !options.uid, 'Options "commit" & "uid" are incompatible');
58
93
  const dataDir = options.dataDir;
59
94
  const documentsDir = path.join(dataDir, "Documents");
@@ -107,8 +142,12 @@ async function processDocumentOrDivision(documentOrDivision, documentsDir, optio
107
142
  } of iterDocumentOrDivisionUrls(documentOrDivision)) {
108
143
  const filename = `${type}.${format === DocumentUrlFormat.Pdf ? "pdf" : "html"}`;
109
144
 
110
- // Filter by format if option is passed
111
- if (options.format && options.format !== format) {
145
+ // Filter by file extension if option is passed
146
+ const fileExtension = url.split(".").pop();
147
+ if (options.format && fileExtension && options.format !== fileExtension) {
148
+ continue;
149
+ }
150
+ if (options.legislature && options.legislature.toString() !== documentOrDivision.legislature) {
112
151
  continue;
113
152
  }
114
153
 
@@ -152,7 +191,9 @@ async function processDocumentOrDivision(documentOrDivision, documentsDir, optio
152
191
  const sha256 = createHash("sha256").update(buffer).digest("hex");
153
192
  const existingFilename = filenameBySha256[sha256];
154
193
  if (existingFilename === undefined) {
155
- fs.createWriteStream(filePath).write(buffer);
194
+ fs.writeFileSync(filePath, buffer, {
195
+ encoding: "utf8"
196
+ });
156
197
  fileInfos.filename = filename;
157
198
  filenameBySha256[sha256] = filename;
158
199
  } else {
@@ -183,8 +224,16 @@ async function processDocumentOrDivision(documentOrDivision, documentsDir, optio
183
224
  spaces: 2
184
225
  });
185
226
  }
186
- retrieveDocuments().then(exitCode => process.exit(exitCode)).catch(error => {
187
- console.log(error);
188
- process.exit(1);
189
- });
190
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJjcmVhdGVIYXNoIiwiZGlmZmVyZW5jZUluRGF5cyIsImZzIiwicGF0aCIsIndhbGtEb2N1bWVudEFuZERpdmlzaW9ucyIsImdpdCIsIml0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzIiwicGF0aEZyb21Eb2N1bWVudFVpZCIsIkRvY3VtZW50VXJsRm9ybWF0IiwiaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHMiLCJjb21taXRPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsImxlZ2lzbGF0dXJlT3B0aW9uIiwicHVsbE9wdGlvbiIsInJlbW90ZU9wdGlvbiIsInNpbGVudE9wdGlvbiIsInZlcmJvc2VPcHRpb24iLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJTdHJpbmciLCJtdWx0aXBsZSIsIm9wdGlvbnMiLCJ0b2RheSIsIkRhdGUiLCJmZXRjaFdpdGhSZXRyeSIsInVybCIsInJldHJpZXMiLCJiYWNrb2ZmIiwiYXR0ZW1wdCIsImZldGNoIiwiZXJyb3IiLCJjb25zb2xlIiwid2FybiIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsIkVycm9yIiwicmV0cmlldmVEb2N1bWVudHMiLCJjb21taXQiLCJ1aWQiLCJkYXRhRGlyIiwiZG9jdW1lbnRzRGlyIiwiam9pbiIsInB1bGwiLCJyZXNldEFuZFB1bGwiLCJlbnN1cmVEaXJTeW5jIiwiZnVsbCIsImZpbGVuYW1lIiwicmVhZGRpclN5bmMiLCJyZW1vdmVTeW5jIiwiZmlyc3RVaWQiLCJza2lwIiwiZG9jdW1lbnQiLCJsZWdpc2xhdHVyZSIsImRvY3VtZW50T3JEaXZpc2lvbiIsInN1YnN0cmluZyIsInByb2Nlc3NEb2N1bWVudE9yRGl2aXNpb24iLCJjb21taXRBbmRQdXNoIiwicmVtb3RlIiwiZG9jdW1lbnREaXIiLCJmaWxlbmFtZUJ5U2hhMjU2IiwiaW5kZXhQYXRoIiwiaW5kZXgiLCJwYXRoRXhpc3RzU3luYyIsInJlYWRKc29uU3luYyIsImZvcm1hdCIsIlBkZiIsImRvY3VtZW50VHlwZSIsImNsYXNzaWZpY2F0aW9uIiwiY29kZSIsInVuZGVmaW5lZCIsImluY2x1ZGVzIiwiZm9ybWF0RmlsZXNJbmZvcyIsImZpbGVJbmZvcyIsImZpbmQiLCJmaWxlIiwicHVzaCIsInN0YXR1cyIsInNoYTI1NiIsImN5Y2xlRGVWaWUiLCJjaHJvbm8iLCJkYXRlQ3JlYXRpb24iLCJkYXRlRGVwb3QiLCJzaWxlbnQiLCJsb2ciLCJyZXNwb25zZSIsImZpbGVQYXRoIiwib2siLCJhcnJheUJ1ZmZlciIsImJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJzdWJhcnJheSIsInRvU3RyaW5nIiwic3RhcnRzV2l0aCIsInVwZGF0ZSIsImRpZ2VzdCIsImV4aXN0aW5nRmlsZW5hbWUiLCJjcmVhdGVXcml0ZVN0cmVhbSIsIndyaXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0Iiwid3JpdGVKc29uU3luYyIsImVuY29kaW5nIiwic3BhY2VzIiwidGhlbiIsImV4aXRDb2RlIiwicHJvY2VzcyIsImV4aXQiLCJjYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX2RvY3VtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IHsgZGlmZmVyZW5jZUluRGF5cyB9IGZyb20gXCJkYXRlLWZuc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHtcbiAgRG9jdW1lbnRGaWxlSW5mb3MsXG4gIERvY3VtZW50RmlsZXNJbmRleCxcbiAgd2Fsa0RvY3VtZW50QW5kRGl2aXNpb25zLFxufSBmcm9tIFwiLi4vZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHsgaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMsIHBhdGhGcm9tRG9jdW1lbnRVaWQgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHMgfSBmcm9tIFwiLi4vdXJsc1wiXG5pbXBvcnQge1xuICBjb21taXRPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgcHVsbE9wdGlvbixcbiAgcmVtb3RlT3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgY29tbWl0T3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgcmVtb3RlT3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBwdWxsT3B0aW9uLFxuICB7XG4gICAgYWxpYXM6IFwiZlwiLFxuICAgIGhlbHA6IFwicmV0cmlldmUgYWxsIGRvY3VtZW50cywgZXZlbiBhbHJlYWR5IHJldHJpZXZlZCBvbmVzXCIsXG4gICAgbmFtZTogXCJmdWxsXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcIm5cIixcbiAgICBoZWxwOiBcInRyeSB0byBhbHNvIHJldHJpZXZlIGRvY3VtZW50cyB0aGF0IHdlcmUgcHJldmlvdXNseSBub3QgZm91bmRcIixcbiAgICBuYW1lOiBcIm5vdC1mb3VuZFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IG9yIGRpdmlzaW9uIHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJGXCIsXG4gICAgaGVscDogXCJmb3JtYXQgb2YgZG9jdW1lbnRzIHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJmb3JtYXRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJUXCIsXG4gICAgaGVscDogXCJ0eXBlIG9mIGRvY3VtZW50cyB0byByZXRyaWV2ZSAoZm9yIGV4YW1wbGU6IFBJT04pXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJkb2N1bWVudC10eXBlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5jb25zdCB0b2RheSA9IG5ldyBEYXRlKClcblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hXaXRoUmV0cnkoXG4gIHVybDogc3RyaW5nLFxuICByZXRyaWVzOiBudW1iZXIgPSAzLFxuICBiYWNrb2ZmOiBudW1iZXIgPSAzMDAsXG4pOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDwgcmV0cmllczsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmZXRjaCh1cmwpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChhdHRlbXB0ID09PSByZXRyaWVzIC0gMSkge1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRmV0Y2ggYXR0ZW1wdCAke2F0dGVtcHQgKyAxfSBmb3IgJHt1cmx9IGZhaWxlZC4gUmV0cnlpbmcgaW4gJHtiYWNrb2ZmfW1zLi4uYCxcbiAgICAgIClcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGJhY2tvZmYpKVxuICAgICAgYmFja29mZiAqPSAyXG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoICR7dXJsfSBhZnRlciAke3JldHJpZXN9IGF0dGVtcHRzYClcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVEb2N1bWVudHMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCAhb3B0aW9ucy51aWQsXG4gICAgJ09wdGlvbnMgXCJjb21taXRcIiAmIFwidWlkXCIgYXJlIGluY29tcGF0aWJsZScsXG4gIClcblxuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IGRvY3VtZW50c0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcIkRvY3VtZW50c1wiKVxuICBpZiAob3B0aW9ucy5wdWxsKSB7XG4gICAgZ2l0LnJlc2V0QW5kUHVsbChkb2N1bWVudHNEaXIpXG4gIH1cbiAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudHNEaXIpXG5cbiAgaWYgKG9wdGlvbnMuZnVsbCAmJiAhb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKGRvY3VtZW50c0RpcikpIHtcbiAgICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5qb2luKGRvY3VtZW50c0RpciwgZmlsZW5hbWUpKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZpcnN0VWlkID0gb3B0aW9ucy51aWRcbiAgbGV0IHNraXAgPSBCb29sZWFuKGZpcnN0VWlkKVxuICBmb3IgKGNvbnN0IHsgZG9jdW1lbnQgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyhcbiAgICBkYXRhRGlyLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICkpIHtcbiAgICBmb3IgKGNvbnN0IGRvY3VtZW50T3JEaXZpc2lvbiBvZiB3YWxrRG9jdW1lbnRBbmREaXZpc2lvbnMoZG9jdW1lbnQpKSB7XG4gICAgICAvLyBJZ25vcmUgZG9jdW1lbnRzIGZyb20gU8OpbmF0LlxuICAgICAgaWYgKGRvY3VtZW50T3JEaXZpc2lvbi51aWQuc3Vic3RyaW5nKDQsIDYpID09PSBcIlNOXCIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKHNraXApIHtcbiAgICAgICAgaWYgKGRvY3VtZW50T3JEaXZpc2lvbi51aWQgPT09IGZpcnN0VWlkKSB7XG4gICAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBwcm9jZXNzRG9jdW1lbnRPckRpdmlzaW9uKGRvY3VtZW50T3JEaXZpc2lvbiwgZG9jdW1lbnRzRGlyLCBvcHRpb25zKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIHJldHVybiBnaXQuY29tbWl0QW5kUHVzaChkb2N1bWVudHNEaXIsIFwiTm91dmVsbGUgbW9pc3NvblwiLCBvcHRpb25zLnJlbW90ZSlcbiAgfVxuICByZXR1cm4gMFxufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRG9jdW1lbnRPckRpdmlzaW9uKFxuICBkb2N1bWVudE9yRGl2aXNpb246IGFueSxcbiAgZG9jdW1lbnRzRGlyOiBzdHJpbmcsXG4gIG9wdGlvbnM6IGFueSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyLCBkb2N1bWVudE9yRGl2aXNpb24udWlkKVxuICBmcy5lbnN1cmVEaXJTeW5jKGRvY3VtZW50RGlyKVxuXG4gIGNvbnN0IGZpbGVuYW1lQnlTaGEyNTY6IHsgW2RpZ2VzdDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fVxuICBjb25zdCBpbmRleFBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIFwiaW5kZXguanNvblwiKVxuICBjb25zdCBpbmRleCA9IChcbiAgICBmcy5wYXRoRXhpc3RzU3luYyhpbmRleFBhdGgpID8gZnMucmVhZEpzb25TeW5jKGluZGV4UGF0aCkgOiB7fVxuICApIGFzIERvY3VtZW50RmlsZXNJbmRleFxuXG4gIGZvciAoY29uc3QgeyBmb3JtYXQsIHR5cGUsIHVybCB9IG9mIGl0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzKFxuICAgIGRvY3VtZW50T3JEaXZpc2lvbixcbiAgKSkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gYCR7dHlwZX0uJHtcbiAgICAgIGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmID8gXCJwZGZcIiA6IFwiaHRtbFwiXG4gICAgfWBcblxuICAgIC8vIEZpbHRlciBieSBmb3JtYXQgaWYgb3B0aW9uIGlzIHBhc3NlZFxuICAgIGlmIChvcHRpb25zLmZvcm1hdCAmJiBvcHRpb25zLmZvcm1hdCAhPT0gZm9ybWF0KSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIC8vIEZpbHRlciBieSBkb2N1bWVudCB0eXBlIGlmIG9wdGlvbiBpcyBwYXNzZWRcbiAgICBjb25zdCBkb2N1bWVudFR5cGUgPSBkb2N1bWVudE9yRGl2aXNpb24uY2xhc3NpZmljYXRpb24/LnR5cGU/LmNvZGVcbiAgICBpZiAoXG4gICAgICBvcHRpb25zW1wiZG9jdW1lbnQtdHlwZVwiXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhb3B0aW9uc1tcImRvY3VtZW50LXR5cGVcIl0uaW5jbHVkZXMoZG9jdW1lbnRUeXBlKVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBsZXQgZm9ybWF0RmlsZXNJbmZvcyA9IGluZGV4W2Zvcm1hdF0gPz8gKGluZGV4W2Zvcm1hdF0gPSBbXSlcbiAgICBsZXQgZmlsZUluZm9zID1cbiAgICAgIGZvcm1hdEZpbGVzSW5mb3MuZmluZCgoZmlsZSkgPT4gZmlsZS51cmwgPT09IHVybCkgPz9cbiAgICAgICh7fSBhcyBEb2N1bWVudEZpbGVJbmZvcylcbiAgICBpZiAoIWZvcm1hdEZpbGVzSW5mb3MuaW5jbHVkZXMoZmlsZUluZm9zKSkge1xuICAgICAgZm9ybWF0RmlsZXNJbmZvcy5wdXNoKGZpbGVJbmZvcylcbiAgICB9XG4gICAgZmlsZUluZm9zLnVybCA9IHVybFxuXG4gICAgaWYgKGZpbGVJbmZvcy5zdGF0dXMgPT09IDIwMCAmJiAhb3B0aW9ucy5mdWxsKSB7XG4gICAgICBmaWxlbmFtZUJ5U2hhMjU2W2ZpbGVJbmZvcy5zaGEyNTYgYXMgc3RyaW5nXSA9IGZpbGVuYW1lXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBmaWxlSW5mb3Muc3RhdHVzID09PSA0MDQgJiZcbiAgICAgICFvcHRpb25zW1wibm90LWZvdW5kXCJdICYmXG4gICAgICBkaWZmZXJlbmNlSW5EYXlzKFxuICAgICAgICB0b2RheSxcbiAgICAgICAgZG9jdW1lbnRPckRpdmlzaW9uLmN5Y2xlRGVWaWUuY2hyb25vLmRhdGVDcmVhdGlvbiA/P1xuICAgICAgICAgIChkb2N1bWVudE9yRGl2aXNpb24uY3ljbGVEZVZpZS5jaHJvbm8uZGF0ZURlcG90IGFzIERhdGUgfCBzdHJpbmcpLFxuICAgICAgKSA+IDEwXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmV0cmlldmluZyBkb2N1bWVudCBvciBkaXZpc2lvbiAke2RvY3VtZW50T3JEaXZpc2lvbi51aWR9IGF0ICR7dXJsfeKApmAsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhSZXRyeSh1cmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIGZpbGVuYW1lKVxuXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKClcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGFycmF5QnVmZmVyKVxuICAgICAgaWYgKFxuICAgICAgICBmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlBkZiAmJlxuICAgICAgICAhYnVmZmVyLnN1YmFycmF5KDAsIDQpLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcIiVQREZcIilcbiAgICAgICkge1xuICAgICAgICAvLyBJbnN0ZWFkIG9mIGEgUERGLCB0aGUgcmVjZWl2ZWQgZGF0YSBtYXkgYmUgYW4gSFRNTCBwYWdlIHdpdGggYSBtZXNzYWdlIGxpa2VcbiAgICAgICAgLy8gXCJEb2N1bWVudCBub24gZW5jb3JlIHB1Ymxpw6lcIi5cbiAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgICBQREYgXCIke3VybH1cIiBub3QgZm91bmQuYClcbiAgICAgICAgfVxuICAgICAgICBmcy5yZW1vdmVTeW5jKGZpbGVQYXRoKVxuICAgICAgICBkZWxldGUgZmlsZUluZm9zLmZpbGVuYW1lXG4gICAgICAgIGRlbGV0ZSBmaWxlSW5mb3Muc2hhMjU2XG4gICAgICAgIGZpbGVJbmZvcy5zdGF0dXMgPSA0MDRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNoYTI1NiA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGJ1ZmZlcikuZGlnZXN0KFwiaGV4XCIpXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nRmlsZW5hbWUgPSBmaWxlbmFtZUJ5U2hhMjU2W3NoYTI1Nl1cbiAgICAgICAgaWYgKGV4aXN0aW5nRmlsZW5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKGZpbGVQYXRoKS53cml0ZShidWZmZXIpXG4gICAgICAgICAgZmlsZUluZm9zLmZpbGVuYW1lID0gZmlsZW5hbWVcbiAgICAgICAgICBmaWxlbmFtZUJ5U2hhMjU2W3NoYTI1Nl0gPSBmaWxlbmFtZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbGVJbmZvcy5maWxlbmFtZSA9IGV4aXN0aW5nRmlsZW5hbWVcbiAgICAgICAgfVxuICAgICAgICBmaWxlSW5mb3Muc2hhMjU2ID0gc2hhMjU2XG4gICAgICAgIGZpbGVJbmZvcy5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXNcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYCAgUGFnZSBcIiR7dXJsfVwiIG5vdCBmb3VuZC5gKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGAgIEVycm9yOlxcbiR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7IGNvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCB9LFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIDIsXG4gICAgICAgICAgKX1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKGZpbGVQYXRoKVxuICAgICAgZGVsZXRlIGZpbGVJbmZvcy5maWxlbmFtZVxuICAgICAgZGVsZXRlIGZpbGVJbmZvcy5zaGEyNTZcbiAgICAgIGZpbGVJbmZvcy5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXNcbiAgICB9XG4gIH1cblxuICBmcy53cml0ZUpzb25TeW5jKGluZGV4UGF0aCwgaW5kZXgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiwgc3BhY2VzOiAyIH0pXG59XG5cbnJldHJpZXZlRG9jdW1lbnRzKClcbiAgLnRoZW4oKGV4aXRDb2RlKSA9PiBwcm9jZXNzLmV4aXQoZXhpdENvZGUpKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsU0FBU0MsVUFBVSxRQUFRLFFBQVE7QUFDbkMsU0FBU0MsZ0JBQWdCLFFBQVEsVUFBVTtBQUMzQyxPQUFPQyxFQUFFLE1BQU0sVUFBVTtBQUN6QixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUFBLFNBS3JCQyx3QkFBd0I7QUFBQSxPQUVuQixLQUFLQyxHQUFHO0FBQUEsU0FDTkMsMEJBQTBCLEVBQUVDLG1CQUFtQjtBQUFBLFNBQy9DQyxpQkFBaUIsRUFBRUMsMEJBQTBCO0FBQUEsU0FFcERDLFlBQVksRUFDWkMsb0JBQW9CLEVBQ3BCQyxpQkFBaUIsRUFDakJDLFVBQVUsRUFDVkMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLGFBQWE7QUFHZixNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QlAsWUFBWSxFQUNaRSxpQkFBaUIsRUFDakJFLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxhQUFhLEVBQ2JMLG9CQUFvQixFQUNwQkUsVUFBVSxFQUNWO0VBQ0VLLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxxREFBcUQ7RUFDM0RDLElBQUksRUFBRSxNQUFNO0VBQ1pDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLCtEQUErRDtFQUNyRUMsSUFBSSxFQUFFLFdBQVc7RUFDakJDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLDJEQUEyRDtFQUNqRUMsSUFBSSxFQUFFLEtBQUs7RUFDWEMsSUFBSSxFQUFFRTtBQUNSLENBQUMsRUFD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
227
+ function main(argv) {
228
+ const options = parseArgs(argv);
229
+ return retrieveDocuments(options);
230
+ }
231
+
232
+ /* istanbul ignore if */
233
+ if (process.argv[1].endsWith("retrieve_documents.ts")) {
234
+ main(process.argv).then(exitCode => process.exit(exitCode)).catch(error => {
235
+ console.log(error);
236
+ process.exit(1);
237
+ });
238
+ }
239
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJjcmVhdGVIYXNoIiwiZGlmZmVyZW5jZUluRGF5cyIsImZzIiwicGF0aCIsIndhbGtEb2N1bWVudEFuZERpdmlzaW9ucyIsImdpdCIsIml0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzIiwicGF0aEZyb21Eb2N1bWVudFVpZCIsInBhcnNlVGV4dGUiLCJEb2N1bWVudFVybEZvcm1hdCIsIml0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzIiwiY29tbWl0T3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJsZWdpc2xhdHVyZU9wdGlvbiIsInB1bGxPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZG9jdW1lbnRGb3JtYXRPcHRpb24iLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwibXVsdGlwbGUiLCJTdHJpbmciLCJvcHRpb25zIiwidG9kYXkiLCJEYXRlIiwiZmV0Y2hXaXRoUmV0cnkiLCJ1cmwiLCJyZXRyaWVzIiwiYmFja29mZiIsImF0dGVtcHQiLCJmZXRjaCIsImVycm9yIiwiY29uc29sZSIsIndhcm4iLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJFcnJvciIsImRvd25sb2FkQW5kUGFyc2UiLCJkb2N1bWVudCIsImRvY3VtZW50c0RpciIsInVpZCIsInN1YnN0cmluZyIsImxlZ2lzbGF0dXJlIiwidG9TdHJpbmciLCJmZXRjaERvY3VtZW50cyIsImRhdGFEaXIiLCJkb2N1bWVudHNGaWxlc0RpciIsImpvaW4iLCJkb2N1bWVudERpciIsImRvY3VtZW50RmlsZURpciIsImVuc3VyZURpclN5bmMiLCJwcm9jZXNzRG9jdW1lbnRPckRpdmlzaW9uIiwicGFyc2VEb2N1bWVudHMiLCJkb2N1bWVudFBhdGgiLCJodG1sUGF0aCIsImV4aXN0c1N5bmMiLCJodG1sIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJwYXJzZWREb2N1bWVudCIsImpzb24iLCJkb2N1bWVudEpzb24iLCJKU09OIiwicGFyc2UiLCJzdWJkaXZpc2lvbnMiLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5IiwiZSIsImxvZyIsInJldHJpZXZlRG9jdW1lbnRzIiwiY29tbWl0IiwicHVsbCIsInJlc2V0QW5kUHVsbCIsImZ1bGwiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwicmVtb3ZlU3luYyIsImZpcnN0VWlkIiwic2tpcCIsImRvY3VtZW50T3JEaXZpc2lvbiIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJmaWxlbmFtZUJ5U2hhMjU2IiwiaW5kZXhQYXRoIiwiaW5kZXgiLCJwYXRoRXhpc3RzU3luYyIsInJlYWRKc29uU3luYyIsImZvcm1hdCIsIlBkZiIsImZpbGVFeHRlbnNpb24iLCJzcGxpdCIsInBvcCIsImRvY3VtZW50VHlwZSIsImNsYXNzaWZpY2F0aW9uIiwiY29kZSIsInVuZGVmaW5lZCIsImluY2x1ZGVzIiwiZm9ybWF0RmlsZXNJbmZvcyIsImZpbGVJbmZvcyIsImZpbmQiLCJmaWxlIiwicHVzaCIsInN0YXR1cyIsInNoYTI1NiIsImN5Y2xlRGVWaWUiLCJjaHJvbm8iLCJkYXRlQ3JlYXRpb24iLCJkYXRlRGVwb3QiLCJzaWxlbnQiLCJyZXNwb25zZSIsImZpbGVQYXRoIiwib2siLCJhcnJheUJ1ZmZlciIsImJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJzdWJhcnJheSIsInN0YXJ0c1dpdGgiLCJ1cGRhdGUiLCJkaWdlc3QiLCJleGlzdGluZ0ZpbGVuYW1lIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJ3cml0ZUpzb25TeW5jIiwic3BhY2VzIiwibWFpbiIsInByb2Nlc3MiLCJlbmRzV2l0aCIsInRoZW4iLCJleGl0Q29kZSIsImV4aXQiLCJjYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX2RvY3VtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IHsgZGlmZmVyZW5jZUluRGF5cyB9IGZyb20gXCJkYXRlLWZuc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHtcbiAgRG9jdW1lbnRGaWxlSW5mb3MsXG4gIERvY3VtZW50RmlsZXNJbmRleCxcbiAgd2Fsa0RvY3VtZW50QW5kRGl2aXNpb25zLFxufSBmcm9tIFwiLi4vZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHsgaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMsIHBhdGhGcm9tRG9jdW1lbnRVaWQgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQgeyBwYXJzZVRleHRlIH0gZnJvbSBcIi4uL3BhcnNlcnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIGl0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzIH0gZnJvbSBcIi4uL3VybHNcIlxuaW1wb3J0IHtcbiAgY29tbWl0T3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIHB1bGxPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxuICBkb2N1bWVudEZvcm1hdE9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIGNvbW1pdE9wdGlvbixcbiAgICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgICByZW1vdGVPcHRpb24sXG4gICAgc2lsZW50T3B0aW9uLFxuICAgIHZlcmJvc2VPcHRpb24sXG4gICAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gICAgcHVsbE9wdGlvbixcbiAgICB7XG4gICAgICBhbGlhczogXCJmXCIsXG4gICAgICBoZWxwOiBcInJldHJpZXZlIGFsbCBkb2N1bWVudHMsIGV2ZW4gYWxyZWFkeSByZXRyaWV2ZWQgb25lc1wiLFxuICAgICAgbmFtZTogXCJmdWxsXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgYWxpYXM6IFwiblwiLFxuICAgICAgaGVscDogXCJ0cnkgdG8gYWxzbyByZXRyaWV2ZSBkb2N1bWVudHMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgbm90IGZvdW5kXCIsXG4gICAgICBuYW1lOiBcIm5vdC1mb3VuZFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGRvY3VtZW50Rm9ybWF0T3B0aW9uLFxuICAgIHtcbiAgICAgIGFsaWFzOiBcIlRcIixcbiAgICAgIGhlbHA6IFwidHlwZSBvZiBkb2N1bWVudHMgdG8gcmV0cmlldmUgKGZvciBleGFtcGxlOiBQSU9OKVwiLFxuICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICBuYW1lOiBcImRvY3VtZW50LXR5cGVcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICBdXG4gIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zLCB7XG4gICAgYXJndjogYXJndixcbiAgfSlcbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpXG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoV2l0aFJldHJ5KFxuICB1cmw6IHN0cmluZyxcbiAgcmV0cmllczogbnVtYmVyID0gMyxcbiAgYmFja29mZjogbnVtYmVyID0gMzAwLFxuKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8IHJldHJpZXM7IGF0dGVtcHQrKykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgZmV0Y2godXJsKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoYXR0ZW1wdCA9PT0gcmV0cmllcyAtIDEpIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYEZldGNoIGF0dGVtcHQgJHthdHRlbXB0ICsgMX0gZm9yICR7dXJsfSBmYWlsZWQuIFJldHJ5aW5nIGluICR7YmFja29mZn1tcy4uLmAsXG4gICAgICApXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBiYWNrb2ZmKSlcbiAgICAgIGJhY2tvZmYgKj0gMlxuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCAke3VybH0gYWZ0ZXIgJHtyZXRyaWVzfSBhdHRlbXB0c2ApXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3dubG9hZEFuZFBhcnNlKFxuICBkb2N1bWVudDogYW55LFxuICBkb2N1bWVudHNEaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChkb2N1bWVudC51aWQuc3Vic3RyaW5nKDQsIDYpID09PSBcIlNOXCIpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChvcHRpb25zLmxlZ2lzbGF0dXJlPy50b1N0cmluZygpICE9PSBkb2N1bWVudC5sZWdpc2xhdHVyZSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKG9wdGlvbnMuZmV0Y2hEb2N1bWVudHMpIHtcbiAgICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gICAgY29uc3QgZG9jdW1lbnRzRmlsZXNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgXCJEb2N1bWVudHNcIilcbiAgICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoXG4gICAgICBgJHtkb2N1bWVudHNEaXJ9L2RvY3VtZW50c2AsXG4gICAgICBkb2N1bWVudC51aWQsXG4gICAgKVxuICAgIGNvbnN0IGRvY3VtZW50RmlsZURpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRmlsZXNEaXIsIGRvY3VtZW50LnVpZClcblxuICAgIGZzLmVuc3VyZURpclN5bmMoZG9jdW1lbnRzRmlsZXNEaXIpXG4gICAgYXdhaXQgcHJvY2Vzc0RvY3VtZW50T3JEaXZpc2lvbihkb2N1bWVudCwgZG9jdW1lbnRzRmlsZXNEaXIsIG9wdGlvbnMpXG5cbiAgICBpZiAob3B0aW9ucy5wYXJzZURvY3VtZW50cykge1xuICAgICAgY29uc3QgZG9jdW1lbnRQYXRoID0gYCR7ZG9jdW1lbnREaXJ9Lmpzb25gXG4gICAgICBjb25zdCBodG1sUGF0aCA9IHBhdGguam9pbihkb2N1bWVudEZpbGVEaXIsIGBkeW4tb3BlbmRhdGEuaHRtbGApXG5cbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGh0bWxQYXRoKSkge1xuICAgICAgICBjb25zdCBodG1sID0gZnMucmVhZEZpbGVTeW5jKGh0bWxQYXRoLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSlcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXJzZWREb2N1bWVudCA9IHBhcnNlVGV4dGUoXG4gICAgICAgICAgICBcImh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnJcIixcbiAgICAgICAgICAgIGh0bWwsXG4gICAgICAgICAgKVxuICAgICAgICAgIGlmIChwYXJzZWREb2N1bWVudCAmJiBmcy5leGlzdHNTeW5jKGRvY3VtZW50UGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGpzb24gPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRQYXRoLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSlcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50SnNvbiA9IEpTT04ucGFyc2UoanNvbilcbiAgICAgICAgICAgIGRvY3VtZW50SnNvbi5zdWJkaXZpc2lvbnMgPSBwYXJzZWREb2N1bWVudD8uc3ViZGl2aXNpb25zXG4gICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgICBkb2N1bWVudFBhdGgsXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGRvY3VtZW50SnNvbiwgbnVsbCwgMiksXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFVuYWJsZSB0byBwYXJzZSBkb2N1bWVudCAke2RvY3VtZW50LnVpZH1gKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlRG9jdW1lbnRzKG9wdGlvbnM6IGFueSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGFzc2VydChcbiAgICAhb3B0aW9ucy5jb21taXQgfHwgIW9wdGlvbnMudWlkLFxuICAgICdPcHRpb25zIFwiY29tbWl0XCIgJiBcInVpZFwiIGFyZSBpbmNvbXBhdGlibGUnLFxuICApXG5cbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgXCJEb2N1bWVudHNcIilcbiAgaWYgKG9wdGlvbnMucHVsbCkge1xuICAgIGdpdC5yZXNldEFuZFB1bGwoZG9jdW1lbnRzRGlyKVxuICB9XG4gIGZzLmVuc3VyZURpclN5bmMoZG9jdW1lbnRzRGlyKVxuXG4gIGlmIChvcHRpb25zLmZ1bGwgJiYgIW9wdGlvbnMudWlkKSB7XG4gICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkb2N1bWVudHNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbihkb2N1bWVudHNEaXIsIGZpbGVuYW1lKSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gQm9vbGVhbihmaXJzdFVpZClcbiAgZm9yIChjb25zdCB7IGRvY3VtZW50IH0gb2YgaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMoXG4gICAgZGF0YURpcixcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICApKSB7XG4gICAgZm9yIChjb25zdCBkb2N1bWVudE9yRGl2aXNpb24gb2Ygd2Fsa0RvY3VtZW50QW5kRGl2aXNpb25zKGRvY3VtZW50KSkge1xuICAgICAgLy8gSWdub3JlIGRvY3VtZW50cyBmcm9tIFPDqW5hdC5cbiAgICAgIGlmIChkb2N1bWVudE9yRGl2aXNpb24udWlkLnN1YnN0cmluZyg0LCA2KSA9PT0gXCJTTlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChza2lwKSB7XG4gICAgICAgIGlmIChkb2N1bWVudE9yRGl2aXNpb24udWlkID09PSBmaXJzdFVpZCkge1xuICAgICAgICAgIHNraXAgPSBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXdhaXQgcHJvY2Vzc0RvY3VtZW50T3JEaXZpc2lvbihkb2N1bWVudE9yRGl2aXNpb24sIGRvY3VtZW50c0Rpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICByZXR1cm4gZ2l0LmNvbW1pdEFuZFB1c2goZG9jdW1lbnRzRGlyLCBcIk5vdXZlbGxlIG1vaXNzb25cIiwgb3B0aW9ucy5yZW1vdGUpXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0RvY3VtZW50T3JEaXZpc2lvbihcbiAgZG9jdW1lbnRPckRpdmlzaW9uOiBhbnksXG4gIGRvY3VtZW50c0Rpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZG9jdW1lbnREaXIgPSBwYXRoRnJvbURvY3VtZW50VWlkKGRvY3VtZW50c0RpciwgZG9jdW1lbnRPckRpdmlzaW9uLnVpZClcbiAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudERpcilcblxuICBjb25zdCBmaWxlbmFtZUJ5U2hhMjU2OiB7IFtkaWdlc3Q6IHN0cmluZ106IHN0cmluZyB9ID0ge31cbiAgY29uc3QgaW5kZXhQYXRoID0gcGF0aC5qb2luKGRvY3VtZW50RGlyLCBcImluZGV4Lmpzb25cIilcbiAgY29uc3QgaW5kZXggPSAoXG4gICAgZnMucGF0aEV4aXN0c1N5bmMoaW5kZXhQYXRoKSA/IGZzLnJlYWRKc29uU3luYyhpbmRleFBhdGgpIDoge31cbiAgKSBhcyBEb2N1bWVudEZpbGVzSW5kZXhcblxuICBmb3IgKGNvbnN0IHsgZm9ybWF0LCB0eXBlLCB1cmwgfSBvZiBpdGVyRG9jdW1lbnRPckRpdmlzaW9uVXJscyhcbiAgICBkb2N1bWVudE9yRGl2aXNpb24sXG4gICkpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGAke3R5cGV9LiR7Zm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGYgPyBcInBkZlwiIDogXCJodG1sXCJ9YFxuXG4gICAgLy8gRmlsdGVyIGJ5IGZpbGUgZXh0ZW5zaW9uIGlmIG9wdGlvbiBpcyBwYXNzZWRcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gdXJsLnNwbGl0KFwiLlwiKS5wb3AoKVxuICAgIGlmIChvcHRpb25zLmZvcm1hdCAmJiBmaWxlRXh0ZW5zaW9uICYmIG9wdGlvbnMuZm9ybWF0ICE9PSBmaWxlRXh0ZW5zaW9uKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgIG9wdGlvbnMubGVnaXNsYXR1cmUudG9TdHJpbmcoKSAhPT0gZG9jdW1lbnRPckRpdmlzaW9uLmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIC8vIEZpbHRlciBieSBkb2N1bWVudCB0eXBlIGlmIG9wdGlvbiBpcyBwYXNzZWRcbiAgICBjb25zdCBkb2N1bWVudFR5cGUgPSBkb2N1bWVudE9yRGl2aXNpb24uY2xhc3NpZmljYXRpb24/LnR5cGU/LmNvZGVcbiAgICBpZiAoXG4gICAgICBvcHRpb25zW1wiZG9jdW1lbnQtdHlwZVwiXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhb3B0aW9uc1tcImRvY3VtZW50LXR5cGVcIl0uaW5jbHVkZXMoZG9jdW1lbnRUeXBlKVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBsZXQgZm9ybWF0RmlsZXNJbmZvcyA9IGluZGV4W2Zvcm1hdF0gPz8gKGluZGV4W2Zvcm1hdF0gPSBbXSlcbiAgICBsZXQgZmlsZUluZm9zID1cbiAgICAgIGZvcm1hdEZpbGVzSW5mb3MuZmluZCgoZmlsZSkgPT4gZmlsZS51cmwgPT09IHVybCkgPz9cbiAgICAgICh7fSBhcyBEb2N1bWVudEZpbGVJbmZvcylcbiAgICBpZiAoIWZvcm1hdEZpbGVzSW5mb3MuaW5jbHVkZXMoZmlsZUluZm9zKSkge1xuICAgICAgZm9ybWF0RmlsZXNJbmZvcy5wdXNoKGZpbGVJbmZvcylcbiAgICB9XG4gICAgZmlsZUluZm9zLnVybCA9IHVybFxuXG4gICAgaWYgKGZpbGVJbmZvcy5zdGF0dXMgPT09IDIwMCAmJiAhb3B0aW9ucy5mdWxsKSB7XG4gICAgICBmaWxlbmFtZUJ5U2hhMjU2W2ZpbGVJbmZvcy5zaGEyNTYgYXMgc3RyaW5nXSA9IGZpbGVuYW1lXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBmaWxlSW5mb3Muc3RhdHVzID09PSA0MDQgJiZcbiAgICAgICFvcHRpb25zW1wibm90LWZvdW5kXCJdICYmXG4gICAgICBkaWZmZXJlbmNlSW5EYXlzKFxuICAgICAgICB0b2RheSxcbiAgICAgICAgZG9jdW1lbnRPckRpdmlzaW9uLmN5Y2xlRGVWaWUuY2hyb25vLmRhdGVDcmVhdGlvbiA/P1xuICAgICAgICAgIChkb2N1bWVudE9yRGl2aXNpb24uY3ljbGVEZVZpZS5jaHJvbm8uZGF0ZURlcG90IGFzIERhdGUgfCBzdHJpbmcpLFxuICAgICAgKSA+IDEwXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmV0cmlldmluZyBkb2N1bWVudCBvciBkaXZpc2lvbiAke2RvY3VtZW50T3JEaXZpc2lvbi51aWR9IGF0ICR7dXJsfeKApmAsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhSZXRyeSh1cmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIGZpbGVuYW1lKVxuXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKClcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGFycmF5QnVmZmVyKVxuICAgICAgaWYgKFxuICAgICAgICBmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlBkZiAmJlxuICAgICAgICAhYnVmZmVyLnN1YmFycmF5KDAsIDQpLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcIiVQREZcIilcbiAgICAgICkge1xuICAgICAgICAvLyBJbnN0ZWFkIG9mIGEgUERGLCB0aGUgcmVjZWl2ZWQgZGF0YSBtYXkgYmUgYW4gSFRNTCBwYWdlIHdpdGggYSBtZXNzYWdlIGxpa2VcbiAgICAgICAgLy8gXCJEb2N1bWVudCBub24gZW5jb3JlIHB1Ymxpw6lcIi5cbiAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgICBQREYgXCIke3VybH1cIiBub3QgZm91bmQuYClcbiAgICAgICAgfVxuICAgICAgICBmcy5yZW1vdmVTeW5jKGZpbGVQYXRoKVxuICAgICAgICBkZWxldGUgZmlsZUluZm9zLmZpbGVuYW1lXG4gICAgICAgIGRlbGV0ZSBmaWxlSW5mb3Muc2hhMjU2XG4gICAgICAgIGZpbGVJbmZvcy5zdGF0dXMgPSA0MDRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNoYTI1NiA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGJ1ZmZlcikuZGlnZXN0KFwiaGV4XCIpXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nRmlsZW5hbWUgPSBmaWxlbmFtZUJ5U2hhMjU2W3NoYTI1Nl1cbiAgICAgICAgaWYgKGV4aXN0aW5nRmlsZW5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGJ1ZmZlciwge1xuICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgZmlsZUluZm9zLmZpbGVuYW1lID0gZmlsZW5hbWVcbiAgICAgICAgICBmaWxlbmFtZUJ5U2hhMjU2W3NoYTI1Nl0gPSBmaWxlbmFtZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbGVJbmZvcy5maWxlbmFtZSA9IGV4aXN0aW5nRmlsZW5hbWVcbiAgICAgICAgfVxuICAgICAgICBmaWxlSW5mb3Muc2hhMjU2ID0gc2hhMjU2XG4gICAgICAgIGZpbGVJbmZvcy5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXNcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYCAgUGFnZSBcIiR7dXJsfVwiIG5vdCBmb3VuZC5gKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGAgIEVycm9yOlxcbiR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7IGNvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCB9LFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIDIsXG4gICAgICAgICAgKX1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKGZpbGVQYXRoKVxuICAgICAgZGVsZXRlIGZpbGVJbmZvcy5maWxlbmFtZVxuICAgICAgZGVsZXRlIGZpbGVJbmZvcy5zaGEyNTZcbiAgICAgIGZpbGVJbmZvcy5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXNcbiAgICB9XG4gIH1cblxuICBmcy53cml0ZUpzb25TeW5jKGluZGV4UGF0aCwgaW5kZXgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiwgc3BhY2VzOiAyIH0pXG59XG5cbmZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICByZXR1cm4gcmV0cmlldmVEb2N1bWVudHMob3B0aW9ucylcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwicmV0cmlldmVfZG9jdW1lbnRzLnRzXCIpKSB7XG4gIG1haW4ocHJvY2Vzcy5hcmd2KVxuICAgIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH0pXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsU0FBU0MsVUFBVSxRQUFRLFFBQVE7QUFDbkMsU0FBU0Ms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
@@ -34,30 +34,30 @@ var _datasets = require("../datasets");
34
34
  var _legislatures = require("../types/legislatures");
35
35
  var _cli_helpers = require("./shared/cli_helpers");
36
36
  var _process_open_dataset = require("./process_open_dataset");
37
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
38
- 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; }
39
- 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; } } }; }
40
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
37
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
38
+ 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; }
39
+ 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; } } }; }
40
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
41
41
  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."); }
42
- 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); }
43
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
44
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
45
- 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; }
46
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
47
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
48
- var optionsDefinitions = [_cli_helpers.categoriesOption, _cli_helpers.legislatureOption, _cli_helpers.silentOption, _cli_helpers.dataDirDefaultOption, _cli_helpers.fetchOption, _cli_helpers.fetchDocumentsOption];
42
+ 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; } }
43
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
44
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
45
+ 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; }
46
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
47
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
48
+ var optionsDefinitions = [_cli_helpers.categoriesOption, _cli_helpers.legislatureOption, _cli_helpers.silentOption, _cli_helpers.dataDirDefaultOption, _cli_helpers.fetchOption, _cli_helpers.fetchDocumentsOption, _cli_helpers.parseDocumentsOption, _cli_helpers.documentFormatOption];
49
49
  var options = (0, _commandLineArgs["default"])(optionsDefinitions);
50
50
  function retrieveOpenData(_x) {
51
51
  return _retrieveOpenData.apply(this, arguments);
52
52
  }
53
53
  function _retrieveOpenData() {
54
- _retrieveOpenData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dataDir) {
54
+ _retrieveOpenData = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(dataDir) {
55
55
  var enabledDatasets, chosenDatasets, _iterator, _step, dataset;
56
56
  return _regeneratorRuntime().wrap(function _callee$(_context) {
57
57
  while (1) switch (_context.prev = _context.next) {
58
58
  case 0:
59
59
  enabledDatasets = (0, _datasets.getEnabledDatasets)(options.categories);
60
- chosenDatasets = [].concat(_toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes ? _datasets.datasets.acteursEtOrganes : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Agendas ? _datasets.datasets.agendas : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Amendements ? _datasets.datasets.amendements : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs ? _datasets.datasets.dossiersLegislatifs : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Scrutins ? _datasets.datasets.scrutins : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Questions ? _datasets.datasets.questions : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.TextesLoi ? _datasets.datasets.textesLoi : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances ? _datasets.datasets.comptesRendusSeances : []));
60
+ chosenDatasets = [].concat(_toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes ? _datasets.datasets.acteursEtOrganes : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Agendas ? _datasets.datasets.agendas : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Amendements ? _datasets.datasets.amendements : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs ? _datasets.datasets.dossiersLegislatifs : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Scrutins ? _datasets.datasets.scrutins : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Questions ? _datasets.datasets.questions : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances ? _datasets.datasets.comptesRendusSeances : []));
61
61
  if (options.legislature !== 0 && options.legislature !== undefined) {
62
62
  chosenDatasets = chosenDatasets.filter(function (dataset) {
63
63
  return dataset.legislature === _legislatures.Legislature.All || options.legislature === dataset.legislature;
@@ -68,38 +68,35 @@ function _retrieveOpenData() {
68
68
  _iterator.s();
69
69
  case 6:
70
70
  if ((_step = _iterator.n()).done) {
71
- _context.next = 13;
71
+ _context.next = 12;
72
72
  break;
73
73
  }
74
74
  dataset = _step.value;
75
- if (typeof dataset.download !== "function") {
76
- dataset.download = _process_open_dataset.processDataset;
77
- }
78
- _context.next = 11;
79
- return dataset.download({
75
+ _context.next = 10;
76
+ return (0, _process_open_dataset.processDataset)({
80
77
  dataDir: dataDir,
81
78
  dataset: dataset,
82
79
  options: options
83
80
  });
84
- case 11:
81
+ case 10:
85
82
  _context.next = 6;
86
83
  break;
87
- case 13:
88
- _context.next = 18;
84
+ case 12:
85
+ _context.next = 17;
89
86
  break;
90
- case 15:
91
- _context.prev = 15;
87
+ case 14:
88
+ _context.prev = 14;
92
89
  _context.t0 = _context["catch"](4);
93
90
  _iterator.e(_context.t0);
94
- case 18:
95
- _context.prev = 18;
91
+ case 17:
92
+ _context.prev = 17;
96
93
  _iterator.f();
97
- return _context.finish(18);
98
- case 21:
94
+ return _context.finish(17);
95
+ case 20:
99
96
  case "end":
100
97
  return _context.stop();
101
98
  }
102
- }, _callee, null, [[4, 15, 18, 21]]);
99
+ }, _callee, null, [[4, 14, 17, 20]]);
103
100
  }));
104
101
  return _retrieveOpenData.apply(this, arguments);
105
102
  }
@@ -107,4 +104,4 @@ retrieveOpenData(options.dataDir)["catch"](function (error) {
107
104
  console.log(error);
108
105
  process.exit(1);
109
106
  });
110
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGF0YXNldHMiLCJfbGVnaXNsYXR1cmVzIiwiX2NsaV9oZWxwZXJzIiwiX3Byb2Nlc3Nfb3Blbl9kYXRhc2V0Iiwib2JqIiwiX19lc01vZHVsZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwic3RlcCIsIl9lMiIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJpdGVyIiwibGVuIiwiYXJyMiIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJ1bmRlZmluZWQiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJjYXRlZ29yaWVzT3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsImZldGNoT3B0aW9uIiwiZmV0Y2hEb2N1bWVudHNPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicmV0cmlldmVPcGVuRGF0YSIsIl94IiwiX3JldHJpZXZlT3BlbkRhdGEiLCJfY2FsbGVlIiwiZGF0YURpciIsImVuYWJsZWREYXRhc2V0cyIsImNob3NlbkRhdGFzZXRzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJkYXRhc2V0IiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImdldEVuYWJsZWREYXRhc2V0cyIsImNhdGVnb3JpZXMiLCJjb25jYXQiLCJFbmFibGVkRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiZGF0YXNldHMiLCJhY3RldXJzRXRPcmdhbmVzIiwiQWdlbmRhcyIsImFnZW5kYXMiLCJBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRzIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJTY3J1dGlucyIsInNjcnV0aW5zIiwiUXVlc3Rpb25zIiwicXVlc3Rpb25zIiwiVGV4dGVzTG9pIiwidGV4dGVzTG9pIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsImxlZ2lzbGF0dXJlIiwiZmlsdGVyIiwiTGVnaXNsYXR1cmUiLCJBbGwiLCJkb3dubG9hZCIsInByb2Nlc3NEYXRhc2V0IiwidDAiLCJjb25zb2xlIiwibG9nIiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9vcGVuX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IHtcbiAgRGF0YXNldCxcbiAgZGF0YXNldHMsXG4gIEVuYWJsZWREYXRhc2V0cyxcbiAgZ2V0RW5hYmxlZERhdGFzZXRzLFxufSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgTGVnaXNsYXR1cmUgfSBmcm9tIFwiLi4vdHlwZXMvbGVnaXNsYXR1cmVzXCJcbmltcG9ydCB7XG4gIGNhdGVnb3JpZXNPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBmZXRjaE9wdGlvbixcbiAgZmV0Y2hEb2N1bWVudHNPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5pbXBvcnQgeyBwcm9jZXNzRGF0YXNldCB9IGZyb20gXCIuL3Byb2Nlc3Nfb3Blbl9kYXRhc2V0XCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICBjYXRlZ29yaWVzT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgZmV0Y2hPcHRpb24sXG4gIGZldGNoRG9jdW1lbnRzT3B0aW9uLFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlT3BlbkRhdGEoZGF0YURpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IGdldEVuYWJsZWREYXRhc2V0cyhvcHRpb25zLmNhdGVnb3JpZXMpXG5cbiAgbGV0IGNob3NlbkRhdGFzZXRzID0gW1xuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lc1xuICAgICAgPyBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzXG4gICAgICA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMgPyBkYXRhc2V0cy5hZ2VuZGFzIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHNcbiAgICAgID8gZGF0YXNldHMuYW1lbmRlbWVudHNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuRG9zc2llcnNMZWdpc2xhdGlmc1xuICAgICAgPyBkYXRhc2V0cy5kb3NzaWVyc0xlZ2lzbGF0aWZzXG4gICAgICA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zID8gZGF0YXNldHMuc2NydXRpbnMgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMgPyBkYXRhc2V0cy5xdWVzdGlvbnMgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5UZXh0ZXNMb2kgPyBkYXRhc2V0cy50ZXh0ZXNMb2kgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlc1xuICAgICAgPyBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlc1xuICAgICAgOiBbXSksXG4gIF1cblxuICBpZiAob3B0aW9ucy5sZWdpc2xhdHVyZSAhPT0gMCAmJiBvcHRpb25zLmxlZ2lzbGF0dXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjaG9zZW5EYXRhc2V0cyA9IGNob3NlbkRhdGFzZXRzLmZpbHRlcihcbiAgICAgIChkYXRhc2V0OiBEYXRhc2V0KSA9PlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgfHxcbiAgICAgICAgb3B0aW9ucy5sZWdpc2xhdHVyZSA9PT0gZGF0YXNldC5sZWdpc2xhdHVyZSxcbiAgICApXG4gIH1cblxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMpIHtcbiAgICBpZiAodHlwZW9mIGRhdGFzZXQuZG93bmxvYWQgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgZGF0YXNldC5kb3dubG9hZCA9IHByb2Nlc3NEYXRhc2V0XG4gICAgfVxuXG4gICAgYXdhaXQgZGF0YXNldC5kb3dubG9hZCh7IGRhdGFEaXIsIGRhdGFzZXQsIG9wdGlvbnMgfSlcbiAgfVxufVxuXG5yZXRyaWV2ZU9wZW5EYXRhKG9wdGlvbnMuZGF0YURpcikuY2F0Y2goKGVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGVycm9yKVxuICBwcm9jZXNzLmV4aXQoMSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBTUEsSUFBQUUsYUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBUUEsSUFBQUkscUJBQUEsR0FBQUosT0FBQTtBQUF1RCxTQUFBRCx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBQUEsU0FBQUUsb0JBQUEsa0JBZnZELHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENB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
107
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGF0YXNldHMiLCJfbGVnaXNsYXR1cmVzIiwiX2NsaV9oZWxwZXJzIiwiX3Byb2Nlc3Nfb3Blbl9kYXRhc2V0IiwiZSIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9uIiwiRiIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJjYXRlZ29yaWVzT3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsImZldGNoT3B0aW9uIiwiZmV0Y2hEb2N1bWVudHNPcHRpb24iLCJwYXJzZURvY3VtZW50c09wdGlvbiIsImRvY3VtZW50Rm9ybWF0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsInJldHJpZXZlT3BlbkRhdGEiLCJfeCIsIl9yZXRyaWV2ZU9wZW5EYXRhIiwiX2NhbGxlZSIsImRhdGFEaXIiLCJlbmFibGVkRGF0YXNldHMiLCJjaG9zZW5EYXRhc2V0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZGF0YXNldCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwiY29uY2F0IiwiRW5hYmxlZERhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImRhdGFzZXRzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsIkFnZW5kYXMiLCJhZ2VuZGFzIiwiQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50cyIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwiU2NydXRpbnMiLCJzY3J1dGlucyIsIlF1ZXN0aW9ucyIsInF1ZXN0aW9ucyIsIkNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJsZWdpc2xhdHVyZSIsInVuZGVmaW5lZCIsImZpbHRlciIsIkxlZ2lzbGF0dXJlIiwiQWxsIiwicHJvY2Vzc0RhdGFzZXQiLCJ0MCIsImVycm9yIiwiY29uc29sZSIsImxvZyIsInByb2Nlc3MiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfb3Blbl9kYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCB7XG4gIERhdGFzZXQsXG4gIGRhdGFzZXRzLFxuICBFbmFibGVkRGF0YXNldHMsXG4gIGdldEVuYWJsZWREYXRhc2V0cyxcbn0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5pbXBvcnQge1xuICBjYXRlZ29yaWVzT3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgZmV0Y2hPcHRpb24sXG4gIGZldGNoRG9jdW1lbnRzT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICBwYXJzZURvY3VtZW50c09wdGlvbixcbiAgZG9jdW1lbnRGb3JtYXRPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5pbXBvcnQgeyBwcm9jZXNzRGF0YXNldCB9IGZyb20gXCIuL3Byb2Nlc3Nfb3Blbl9kYXRhc2V0XCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICBjYXRlZ29yaWVzT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgZmV0Y2hPcHRpb24sXG4gIGZldGNoRG9jdW1lbnRzT3B0aW9uLFxuICBwYXJzZURvY3VtZW50c09wdGlvbixcbiAgZG9jdW1lbnRGb3JtYXRPcHRpb24sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVPcGVuRGF0YShkYXRhRGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcblxuICBsZXQgY2hvc2VuRGF0YXNldHMgPSBbXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzXG4gICAgICA/IGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcyA/IGRhdGFzZXRzLmFnZW5kYXMgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50c1xuICAgICAgPyBkYXRhc2V0cy5hbWVuZGVtZW50c1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzXG4gICAgICA/IGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMgPyBkYXRhc2V0cy5zY3J1dGlucyA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlF1ZXN0aW9ucyA/IGRhdGFzZXRzLnF1ZXN0aW9ucyA6IFtdKSxcbiAgICAuLi4oZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzXG4gICAgICA/IGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzXG4gICAgICA6IFtdKSxcbiAgXVxuXG4gIGlmIChvcHRpb25zLmxlZ2lzbGF0dXJlICE9PSAwICYmIG9wdGlvbnMubGVnaXNsYXR1cmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNob3NlbkRhdGFzZXRzID0gY2hvc2VuRGF0YXNldHMuZmlsdGVyKFxuICAgICAgKGRhdGFzZXQ6IERhdGFzZXQpID0+XG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCB8fFxuICAgICAgICBvcHRpb25zLmxlZ2lzbGF0dXJlID09PSBkYXRhc2V0LmxlZ2lzbGF0dXJlLFxuICAgIClcbiAgfVxuXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cykge1xuICAgIGF3YWl0IHByb2Nlc3NEYXRhc2V0KHsgZGF0YURpciwgZGF0YXNldCwgb3B0aW9ucyB9KVxuICB9XG59XG5cbnJldHJpZXZlT3BlbkRhdGEob3B0aW9ucy5kYXRhRGlyKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLGdCQUFBLEdBQUFDLHNC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