dmencu 3.2.21 → 3.4.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 (258) hide show
  1. package/README.md +42 -42
  2. package/ayuda/asignacion.md +16 -0
  3. package/ayuda/circuito-encuesta.md +27 -0
  4. package/ayuda/control.md +13 -0
  5. package/ayuda/dm-cambiar-modo.md +16 -0
  6. package/ayuda/dm-relevamiento.md +20 -0
  7. package/ayuda/dm-sincronizar.md +18 -0
  8. package/ayuda/fin-de-campo.md +14 -0
  9. package/ayuda/metadatos.md +14 -0
  10. package/ayuda/procesar.md +13 -0
  11. package/ayuda/recepcion.md +20 -0
  12. package/ayuda/supervision.md +9 -0
  13. package/ayuda/usuarios.md +12 -0
  14. package/ayuda/varios.md +23 -0
  15. package/dist/client/client/client.js +101 -4
  16. package/dist/client/client/css/menu.styl +29 -0
  17. package/dist/client/unlogged/abrir-formulario.js +1 -1
  18. package/dist/client/unlogged/bypass-formulario.d.ts +6 -42
  19. package/dist/client/unlogged/bypass-formulario.js +84 -219
  20. package/dist/client/unlogged/calculos-encuesta.js +112 -38
  21. package/dist/client/unlogged/css/formulario-react.styl +9 -0
  22. package/dist/client/unlogged/helpers-casilleros.d.ts +1 -1
  23. package/dist/client/unlogged/helpers-casilleros.js +12 -18
  24. package/dist/client/unlogged/helpers-formulario.d.ts +16 -0
  25. package/dist/client/unlogged/helpers-formulario.js +88 -0
  26. package/dist/client/unlogged/redux-formulario.d.ts +1 -2
  27. package/dist/client/unlogged/redux-formulario.js +21 -31
  28. package/dist/client/unlogged/render-config.d.ts +5 -1
  29. package/dist/client/unlogged/render-config.js +14 -1
  30. package/dist/client/unlogged/render-formulario.d.ts +3 -6
  31. package/dist/client/unlogged/render-formulario.js +71 -69
  32. package/dist/client/unlogged/render-formulario.tsx +100 -57
  33. package/dist/client/unlogged/render-general.d.ts +2 -0
  34. package/dist/client/unlogged/render-general.js +2 -1
  35. package/dist/client/unlogged/render-general.tsx +2 -1
  36. package/dist/client/unlogged/render-init.d.ts +1 -0
  37. package/dist/client/unlogged/render-init.js +9 -2
  38. package/dist/client/unlogged/tipos.d.ts +93 -41
  39. package/dist/client/unlogged/tipos.js +1 -1
  40. package/dist/server/app-dmencu.d.ts +1435 -0
  41. package/dist/server/app-dmencu.js +1091 -0
  42. package/dist/server/ayuda.d.ts +19 -0
  43. package/dist/server/ayuda.js +224 -0
  44. package/dist/server/def-config.d.ts +1 -0
  45. package/dist/server/def-config.js +123 -0
  46. package/dist/server/procedures-dmencu.d.ts +43 -0
  47. package/dist/server/procedures-dmencu.js +2313 -0
  48. package/dist/server/server/app-dmencu.d.ts +49 -91
  49. package/dist/server/server/app-dmencu.js +151 -52
  50. package/dist/server/server/ayuda.d.ts +19 -0
  51. package/dist/server/server/ayuda.js +224 -0
  52. package/dist/server/server/procedures-dmencu.d.ts +34 -2
  53. package/dist/server/server/procedures-dmencu.js +93 -51
  54. package/dist/server/server/setters-rea-no-rea.d.ts +13 -0
  55. package/dist/server/server/setters-rea-no-rea.js +35 -0
  56. package/dist/server/server/table-areas.js +4 -4
  57. package/dist/server/server/table-areas_asignacion_general.js +2 -1
  58. package/dist/server/server/table-control_campo.js +4 -4
  59. package/dist/server/server/table-no_rea.js +4 -2
  60. package/dist/server/server/table-no_rea_sup.js +7 -3
  61. package/dist/server/server/table-personal.js +1 -1
  62. package/dist/server/server/table-tareas_tem.js +2 -2
  63. package/dist/server/server/table-tem.js +2 -2
  64. package/dist/server/server/types-dmencu.d.ts +53 -2
  65. package/dist/server/server/types-dmencu.js +2 -1
  66. package/dist/server/setters-rea-no-rea.d.ts +13 -0
  67. package/dist/server/setters-rea-no-rea.js +35 -0
  68. package/dist/server/table-acciones.d.ts +2 -0
  69. package/dist/server/table-acciones.js +45 -0
  70. package/dist/server/table-area_enc_proximas.d.ts +2 -0
  71. package/dist/server/table-area_enc_proximas.js +30 -0
  72. package/dist/server/table-areas.d.ts +4 -0
  73. package/dist/server/table-areas.js +112 -0
  74. package/dist/server/table-areas_asignacion_general.d.ts +2 -0
  75. package/dist/server/table-areas_asignacion_general.js +86 -0
  76. package/dist/server/table-barrios.d.ts +2 -0
  77. package/dist/server/table-barrios.js +35 -0
  78. package/dist/server/table-comunas.d.ts +2 -0
  79. package/dist/server/table-comunas.js +33 -0
  80. package/dist/server/table-control_campo.d.ts +12 -0
  81. package/dist/server/table-control_campo.js +119 -0
  82. package/dist/server/table-control_dias_carga.d.ts +2 -0
  83. package/dist/server/table-control_dias_carga.js +63 -0
  84. package/dist/server/table-control_resumen.d.ts +2 -0
  85. package/dist/server/table-control_resumen.js +19 -0
  86. package/dist/server/table-diccionario.d.ts +2 -0
  87. package/dist/server/table-diccionario.js +32 -0
  88. package/dist/server/table-dictra.d.ts +2 -0
  89. package/dist/server/table-dictra.js +46 -0
  90. package/dist/server/table-dicvar.d.ts +2 -0
  91. package/dist/server/table-dicvar.js +32 -0
  92. package/dist/server/table-encuestadores.d.ts +13 -0
  93. package/dist/server/table-encuestadores.js +75 -0
  94. package/dist/server/table-estados.d.ts +2 -0
  95. package/dist/server/table-estados.js +47 -0
  96. package/dist/server/table-estados_acciones.d.ts +2 -0
  97. package/dist/server/table-estados_acciones.js +40 -0
  98. package/dist/server/table-fracciones.d.ts +2 -0
  99. package/dist/server/table-fracciones.js +37 -0
  100. package/dist/server/table-grilla_hoja_ruta.d.ts +2 -0
  101. package/dist/server/table-grilla_hoja_ruta.js +93 -0
  102. package/dist/server/table-historial_tem.d.ts +2 -0
  103. package/dist/server/table-historial_tem.js +57 -0
  104. package/dist/server/table-hogares.d.ts +2 -0
  105. package/dist/server/table-hogares.js +156 -0
  106. package/dist/server/table-hogares_sup.d.ts +2 -0
  107. package/dist/server/table-hogares_sup.js +191 -0
  108. package/dist/server/table-inconsistencias_cumplen_condicion.d.ts +2 -0
  109. package/dist/server/table-inconsistencias_cumplen_condicion.js +33 -0
  110. package/dist/server/table-manzanas.d.ts +2 -0
  111. package/dist/server/table-manzanas.js +36 -0
  112. package/dist/server/table-mis_encuestadores.d.ts +2 -0
  113. package/dist/server/table-mis_encuestadores.js +77 -0
  114. package/dist/server/table-mis_tareas.d.ts +2 -0
  115. package/dist/server/table-mis_tareas.js +18 -0
  116. package/dist/server/table-mis_tareas_areas.d.ts +2 -0
  117. package/dist/server/table-mis_tareas_areas.js +20 -0
  118. package/dist/server/table-modos_dm.d.ts +2 -0
  119. package/dist/server/table-modos_dm.js +28 -0
  120. package/dist/server/table-no_rea.js +38 -0
  121. package/dist/server/table-no_rea_sup.js +36 -0
  122. package/dist/server/table-operaciones.d.ts +2 -0
  123. package/dist/server/table-operaciones.js +30 -0
  124. package/dist/server/table-parametros.d.ts +2 -0
  125. package/dist/server/table-parametros.js +40 -0
  126. package/dist/server/table-permisos.d.ts +2 -0
  127. package/dist/server/table-permisos.js +31 -0
  128. package/dist/server/table-personal.d.ts +5 -0
  129. package/dist/server/table-personal.js +62 -0
  130. package/dist/server/table-personal_rol.d.ts +2 -0
  131. package/dist/server/table-personal_rol.js +42 -0
  132. package/dist/server/table-personas.d.ts +2 -0
  133. package/dist/server/table-personas.js +448 -0
  134. package/dist/server/table-personas_sup.d.ts +2 -0
  135. package/dist/server/table-personas_sup.js +93 -0
  136. package/dist/server/table-radios.d.ts +2 -0
  137. package/dist/server/table-radios.js +37 -0
  138. package/dist/server/table-rea.d.ts +2 -0
  139. package/dist/server/table-rea.js +38 -0
  140. package/dist/server/table-rea_sup.d.ts +2 -0
  141. package/dist/server/table-rea_sup.js +38 -0
  142. package/dist/server/table-recepcionistas.d.ts +2 -0
  143. package/dist/server/table-recepcionistas.js +18 -0
  144. package/dist/server/table-recuperadores.d.ts +2 -0
  145. package/dist/server/table-recuperadores.js +18 -0
  146. package/dist/server/table-roles.d.ts +2 -0
  147. package/dist/server/table-roles.js +33 -0
  148. package/dist/server/table-roles_permisos.d.ts +2 -0
  149. package/dist/server/table-roles_permisos.js +36 -0
  150. package/dist/server/table-roles_subordinados.d.ts +2 -0
  151. package/dist/server/table-roles_subordinados.js +31 -0
  152. package/dist/server/table-semanas.d.ts +2 -0
  153. package/dist/server/table-semanas.js +42 -0
  154. package/dist/server/table-sincronizaciones.d.ts +2 -0
  155. package/dist/server/table-sincronizaciones.js +30 -0
  156. package/dist/server/table-supervisores.d.ts +2 -0
  157. package/dist/server/table-supervisores.js +18 -0
  158. package/dist/server/table-tareas.d.ts +2 -0
  159. package/dist/server/table-tareas.js +48 -0
  160. package/dist/server/table-tareas_areas.d.ts +7 -0
  161. package/dist/server/table-tareas_areas.js +112 -0
  162. package/dist/server/table-tareas_proximas.d.ts +2 -0
  163. package/dist/server/table-tareas_proximas.js +48 -0
  164. package/dist/server/table-tareas_tem.d.ts +14 -0
  165. package/dist/server/table-tareas_tem.js +206 -0
  166. package/dist/server/table-tareas_tem_analisis_campo.d.ts +2 -0
  167. package/dist/server/table-tareas_tem_analisis_campo.js +31 -0
  168. package/dist/server/table-tareas_tem_fin_campo.d.ts +3 -0
  169. package/dist/server/table-tareas_tem_fin_campo.js +56 -0
  170. package/dist/server/table-tareas_tem_ingreso.d.ts +2 -0
  171. package/dist/server/table-tareas_tem_ingreso.js +31 -0
  172. package/dist/server/table-tareas_tem_procesamiento.d.ts +2 -0
  173. package/dist/server/table-tareas_tem_procesamiento.js +34 -0
  174. package/dist/server/table-tareas_tem_recepcion.d.ts +6 -0
  175. package/dist/server/table-tareas_tem_recepcion.js +59 -0
  176. package/dist/server/table-tem.d.ts +3 -0
  177. package/dist/server/table-tem.js +247 -0
  178. package/dist/server/table-tem_asignacion.d.ts +2 -0
  179. package/dist/server/table-tem_asignacion.js +50 -0
  180. package/dist/server/table-tem_borradas.d.ts +2 -0
  181. package/dist/server/table-tem_borradas.js +35 -0
  182. package/dist/server/table-usuarios.d.ts +2 -0
  183. package/dist/server/table-usuarios.js +63 -0
  184. package/dist/server/table-visitas.d.ts +2 -0
  185. package/dist/server/table-visitas.js +91 -0
  186. package/dist/server/table-visitas_sup.d.ts +2 -0
  187. package/dist/server/table-visitas_sup.js +91 -0
  188. package/dist/server/table-viviendas.d.ts +2 -0
  189. package/dist/server/table-viviendas.js +299 -0
  190. package/dist/server/types-dmencu.d.ts +114 -0
  191. package/dist/server/types-dmencu.js +34 -0
  192. package/dist/server/unlogged/tipos.d.ts +93 -41
  193. package/dist/server/unlogged/tipos.js +1 -1
  194. package/dist/test/app-para-tests.d.ts +1117 -0
  195. package/dist/test/app-para-tests.js +95 -0
  196. package/dist/test/test-ayuda.d.ts +1 -0
  197. package/dist/test/test-ayuda.js +183 -0
  198. package/dist/test/test-caches-rea.d.ts +1 -0
  199. package/dist/test/test-caches-rea.js +243 -0
  200. package/dist/test/test-helpers-casilleros.d.ts +1 -0
  201. package/dist/test/test-helpers-casilleros.js +154 -0
  202. package/dist/test/test-helpers-formulario.d.ts +1 -0
  203. package/dist/test/test-helpers-formulario.js +95 -0
  204. package/dist/test/test-impacto-rea-no-rea-en-bd.d.ts +1 -0
  205. package/dist/test/test-impacto-rea-no-rea-en-bd.js +243 -0
  206. package/dist/test/test-menu-segun-rol.d.ts +1 -0
  207. package/dist/test/test-menu-segun-rol.js +170 -0
  208. package/dist/test/test-setters-rea-no-rea.d.ts +1 -0
  209. package/dist/test/test-setters-rea-no-rea.js +95 -0
  210. package/dist/test/test.d.ts +7 -0
  211. package/dist/test/test.js +9 -2
  212. package/dist/unlogged/helpers-casilleros.d.ts +1 -1
  213. package/dist/unlogged/helpers-casilleros.js +12 -18
  214. package/dist/unlogged/helpers-formulario.d.ts +16 -0
  215. package/dist/unlogged/helpers-formulario.js +88 -0
  216. package/dist/unlogged/tipos.d.ts +20 -2
  217. package/dist/unlogged/tipos.js +1 -1
  218. package/dist/unlogged/unlogged/abrir-formulario.js +1 -1
  219. package/dist/unlogged/unlogged/bypass-formulario.d.ts +6 -42
  220. package/dist/unlogged/unlogged/bypass-formulario.js +84 -219
  221. package/dist/unlogged/unlogged/css/formulario-react.styl +9 -0
  222. package/dist/unlogged/unlogged/helpers-casilleros.js +7 -14
  223. package/dist/unlogged/unlogged/helpers-formulario.d.ts +16 -0
  224. package/dist/unlogged/unlogged/helpers-formulario.js +88 -0
  225. package/dist/unlogged/unlogged/redux-formulario.d.ts +1 -2
  226. package/dist/unlogged/unlogged/redux-formulario.js +21 -31
  227. package/dist/unlogged/unlogged/render-config.d.ts +5 -1
  228. package/dist/unlogged/unlogged/render-config.js +14 -1
  229. package/dist/unlogged/unlogged/render-formulario.d.ts +3 -6
  230. package/dist/unlogged/unlogged/render-formulario.js +71 -69
  231. package/dist/unlogged/unlogged/render-formulario.tsx +100 -57
  232. package/dist/unlogged/unlogged/render-general.d.ts +2 -0
  233. package/dist/unlogged/unlogged/render-general.js +2 -1
  234. package/dist/unlogged/unlogged/render-general.tsx +2 -1
  235. package/dist/unlogged/unlogged/render-init.d.ts +1 -0
  236. package/dist/unlogged/unlogged/render-init.js +9 -2
  237. package/dist/unlogged/unlogged/tipos.d.ts +93 -41
  238. package/dist/unlogged/unlogged/tipos.js +1 -1
  239. package/dist/unlogged/unlogged/unlogged.js +15 -2
  240. package/install/accion_cumple_condicion.sql +1 -1
  241. package/install/generador_accion_cumple_condicion.sql +2 -2
  242. package/install/tarea_cumple_condicion.sql +1 -1
  243. package/install/xcalcular_resultado_trg.sql +1 -1
  244. package/package.json +24 -18
  245. package/dist/server/server/table-no_rea copy.js +0 -38
  246. package/dist/server/server/table-no_rea_sup copy.js +0 -36
  247. package/dist/unlogged/bypass-formulario.d.ts +0 -198
  248. package/dist/unlogged/bypass-formulario.js +0 -1226
  249. package/dist/unlogged/redux-formulario.d.ts +0 -440
  250. package/dist/unlogged/redux-formulario.js +0 -324
  251. package/dist/unlogged/render-config.d.ts +0 -52
  252. package/dist/unlogged/render-config.js +0 -161
  253. package/dist/unlogged/unlogged/bypass-formulario copy.d.ts +0 -198
  254. package/dist/unlogged/unlogged/bypass-formulario copy.js +0 -1226
  255. package/dist/unlogged/unlogged/helpers.d.ts +0 -14
  256. package/dist/unlogged/unlogged/helpers.js +0 -129
  257. /package/dist/server/{server/table-no_rea copy.d.ts → table-no_rea.d.ts} +0 -0
  258. /package/dist/server/{server/table-no_rea_sup copy.d.ts → table-no_rea_sup.d.ts} +0 -0
@@ -59,7 +59,7 @@ export type CasilleroBase = {
59
59
  optativo?: boolean | null;
60
60
  libre?: boolean | null;
61
61
  valor_ns_nc?: any;
62
- despliegue?: string;
62
+ despliegue?: string | null;
63
63
  longitud?: string;
64
64
  };
65
65
  export type Opcion = CasilleroBase & {
@@ -225,15 +225,19 @@ export type RespuestasUnaUA = {
225
225
  export type RespuestaLasUA = {
226
226
  [ua in IdUnidadAnalisis]: ObjetoNumeradoOArray<Respuestas>;
227
227
  };
228
- export type Respuestas = RespuestasUnaUA & RespuestaLasUA;
229
- export type RespuestasRaiz = Respuestas & {
228
+ export type CodReaNoRea = {
229
+ codRea: number | null;
230
+ codNoRea: number | null;
231
+ codReaSup: number | null;
232
+ codNoReaSup: number | null;
233
+ };
234
+ export type ResultadoResumen = CodReaNoRea & {
230
235
  resumenEstado: ResumenEstado;
231
236
  resumenEstadoSup: ResumenEstado;
237
+ };
238
+ export type Respuestas = RespuestasUnaUA & RespuestaLasUA;
239
+ export type RespuestasRaiz = Respuestas & ResultadoResumen & {
232
240
  $dirty: boolean;
233
- codNoRea: string | null;
234
- codRea: number | null;
235
- codNoReaSup: string | null;
236
- codReaSup: number | null;
237
241
  };
238
242
  export type UnidadAnalisis = {
239
243
  unidad_analisis: IdUnidadAnalisis;
@@ -295,7 +299,7 @@ export type Cargas = {
295
299
  };
296
300
  export type EstructuraRowValidator = Structure<IdVariable, Valor, IdFin>;
297
301
  export type ModoDespliegue = 'metadatos' | 'relevamiento' | 'PDF';
298
- export type PantallaNavegacion = 'hdr' | 'sincronizacion' | 'sincronizacion_requerida' | 'modo';
302
+ export type PantallaNavegacion = 'hdr' | 'sincronizacion' | 'sincronizacion_requerida' | 'modo' | 'ayuda';
299
303
  export type InfoFormulario = {
300
304
  casilleros: Formulario;
301
305
  estructuraRowValidator: EstructuraRowValidator;
@@ -324,6 +328,53 @@ export type TareasEstructura = {
324
328
  };
325
329
  };
326
330
  };
331
+ export type TipoCondicion = 'no_rea' | 'no_rea_sup' | 'rea' | 'rea_sup';
332
+ export type NoRea = {
333
+ operativo: string;
334
+ no_rea: number;
335
+ descripcion: string;
336
+ grupo: string;
337
+ variable: string;
338
+ valor: string;
339
+ grupo0: string;
340
+ orden: number;
341
+ };
342
+ export type NoReaSup = {
343
+ operativo: string;
344
+ no_rea_sup: number;
345
+ desc_norea_sup: string;
346
+ grupo_sup: string;
347
+ variable_sup: string;
348
+ valor_sup: string;
349
+ grupo0_sup: string;
350
+ orden: number;
351
+ };
352
+ export type Rea = {
353
+ operativo: string;
354
+ rea: number;
355
+ descripcion: string;
356
+ condicion: string;
357
+ condicion_js: string;
358
+ orden: number;
359
+ es_positiva: boolean;
360
+ tarea: string | null;
361
+ };
362
+ export type ReaSup = {
363
+ operativo: string;
364
+ rea_sup: number;
365
+ descripcion: string;
366
+ condicion: string;
367
+ condicion_js: string;
368
+ orden: number;
369
+ es_positiva: boolean;
370
+ tarea: string | null;
371
+ };
372
+ export type MapeoTipoItem = {
373
+ 'rea': Rea;
374
+ 'no_rea': NoRea;
375
+ 'rea_sup': ReaSup;
376
+ 'no_rea_sup': NoReaSup;
377
+ };
327
378
  export type Estructura = {
328
379
  formularios: {
329
380
  [nombreFormulario in IdFormulario]: InfoFormulario;
@@ -339,22 +390,10 @@ export type Estructura = {
339
390
  configSorteo: ConfiguracionSorteo;
340
391
  habilitacionBotonFormulario: ConfiguracionHabilitarBotonFormulario;
341
392
  conReaHogar: boolean;
342
- noReas: {
343
- no_rea: string;
344
- descripcion: string;
345
- grupo: string;
346
- variable: string;
347
- valor: string;
348
- grupo0: string;
349
- }[];
350
- noReasSup: {
351
- no_rea_sup: string;
352
- desc_norea_sup: string;
353
- grupo_sup: string;
354
- variable_sup: string;
355
- valor_sup: string;
356
- grupo0_sup: string;
357
- }[];
393
+ noReas: NoRea[];
394
+ noReasSup: NoReaSup[];
395
+ reas: Rea[];
396
+ reasSup: ReaSup[];
358
397
  semanas: {
359
398
  [idSemana in IdSemana]: Semana;
360
399
  };
@@ -383,23 +422,18 @@ export type CasoState = {
383
422
  };
384
423
  };
385
424
  };
386
- export type DefOperativo = {
387
- esNoRea: (respuestas: Respuestas) => {
388
- codNoRea: string | null;
389
- esNoRea: boolean;
390
- };
391
- esNoReaSup: (respuestas: Respuestas) => {
392
- codNoReaSup: string | null;
393
- esNoReaSup: boolean;
394
- };
395
- esRealizada: (respuestas: Respuestas) => {
396
- codRea: number | null;
397
- esRea: boolean;
398
- };
399
- esRealizadaSup: (respuestas: Respuestas) => {
400
- codReaSup: number | null;
401
- esReaSup: boolean;
402
- };
425
+ export type ResultadoReaNoRea<K extends keyof CodReaNoRea, B extends string> = {
426
+ [P in K]: CodReaNoRea[K];
427
+ } & {
428
+ [P in B]: boolean;
429
+ };
430
+ export type FuncionesCalculoReaNoRea = {
431
+ esNoRea: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codNoRea', 'esNoRea'>;
432
+ esNoReaSup: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codNoReaSup', 'esNoReaSup'>;
433
+ esRealizada: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codRea', 'esRea'>;
434
+ esRealizadaSup: (respuestas: Respuestas, tarea: string) => ResultadoReaNoRea<'codReaSup', 'esReaSup'>;
435
+ };
436
+ export type DefOperativo = FuncionesCalculoReaNoRea & {
403
437
  UAprincipal: IdUnidadAnalisis;
404
438
  defUA: {
405
439
  [i in IdUnidadAnalisis]: {
@@ -538,4 +572,22 @@ export type EstadoAccion = {
538
572
  confirma: boolean;
539
573
  };
540
574
  export type ModoDM = 'produc' | 'capa';
575
+ export type ModoApp = 'RELEVAMIENTO' | 'GABINETE';
576
+ export type AyudaTemaParaUsuario = {
577
+ id: string;
578
+ titulo: string;
579
+ html: string;
580
+ };
581
+ export type AyudaOpcionMenu = {
582
+ ruta: string;
583
+ label: string;
584
+ tema: string | null;
585
+ opciones: AyudaOpcionMenu[];
586
+ };
587
+ export type AyudaParaUsuario = {
588
+ rol: string | null;
589
+ modo: ModoApp;
590
+ temas: AyudaTemaParaUsuario[];
591
+ menu: AyudaOpcionMenu[];
592
+ };
541
593
  export {};
@@ -18,4 +18,4 @@
18
18
  exports.iterator = LikeAr.iterator;
19
19
  exports.empty = LikeAr.empty;
20
20
  });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUE0aEJiLG9DQUVDO0lBNWhCRCxrQ0FBa0M7SUEwaEJsQyxTQUFnQixZQUFZLENBQUMsS0FBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVVLFFBQUEsUUFBUSxHQUFtRCxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQzFFLFFBQUEsS0FBSyxHQUFrRSxNQUFNLENBQUMsS0FBSyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyZSwgRmVlZGJhY2sgfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgKiBhcyBMaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9BbG1hY2VuYW1pZW50byA9ICdzZXNzaW9uJyB8IC8vIGN1YW5kbyBzZWEgcGFyYSB1bmEgc29sYSBwZXN0YcOxYSwgc2UgdXNhIGVuIG1vZG8gZGlyZWN0byxcclxuICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJyB8ICdlYWgyMDIyJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVmFyaWFibGUgPSAndjEnIHwgJ3YyJyB8ICd2MycgfCAnZXRjLi4uJyB8ICd2ZG9taW5pbycgfCAnJHAwJ1xyXG5leHBvcnQgdHlwZSBJZFByZWd1bnRhID0gJ1AxJyB8ICdQMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMScgfCAnQjInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRGb3JtdWxhcmlvID0gJ0YxJyB8ICdGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZFVuaWRhZEFuYWxpc2lzID0gJ3ZpdmllbmRhcycgfCAnaG9nYXJlcycgfCAncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJyB8ICdCRjpGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENvbnNpc3RlbmNpYSA9ICdDT05TMScgfCAnQ09OUzInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRUZXh0byA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29tb2RpbiA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdTRU1fTlVNJyB8ICdyZXNwczEnIHwgJ3BhcmVudHMxJyB8ICdyZXNwaTEnIHwgJ3BhcmVudGkxJyB8ICduamVmZScgfCAnZnJlYWxpeicgfCAnY2FudF9ob2dhcmVzJ1xyXG5leHBvcnQgdHlwZSBJZEZpbHRybyA9ICdGSUxUUk8xJyB8ICdGSUxUUk8yJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ2FzaWxsZXJvID0gSWRWYXJpYWJsZSB8IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRm9ybXVsYXJpbyB8IElkRmlsdHJvIHwgSWRPcGNpb25cclxuZXhwb3J0IHR5cGUgSWRGaW4gPSAnZmluJzsgLy8gbmV2ZXIgLy8gVE9ETzogcG9kZXIgcG9uZXIgJ0ZJTidcclxuZXhwb3J0IHR5cGUgSWREZXN0aW5vID0gSWRQcmVndW50YSB8IElkQmxvcXVlIHwgSWRGaW4gfCBJZEZpbHRyb1xyXG5leHBvcnQgdHlwZSBWYWxvciA9IHN0cmluZyB8IG51bWJlciB8IG51bGw7XHJcbmV4cG9ydCB0eXBlIFRpcG9jRGVzdGlub3MgPSAnUCcgfCAnQ1AnIHwgJ0InIHwgJ0ZJTFRSTycgfCAnQkYnXHJcbmV4cG9ydCB0eXBlIFRpcG9jID0gVGlwb2NEZXN0aW5vcyB8ICdGJyB8ICdPJyB8ICdPTScgfCAnQ09OUycgfCAnVEVYVE8nIHwgJ0xJQlJFJyB8ICdQTUFUUklaJ1xyXG5cclxuZXhwb3J0IHR5cGUgRXNwZWNpYWwgPSB7XHJcbiAgICBncHM/OiBib29sZWFuXHJcbiAgICBub1Njcm9sbD86IGJvb2xlYW5cclxuICAgIHNjcm9sbFRvPzogSWRWYXJpYWJsZSB8IElkRmluXHJcbiAgICBhdXRvaW5nPzogc3RyaW5nXHJcbiAgICBmbGV4RGlyZWN0aW9uPzogJ3JvdycgfCAnY29sdW1uJyB8ICdyb3ctcmV2ZXJzZScgfCAnY29sdW1uLXJldmVyc2UnXHJcbiAgICBjYW1wb3NSZXN1bWVuPzogc3RyaW5nW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRUYXJlYSA9ICdlbmN1JyB8ICdyZWN1JyB8ICdzdXBlJyB8ICdpbmdyJztcclxuXHJcbmV4cG9ydCB0eXBlIEZlZWRiYWNrVmFyaWFibGUgPSBGZWVkYmFjazxJZFZhcmlhYmxlLCBJZEZpbj5cclxuXHJcbmV4cG9ydCB0eXBlIFRpcG9WYXJpYWJsZXMgPSAndGV4dG8nIHwgJ251bWVybycgfCAnZmVjaGEnIHwgJ2hvcmFzJyB8ICdob3JhJ1xyXG5cclxuZXhwb3J0IHR5cGUgRGVzcGxpZWd1ZSA9ICdob3Jpem9udGFsJyB8ICdvY3VsdGEnXHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9CYXNlID0ge1xyXG4gICAgaWRfY2FzaWxsZXJvPzogc3RyaW5nXHJcbiAgICB0aXBvYzogVGlwb2NcclxuICAgIGNhc2lsbGVybzogSWRDYXNpbGxlcm9cclxuICAgIG5vbWJyZTogc3RyaW5nXHJcbiAgICBzYWx0bzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgdmVyX2lkOiBzdHJpbmcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlRW5jYWJlemFkbzogJ2xhdGVyYWwnIHwgJ3N1cGVyaW9yJyB8IG51bGxcclxuICAgIGRlc3BsaWVndWVDb250ZW5pZG86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlVGlwb0lucHV0OiAndGVsJyB8IG51bGxcclxuICAgIGRlc3BsaWVndWVPY3VsdGE6IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsZWVyOiBib29sZWFuIHwgbnVsbFxyXG4gICAgYWNsYXJhY2lvbjogc3RyaW5nIHwgbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICB2YXJfbmFtZT86IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICB2YXJfbmFtZV9lc3BlY2lhbD86IHN0cmluZyB8IG51bGxcclxuICAgIHRpcG92YXI/OiBUaXBvVmFyaWFibGVzIHwgJ29wY2lvbmVzJyB8ICdzaV9ubycgfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zPzogQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3NbXSB8IG51bGxcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXI/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXJfanM/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXI/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXJfanM/OiBzdHJpbmdcclxuICAgIGVzcGVjaWFsPzogRXNwZWNpYWxcclxuICAgIGNhbGN1bGFkYT86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBvcHRhdGl2bz86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsaWJyZT86IGJvb2xlYW4gfCBudWxsXHJcbiAgICB2YWxvcl9uc19uYz86IGFueVxyXG4gICAgZGVzcGxpZWd1ZT86IHN0cmluZ1xyXG4gICAgbG9uZ2l0dWQ/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnTydcclxuICAgIGNhc2lsbGVybzogSWRPcGNpb25cclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uU2kgPSBPcGNpb24gJiB7XHJcbiAgICBjYXNpbGxlcm86IDFcclxuICAgIG5vbWJyZTogJ1PDrSdcclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTm8gPSBPcGNpb24gJiB7XHJcbiAgICBjYXNpbGxlcm86IDJcclxuICAgIG5vbWJyZTogJ05vJ1xyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFTaW1wbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGNpb25NdWx0aXBsZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ09NJ1xyXG4gICAgdGlwb3ZhcjogJ29wY2lvbmVzJ1xyXG4gICAgdmFyX25hbWU6IElkVmFyaWFibGVcclxuICAgIGNhc2lsbGVyb3M6IFtPcGNpb25TaSwgT3BjaW9uTm9dXHJcbiAgICBjYWxjdWxhZGE/OiBib29sZWFuXHJcbiAgICBsaWJyZT86IGJvb2xlYW5cclxuICAgIHZhbG9yX25zX25jOiBhbnlcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUJhc2UgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdQJ1xyXG4gICAgb3B0YXRpdm86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm86IElkUHJlZ3VudGFcclxuICAgIGNhbGN1bGFkYTogYm9vbGVhbiB8IG51bGxcclxuICAgIGxpYnJlOiBib29sZWFuIHwgbnVsbFxyXG4gICAgdmFsb3JfbnNfbmM6IGFueVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YVNpbXBsZSA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6IFRpcG9WYXJpYWJsZXNcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBsb25naXR1ZDogc3RyaW5nXHJcbiAgICBzYWx0b19uc19uYzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uU2lObyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6ICdzaV9ubydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdGlwb3ZhcjogJ29wY2lvbmVzJ1xyXG4gICAgdmFyX25hbWU6IElkVmFyaWFibGVcclxuICAgIHNhbHRvX25zX25jOiBJZERlc3Rpbm8gfCBJZEZpbiB8IG51bGxcclxuICAgIGNhc2lsbGVyb3M6IE9wY2lvbltdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uT3BjaW9uZXNNdWx0aXBsZXMgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBPcGNpb25NdWx0aXBsZVtdXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGEgPSBQcmVndW50YVNpbXBsZSB8IFByZWd1bnRhQ29uU2lObyB8IFByZWd1bnRhQ29uT3BjaW9uZXMgfCBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzXHJcblxyXG5leHBvcnQgdHlwZSBDb25qdW50b1ByZWd1bnRhcyA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0NQJ1xyXG4gICAgY2FzaWxsZXJvOiBJZFByZWd1bnRhXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVtdXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuLypcclxuZXhwb3J0IGludGVyZmFjZSBJQ29udGVuaWRvIGV4dGVuZHMgQ2FzaWxsZXJvQmFzZSB7XHJcbiAgICBjYXNpbGxlcm9zOklDb250ZW5pZG9bXVxyXG59XHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBGaWx0cm8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdGSUxUUk8nXHJcbiAgICBjYXNpbGxlcm86IElkRmlsdHJvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgY2FsY3VsYWRhPzogbnVsbFxyXG4gICAgbGlicmU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29udGVuaWRvRm9ybXVsYXJpbyA9IEJsb3F1ZSB8IFByZWd1bnRhIHwgQ29uanVudG9QcmVndW50YXMgfCBGaWx0cm8gfCBCb3RvbkZvcm11bGFyaW8gfCBDb25zaXN0ZW5jaWEgfCBUZXh0b1xyXG5cclxuZXhwb3J0IHR5cGUgQmxvcXVlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnQidcclxuICAgIGNhc2lsbGVybzogSWRCbG9xdWVcclxuICAgIGNhc2lsbGVyb3M6IENvbnRlbmlkb0Zvcm11bGFyaW9bXVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzPzogSWRVbmlkYWRBbmFsaXNpc1xyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnNpc3RlbmNpYSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0NPTlMnXHJcbiAgICBjYXNpbGxlcm86IElkQ29uc2lzdGVuY2lhXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgVGV4dG8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdURVhUTydcclxuICAgIGNhc2lsbGVybzogSWRUZXh0b1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcbmV4cG9ydCB0eXBlIExpYnJlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnTElCUkUnXHJcbiAgICBjYXNpbGxlcm86IElkVGV4dG9cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5leHBvcnQgdHlwZSBCb3RvbkZvcm11bGFyaW8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdCRidcclxuICAgIGNhc2lsbGVybzogSWRCb3RvbkZvcm11bGFyaW9cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgdmFyX25hbWVzX0JGPzogSWRWYXJpYWJsZVtdXHJcbiAgICBsb25naXR1ZD86IHN0cmluZ1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzPzogSWRVbmlkYWRBbmFsaXNpc1xyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvcm11bGFyaW8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdGJ1xyXG4gICAgY2FzaWxsZXJvOiBJZEZvcm11bGFyaW9cclxuICAgIGZvcm11bGFyaW9fcHJpbmNpcGFsOiBib29sZWFuXHJcbiAgICBjYXNpbGxlcm9zOiBDb250ZW5pZG9Gb3JtdWxhcmlvW11cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIGhlcm1hbm8/OiB0cnVlXHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQTWF0cml6ID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnUE1BVFJJWidcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9zSW1wbGVtZW50YWRvcyA9IEZvcm11bGFyaW8gfCBCbG9xdWUgfCBGaWx0cm8gfCBDb25qdW50b1ByZWd1bnRhcyB8IFByZWd1bnRhIHwgT3BjaW9uTXVsdGlwbGUgfCBPcGNpb24gfCBCb3RvbkZvcm11bGFyaW8gfCBDb25zaXN0ZW5jaWEgfCBUZXh0byB8IExpYnJlIHwgUE1hdHJpelxyXG5cclxuZXhwb3J0IHR5cGUgQ2FtcG9Qa1JhaXogPSAndml2aWVuZGEnIHwgJ2V0Yy4uLic7XHJcblxyXG5leHBvcnQgdHlwZSBWYWx1ZVBrUmFpeiA9IElkRW5jXHJcblxyXG5leHBvcnQgdHlwZSBGb3JQa1JhaXogPSB7XHJcbiAgICBmb3JtdWxhcmlvOiBJZEZvcm11bGFyaW9cclxufSAmIHtcclxuICAgIFtjYW1wbyBpbiBDYW1wb1BrUmFpel06IFZhbHVlUGtSYWl6XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGsgPSAndml2aWVuZGEnIHwgJ2hvZ2FyJyB8ICdwZXJzb25hJyB8ICdldGMuLi4nO1xyXG5leHBvcnQgdHlwZSBGb3JQayA9IEZvclBrUmFpeiAmIHtcclxuICAgIFtjYW1wbyBpbiBDYW1wb1BrXT86IG51bWJlclxyXG59XHJcbmV4cG9ydCB0eXBlIFBsYWluRm9yUGsgPSAne1wiZm9ybXVsYXJpb1wiOlwiRjpGMVwiLFwidml2aWVuZGFcIjpcIjEwMjAyXCIsXCJwZXJzb25hXCI6bnVsbH0nIHwgJ2V0Yy4uLic7XHJcblxyXG5leHBvcnQgdHlwZSBPYmpldG9OdW1lcmFkb09BcnJheTxUPiA9IFRbXSB8IHsgW24gaW4gbnVtYmVyXTogVCB9XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzVW5hVUEgPSB7XHJcbiAgICBbcHJlZ3VudGEgaW4gSWRWYXJpYWJsZV06IFZhbG9yXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3B1ZXN0YUxhc1VBID0ge1xyXG4gICAgW3VhIGluIElkVW5pZGFkQW5hbGlzaXNdOiBPYmpldG9OdW1lcmFkb09BcnJheTxSZXNwdWVzdGFzPlxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzID0gUmVzcHVlc3Rhc1VuYVVBICYgUmVzcHVlc3RhTGFzVUFcclxuXHJcbmV4cG9ydCB0eXBlIFJlc3B1ZXN0YXNSYWl6ID0gUmVzcHVlc3RhcyAmIHtcclxuICAgIHJlc3VtZW5Fc3RhZG86IFJlc3VtZW5Fc3RhZG9cclxuICAgIHJlc3VtZW5Fc3RhZG9TdXA6IFJlc3VtZW5Fc3RhZG9cclxuICAgICRkaXJ0eTogYm9vbGVhblxyXG4gICAgY29kTm9SZWE6IHN0cmluZyB8IG51bGxcclxuICAgIGNvZFJlYTogbnVtYmVyIHwgbnVsbFxyXG4gICAgY29kTm9SZWFTdXA6IHN0cmluZyB8IG51bGxcclxuICAgIGNvZFJlYVN1cDogbnVtYmVyIHwgbnVsbFxyXG59XHJcblxyXG4vKlxyXG4gICAgYWNsYXJhY2nDs246XHJcbiAgICB7djE6J3gnLCB2MjoneCcsIHBlcnNvbmFzOlt7cDE6MSwgcDI6J3h9LHtwMToyLCBwMjp4fV0sIG1hc2NvdGFzOltdIH1cclxuICAgIGVzdMOhIGFuaWRhZG8gcG9yIHVuaWRhZCBkZSBhbsOhbGlzaXNcclxuKi9cclxuXHJcbmV4cG9ydCB0eXBlIFVuaWRhZEFuYWxpc2lzID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgcGFkcmU/OiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgcGtfYWdyZWdhZGE6IENhbXBvUGssXHJcbiAgICBwcmluY2lwYWw/OiBib29sZWFuLFxyXG4gICAgaGlqYXM6IHsgW2sgaW4gSWRVbmlkYWRBbmFsaXNpc10/OiBVbmlkYWRBbmFsaXNpcyB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRFTSA9IHtcclxuICAgIG5vbWNhbGxlOiBzdHJpbmdcclxuICAgIGRvbWluaW86IG51bWJlclxyXG4gICAgc2VjdG9yOiBzdHJpbmdcclxuICAgIGVkaWZpY2lvOiBzdHJpbmdcclxuICAgIGVudHJhZGE6IHN0cmluZ1xyXG4gICAgbnJvY2F0YXN0cmFsOiBzdHJpbmdcclxuICAgIHBpc286IHN0cmluZ1xyXG4gICAgZGVwYXJ0YW1lbnRvOiBzdHJpbmdcclxuICAgIGhhYml0YWNpb246IHN0cmluZ1xyXG4gICAgY2FzYTogc3RyaW5nXHJcbiAgICBwcmlvcmlkYWQ6IDEgfCAyIHwgM1xyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nXHJcbiAgICBzZWxlY2Npb25hZG86IG51bWJlcixcclxuICAgIGNpdGE/OiBzdHJpbmcsXHJcbiAgICBjYXJnYTogc3RyaW5nLFxyXG4gICAgc2VtYW5hPzogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3VtZW5Fc3RhZG8gPSAndmFjaW8nIHwgJ2NvbiBwcm9ibGVtYXMnIHwgJ2luY29tcGxldG8nIHwgJ29rJyB8ICdubyByZWEnIHwgJ2NpdGEgcGFjdGFkYSc7XHJcblxyXG5leHBvcnQgdHlwZSBJbmZvVGFyZWEgPSB7XHJcbiAgICB0YXJlYTogSWRUYXJlYVxyXG4gICAgbm90YXM/OiBzdHJpbmdcclxuICAgIGZlY2hhX2FzaWduYWNpb24/OiBEYXRlXHJcbiAgICBhc2lnbmFkbz86IHN0cmluZ1xyXG4gICAgbWFpbl9mb3JtOiBJZEZvcm11bGFyaW9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVmlzaXRhID0ge1xyXG4gICAgZmVjaGE6IHN0cmluZyB8IG51bGxcclxuICAgIGhvcmE6IHN0cmluZyB8IG51bGxcclxuICAgIGlkcGVyOiBzdHJpbmcgfCBudWxsXHJcbiAgICBvYnNlcnZhY2lvbmVzOiBzdHJpbmcgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERhdG9zSGRyVWFQcGFsID0ge1xyXG4gICAgdGFyZWE6IEluZm9UYXJlYVxyXG4gICAgdGVtOiBURU1cclxuXHJcbiAgICAvKlxyXG4gICAgICAgIGFjbGFyYWNpw7NuOlxyXG4gICAgICAgIHt2MToneCcsIHYyOid4JywgcGVyc29uYXM6W3twMToxLCBwMjoneH0se3AxOjIsIHAyOnh9XSwgbWFzY290YXM6W10gfVxyXG4gICAgICAgIGVzdMOhIGFuaWRhZG8gcG9yIHVuaWRhZCBkZSBhbsOhbGlzaXNcclxuICAgICovXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkQ2FyZ2EgPSBcIjFcIiB8IFwiMlwiIHwgXCJldGNcIlxyXG5cclxuZXhwb3J0IHR5cGUgRXN0YWRvQ2FyZ2EgPSAncmVzdW1lbicgfCAncmVsZXZhbWllbnRvJyB8ICdyZWNpYm8nXHJcblxyXG5leHBvcnQgdHlwZSBDYXJnYSA9IHtcclxuICAgIGZlY2hhOiBEYXRlXHJcbiAgICBlc3RhZG9fY2FyZ2E6IEVzdGFkb0NhcmdhXHJcbiAgICBuZWNlc2FyaWFzOiBudW1iZXJcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZ1xyXG4gICAgcmVjZXBjaW9uaXN0YTogc3RyaW5nXHJcbiAgICBwdWVkZV9hdXRvZ2VuZXJhcjogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYXJnYXMgPSB7XHJcbiAgICBbaWRDYXJnYSBpbiBJZENhcmdhXTogQ2FyZ2FcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYVJvd1ZhbGlkYXRvciA9IFN0cnVjdHVyZTxJZFZhcmlhYmxlLCBWYWxvciwgSWRGaW4+O1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kb0Rlc3BsaWVndWUgPSAnbWV0YWRhdG9zJyB8ICdyZWxldmFtaWVudG8nIHwgJ1BERidcclxuXHJcbmV4cG9ydCB0eXBlIFBhbnRhbGxhTmF2ZWdhY2lvbiA9ICdoZHInIHwgJ3NpbmNyb25pemFjaW9uJyB8ICdzaW5jcm9uaXphY2lvbl9yZXF1ZXJpZGEnIHwgJ21vZG8nO1xyXG5cclxuZXhwb3J0IHR5cGUgSW5mb0Zvcm11bGFyaW8gPSB7XHJcbiAgICBjYXNpbGxlcm9zOiBGb3JtdWxhcmlvLCAvLyBjYXNpbGxlcm9zIGFwbGFuYWRvc1xyXG4gICAgZXN0cnVjdHVyYVJvd1ZhbGlkYXRvcjogRXN0cnVjdHVyYVJvd1ZhbGlkYXRvciAvLyBlc3RydWN0dXJhIGRlIHZhcmlhYmxlcyBwYXJhIGVsIFJvd1ZhbGlkYXRvclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZFJlc3VsdGFkbyA9ICdBVkVSSUdVQVInIHwgJ1RPRE8nO1xyXG5leHBvcnQgdHlwZSBJZFNlbWFuYSA9IDEgfCAyIHwgJ2V0YydcclxuXHJcbmV4cG9ydCB0eXBlIFNlbWFuYSA9IHtcclxuICAgIG9wZXJhdGl2bzogSWRPcGVyYXRpdm87XHJcbiAgICBzZW1hbmE6IG51bWJlcjtcclxuICAgIHNlbWFuYV9yZWZlcmVuY2lhX2Rlc2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIHNlbWFuYV9yZWZlcmVuY2lhX2hhc3RhPzogc3RyaW5nIHwgbnVsbDtcclxuICAgICczMGRpYXNfcmVmZXJlbmNpYV9kZXNkZSc/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgJzMwZGlhc19yZWZlcmVuY2lhX2hhc3RhJz86IHN0cmluZyB8IG51bGw7XHJcbiAgICBtZXNfcmVmZXJlbmNpYT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjYXJnYV9lbmNfZGVzZGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfZW5jX2hhc3RhPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX3JlY3VfZGVzZGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfcmVjdV9oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBUYXJlYXNFc3RydWN0dXJhID0ge1xyXG4gICAgW2lkVGFyZWEgaW4gSWRUYXJlYV06IHtcclxuICAgICAgICByZXN1bHRhZG9zOiB7XHJcbiAgICAgICAgICAgIFtpZFJlc3VsdGFkbyBpbiBJZFJlc3VsdGFkb106IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXBjaW9uOiBzdHJpbmdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYSA9IHtcclxuICAgIGZvcm11bGFyaW9zOiB7XHJcbiAgICAgICAgW25vbWJyZUZvcm11bGFyaW8gaW4gSWRGb3JtdWxhcmlvXTogSW5mb0Zvcm11bGFyaW9cclxuICAgIH1cclxuICAgIHVuaWRhZGVzX2FuYWxpc2lzOiB7XHJcbiAgICAgICAgW2lkVW5pZGFkQW5hbGlzaXMgaW4gSWRVbmlkYWRBbmFsaXNpc106IFVuaWRhZEFuYWxpc2lzXHJcbiAgICB9XHJcbiAgICB0YXJlYXM6IFRhcmVhc0VzdHJ1Y3R1cmFcclxuICAgIHVhUHBhbDogSWRVbmlkYWRBbmFsaXNpc1xyXG4gICAgcGtBZ3JlZ2FkYVVhUHBhbDogQ2FtcG9Qa1JhaXpcclxuICAgIHRpbWVzdGFtcDogbnVtYmVyXHJcbiAgICBvcGVyYXRpdm86IElkT3BlcmF0aXZvXHJcbiAgICBjb25maWdTb3J0ZW86IENvbmZpZ3VyYWNpb25Tb3J0ZW9cclxuICAgIGhhYmlsaXRhY2lvbkJvdG9uRm9ybXVsYXJpbzogQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpb1xyXG4gICAgY29uUmVhSG9nYXI6IGJvb2xlYW5cclxuICAgIG5vUmVhczoge1xyXG4gICAgICAgIG5vX3JlYTogc3RyaW5nXHJcbiAgICAgICAgZGVzY3JpcGNpb246IHN0cmluZ1xyXG4gICAgICAgIGdydXBvOiBzdHJpbmdcclxuICAgICAgICB2YXJpYWJsZTogc3RyaW5nXHJcbiAgICAgICAgdmFsb3I6IHN0cmluZ1xyXG4gICAgICAgIGdydXBvMDogc3RyaW5nXHJcbiAgICB9W11cclxuICAgIG5vUmVhc1N1cDoge1xyXG4gICAgICAgIG5vX3JlYV9zdXA6IHN0cmluZ1xyXG4gICAgICAgIGRlc2Nfbm9yZWFfc3VwOiBzdHJpbmdcclxuICAgICAgICBncnVwb19zdXA6IHN0cmluZ1xyXG4gICAgICAgIHZhcmlhYmxlX3N1cDogc3RyaW5nXHJcbiAgICAgICAgdmFsb3Jfc3VwOiBzdHJpbmdcclxuICAgICAgICBncnVwbzBfc3VwOiBzdHJpbmdcclxuICAgIH1bXSxcclxuICAgIHNlbWFuYXM6IHsgW2lkU2VtYW5hIGluIElkU2VtYW5hXTogU2VtYW5hIH1cclxuICAgIGRlZmF1bHRJbmZvcm1hY2lvbkhkcjogRGF0b3NIZHJVYVBwYWxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRFbmMgPSAxMzAwMzEgfCAxMzAwMzI7XHJcbmV4cG9ydCB0eXBlIEluZm9ybWFjaW9uSGRyID0geyBbZW5jIGluIElkRW5jXTogRGF0b3NIZHJVYVBwYWwgfVxyXG5cclxuZXhwb3J0IHR5cGUgQ2Fzb1N0YXRlID0ge1xyXG4gICAgb3BjaW9uZXM6IHsgLy8gZGF0b3MgZGUgbmF2ZWdhY2nDs24gcXVlIGVsaWplIGVsIHVzdWFyaW9cclxuICAgICAgICBmb3JQazogRm9yUGsgfCBudWxsIC8vIMOtbmRpY2UgZGVudHJvIGRlIGxhcyB1bmlkYWRlcyBkZSBhbsOhbGlzaXMuIE51bGwgPSBlbiBob2phIGRlIHJ1dGFcclxuICAgICAgICBwaWxhRm9yUGs6IEZvclBrW11cclxuICAgICAgICBtb2RvRGVzcGxpZWd1ZTogTW9kb0Rlc3BsaWVndWVcclxuICAgICAgICBtb2RvRGlyZWN0bzogYm9vbGVhblxyXG4gICAgICAgIG1vZG9Cb3JyYXJSZXNwdWVzdGE6IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICAgICAgY29uQ2FtcG9PcGNpb25lczogYm9vbGVhblxyXG4gICAgICAgIHNhbHRvQXV0b21hdGljbzogYm9vbGVhblxyXG4gICAgICAgIHBhbnRhbGxhQWN0dWFsOiBQYW50YWxsYU5hdmVnYWNpb25cclxuICAgICAgICBhdmlzb1BlcnNpc3RlbnRlOiB7IHRpcG86ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicsIG1lbnNhamU6IHN0cmluZ30gfCBudWxsXHJcbiAgICAgICAgY29tb2RpbmVzOiB7W2lkQ29tb2RpbiBpbiBJZENvbW9kaW5dPzogc3RyaW5nfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEZWZPcGVyYXRpdm8gPSB7XHJcbiAgICBlc05vUmVhOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcykgPT4geyBjb2ROb1JlYTogc3RyaW5nIHwgbnVsbCwgZXNOb1JlYTogYm9vbGVhbiB9LFxyXG4gICAgZXNOb1JlYVN1cDogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMpID0+IHsgY29kTm9SZWFTdXA6IHN0cmluZyB8IG51bGwsIGVzTm9SZWFTdXA6IGJvb2xlYW4gfSxcclxuICAgIGVzUmVhbGl6YWRhOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcykgPT4geyBjb2RSZWE6IG51bWJlciB8IG51bGwsIGVzUmVhOiBib29sZWFuIH0sXHJcbiAgICBlc1JlYWxpemFkYVN1cDogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMpID0+IHsgY29kUmVhU3VwOiBudW1iZXIgfCBudWxsLCBlc1JlYVN1cDogYm9vbGVhbiB9LFxyXG4gICAgVUFwcmluY2lwYWw6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICBkZWZVQTogeyBbaSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogeyBwazogSWRWYXJpYWJsZSwgaW5jbHVpZGFzOiBJZFVuaWRhZEFuYWxpc2lzW10sIGlkc0ZvcjogSWRGb3JtdWxhcmlvW10gfSB9LFxyXG4gICAgZGVmRm9yOiB7IFtmIGluIElkRm9ybXVsYXJpb106IHsvKmFyYm9sVUE6SWRVbmlkYWRBbmFsaXNpc1tdLCAqLyBoZXJtYW5vPzogdHJ1ZSB9IH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgPSB7XHJcbiAgICByZXNwdWVzdGFzOiB7IFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogUmVzcHVlc3Rhc1JhaXpbXSB9XHJcbiAgICBtb2RvQWxtYWNlbmFtaWVudG86IE1vZG9BbG1hY2VuYW1pZW50b1xyXG4gICAgcGVyc29uYTogc3RyaW5nXHJcbiAgICB0YXJlYTogSWRUYXJlYVxyXG4gICAgaWRwZXI6IHN0cmluZ1xyXG4gICAgY2FyZ2FzOiBDYXJnYXNcclxuICAgIGluZm9ybWFjaW9uSGRyOiBJbmZvcm1hY2lvbkhkclxyXG4gICAgc29sb0xlY3R1cmE6IGJvb2xlYW5cclxuICAgIHRva2VuPzogc3RyaW5nXHJcbiAgICBudW1fc2luY3JvPzogbnVtYmVyXHJcbiAgICB0aW1lc3RhbXBFc3RydWN0dXJhPzogbnVtYmVyXHJcbiAgICBwZXJtaXRlQm9ycmFyRWxlbWVudG9zVUE/OiBib29sZWFuXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhID0ge1xyXG4gICAgbWV0b2RvOiBcInRhYmxhXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB0YWJsYTogc3RyaW5nW10sXHJcbiAgICAgICAgdmFyX2xldHJhOiBJZFZhcmlhYmxlLFxyXG4gICAgfVxyXG59XHJcblxyXG50eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9IYXNoID0ge1xyXG4gICAgbWV0b2RvOiBcImhhc2hcIixcclxuICAgIHBhcmFtX21ldG9kbzoge1xyXG4gICAgICAgIHZhcl9jb2VmOiBbXHJcbiAgICAgICAgICAgIHsgdmFyOiBJZFZhcmlhYmxlLCBjb2VmOiBudW1iZXIgfSxcclxuICAgICAgICAgICAgeyB2YXI6IElkVmFyaWFibGUsIGNvZWY6IG51bWJlciB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGl2aXNvcjogbnVtYmVyXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW8gPSB7IFtrZXkgaW4gSWRGb3JtdWxhcmlvXTogQ29uZmlndXJhY2lvblNvcnRlb0Zvcm11bGFyaW8gfVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpbyA9IHsgW2tleSBpbiBJZEZvcm11bGFyaW9dOiBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvRm9ybSB9XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvRm9ybXVsYXJpbyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHVuaWRhZF9hbmFsaXNpc19wYWRyZTogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIC8vZXhwcl9pbmNvbXBsZXRpdHVkOiBzdHJpbmcgLy9cIm5vdCAocDEpIG9yIG5vIHQgKHAyKSBvciBub3QocDMpXCJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZDoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICAvL2V4cHJfaW5jb21wbGV0aXR1ZF9qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOiB7IGRvbWluaW86IG51bWJlciwgZXhwcjogc3RyaW5nIH1cclxuICAgIH1cclxuICAgIGRpc3BhcmFkb3I6IElkVmFyaWFibGUgLy9cInA5XCJcclxuICAgIC8vZmlsdHJvOiBzdHJpbmcgLy9cInAzPj0xOFwiXHJcbiAgICBmaWx0cm86IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgLy9maWx0cm9fanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGZpbHRyb19qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICBvcmRlbjoge1xyXG4gICAgICAgIHZhcmlhYmxlOiBJZFZhcmlhYmxlXHJcbiAgICAgICAgb3JkZW46IDEgfCAtMVxyXG4gICAgfVtdIC8vW1wicDNcIiwgXCJwMlwiLCBcInAxXCIsIFwicDBcIl0sIC8vIHAwIGVzIGNvbnN0cnVpZGEsIG5vIHZhIGVuIHBhcsOhbWV0cm9zLCBzZSBwb25lIHBhcmEgcXVlIGVsIG9yZGVuIHNlYSBkZXRlcm1pbsOtc3RpY29cclxuICAgIHBhcmFtZXRyb3M6IElkVmFyaWFibGVbXS8vIFtcInAxXCIsXCJwMlwiLFwicDNcIiwgXCJwNFwiLCBcInA1XCIsIFwicDZcIl0sIC8vIHZhcmlhYmxlcyBxdWUgYW51bGFuIGFsIGRpc3BhcmFkb3JcclxuICAgIGNhbnRpZGFkX3NvcnRlYWJsZXM6IElkVmFyaWFibGVcclxuICAgIGNhbnRpZGFkX3RvdGFsOiBJZFZhcmlhYmxlXHJcbiAgICByZXN1bHRhZG86IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICByZXN1bHRhZG9fbWFudWFsOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgc29ydGVhZG9fbW9zdHJhcj86IHsgc291cmNlOiBJZFZhcmlhYmxlLCB0YXJnZXQ6IElkVmFyaWFibGUgfVtdLFxyXG4gICAgaW5jb21wbGV0YXM6IElkVmFyaWFibGVcclxuICAgIHZhcmlhYmxlQm90b25Gb3JtdWxhcmlvVUE6IElkVmFyaWFibGUvLyckQi5GOlMxX1AnXHJcbiAgICB2YXJpYWJsZUJvdG9uRm9ybXVsYXJpb1VBSW5kaXZpZHVhbD86IElkVmFyaWFibGUgLy8nJEIuRjpJMSdcclxuICAgIGlkX2Zvcm11bGFyaW9faW5kaXZpZHVhbD86IElkRm9ybXVsYXJpbyAvLyAnRjpJMSdcclxuICAgIGlkX2Zvcm11bGFyaW9fcGFkcmU/OiBJZEZvcm11bGFyaW8gLy8gJ0Y6UzEnXHJcbn0gJiAoQ29uZmlndXJhY2lvblNvcnRlb0hhc2ggfCBDb25maWd1cmFjaW9uU29ydGVvVGFibGEpXHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvRm9ybSA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIGV4cHJfaGFiaWxpdGFyX2JvdG9uOiBzdHJpbmcsXHJcbiAgICBleHByX2hhYmlsaXRhcl9ib3Rvbl9qczogc3RyaW5nLFxyXG4gICAgaGFiaWxpdGFyX2FncmVnYXJfbGlzdG86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRvUGxhaW5Gb3JQayhmb3JQazogRm9yUGspOiBQbGFpbkZvclBrIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShmb3JQayk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgaXRlcmF0b3I6IDxUPihvOiBPYmpldG9OdW1lcmFkb09BcnJheTxUPikgPT4gSXRlcmFibGU8VD4gPSBMaWtlQXIuaXRlcmF0b3JcclxuZXhwb3J0IHZhciBlbXB0eTogPFQ+KG86IE9iamV0b051bWVyYWRvT0FycmF5PFQ+IHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gYm9vbGVhbiA9IExpa2VBci5lbXB0eVxyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gICAgbmFtZXNwYWNlIG15T3duIHtcclxuICAgICAgICBpbnRlcmZhY2UgQWRkclBhcmFtcyB7XHJcbiAgICAgICAgICAgIHN0YXRlX2ZvclBrOiBzdHJpbmdcclxuICAgICAgICAgICAgc3RhdGVfcGlsYUZvclBrOiBzdHJpbmdcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERpcmVjY2lvbkFjY2lvbiA9ICdhdmFuY2UnIHwgJ3JldHJvY2VzbycgfCAnYmxhbnF1ZW8nXHJcblxyXG5leHBvcnQgdHlwZSBFc3RhZG9BY2Npb24gPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgZXN0YWRvOiBzdHJpbmdcclxuICAgIGVhY2Npb246IHN0cmluZ1xyXG4gICAgY29uZGljaW9uOiBzdHJpbmdcclxuICAgIGVzdGFkb19kZXN0aW5vOiBzdHJpbmdcclxuICAgIGVhY2Npb25fZGlyZWNjaW9uOiBEaXJlY2Npb25BY2Npb25cclxuICAgIHBhdGhfaWNvbm9fc3ZnOiBzdHJpbmdcclxuICAgIG5vbWJyZV9wcm9jZWR1cmU6IHN0cmluZ1xyXG4gICAgbm9tYnJlX3dzY3JlZW46IHN0cmluZ1xyXG4gICAgZGVzYWN0aXZhX2JvdG9uOiBib29sZWFuXHJcbiAgICBjb25maXJtYTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCB0eXBlIE1vZG9ETSA9ICdwcm9kdWMnIHwgJ2NhcGEnOyJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFxbEJiLG9DQUVDO0lBcmxCRCxrQ0FBa0M7SUFtbEJsQyxTQUFnQixZQUFZLENBQUMsS0FBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFlLENBQUM7SUFDL0MsQ0FBQztJQUVVLFFBQUEsUUFBUSxHQUFtRCxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQzFFLFFBQUEsS0FBSyxHQUFrRSxNQUFNLENBQUMsS0FBSyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyZSwgRmVlZGJhY2sgfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgKiBhcyBMaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9BbG1hY2VuYW1pZW50byA9ICdzZXNzaW9uJyB8IC8vIGN1YW5kbyBzZWEgcGFyYSB1bmEgc29sYSBwZXN0YcOxYSwgc2UgdXNhIGVuIG1vZG8gZGlyZWN0byxcclxuICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJyB8ICdlYWgyMDIyJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVmFyaWFibGUgPSAndjEnIHwgJ3YyJyB8ICd2MycgfCAnZXRjLi4uJyB8ICd2ZG9taW5pbycgfCAnJHAwJ1xyXG5leHBvcnQgdHlwZSBJZFByZWd1bnRhID0gJ1AxJyB8ICdQMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMScgfCAnQjInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRGb3JtdWxhcmlvID0gJ0YxJyB8ICdGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZFVuaWRhZEFuYWxpc2lzID0gJ3ZpdmllbmRhcycgfCAnaG9nYXJlcycgfCAncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJyB8ICdCRjpGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENvbnNpc3RlbmNpYSA9ICdDT05TMScgfCAnQ09OUzInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRUZXh0byA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29tb2RpbiA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdTRU1fTlVNJyB8ICdyZXNwczEnIHwgJ3BhcmVudHMxJyB8ICdyZXNwaTEnIHwgJ3BhcmVudGkxJyB8ICduamVmZScgfCAnZnJlYWxpeicgfCAnY2FudF9ob2dhcmVzJ1xyXG5leHBvcnQgdHlwZSBJZEZpbHRybyA9ICdGSUxUUk8xJyB8ICdGSUxUUk8yJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ2FzaWxsZXJvID0gSWRWYXJpYWJsZSB8IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRm9ybXVsYXJpbyB8IElkRmlsdHJvIHwgSWRPcGNpb25cclxuZXhwb3J0IHR5cGUgSWRGaW4gPSAnZmluJzsgLy8gbmV2ZXIgLy8gVE9ETzogcG9kZXIgcG9uZXIgJ0ZJTidcclxuZXhwb3J0IHR5cGUgSWREZXN0aW5vID0gSWRQcmVndW50YSB8IElkQmxvcXVlIHwgSWRGaW4gfCBJZEZpbHRyb1xyXG5leHBvcnQgdHlwZSBWYWxvciA9IHN0cmluZyB8IG51bWJlciB8IG51bGw7XHJcbmV4cG9ydCB0eXBlIFRpcG9jRGVzdGlub3MgPSAnUCcgfCAnQ1AnIHwgJ0InIHwgJ0ZJTFRSTycgfCAnQkYnXHJcbmV4cG9ydCB0eXBlIFRpcG9jID0gVGlwb2NEZXN0aW5vcyB8ICdGJyB8ICdPJyB8ICdPTScgfCAnQ09OUycgfCAnVEVYVE8nIHwgJ0xJQlJFJyB8ICdQTUFUUklaJ1xyXG5cclxuZXhwb3J0IHR5cGUgRXNwZWNpYWwgPSB7XHJcbiAgICBncHM/OiBib29sZWFuXHJcbiAgICBub1Njcm9sbD86IGJvb2xlYW5cclxuICAgIHNjcm9sbFRvPzogSWRWYXJpYWJsZSB8IElkRmluXHJcbiAgICBhdXRvaW5nPzogc3RyaW5nXHJcbiAgICBmbGV4RGlyZWN0aW9uPzogJ3JvdycgfCAnY29sdW1uJyB8ICdyb3ctcmV2ZXJzZScgfCAnY29sdW1uLXJldmVyc2UnXHJcbiAgICBjYW1wb3NSZXN1bWVuPzogc3RyaW5nW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRUYXJlYSA9ICdlbmN1JyB8ICdyZWN1JyB8ICdzdXBlJyB8ICdpbmdyJztcclxuXHJcbmV4cG9ydCB0eXBlIEZlZWRiYWNrVmFyaWFibGUgPSBGZWVkYmFjazxJZFZhcmlhYmxlLCBJZEZpbj5cclxuXHJcbmV4cG9ydCB0eXBlIFRpcG9WYXJpYWJsZXMgPSAndGV4dG8nIHwgJ251bWVybycgfCAnZmVjaGEnIHwgJ2hvcmFzJyB8ICdob3JhJ1xyXG5cclxuZXhwb3J0IHR5cGUgRGVzcGxpZWd1ZSA9ICdob3Jpem9udGFsJyB8ICdvY3VsdGEnXHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9CYXNlID0ge1xyXG4gICAgaWRfY2FzaWxsZXJvPzogc3RyaW5nXHJcbiAgICB0aXBvYzogVGlwb2NcclxuICAgIGNhc2lsbGVybzogSWRDYXNpbGxlcm9cclxuICAgIG5vbWJyZTogc3RyaW5nXHJcbiAgICBzYWx0bzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgdmVyX2lkOiBzdHJpbmcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlRW5jYWJlemFkbzogJ2xhdGVyYWwnIHwgJ3N1cGVyaW9yJyB8IG51bGxcclxuICAgIGRlc3BsaWVndWVDb250ZW5pZG86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlVGlwb0lucHV0OiAndGVsJyB8IG51bGxcclxuICAgIGRlc3BsaWVndWVPY3VsdGE6IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsZWVyOiBib29sZWFuIHwgbnVsbFxyXG4gICAgYWNsYXJhY2lvbjogc3RyaW5nIHwgbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICB2YXJfbmFtZT86IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICB2YXJfbmFtZV9lc3BlY2lhbD86IHN0cmluZyB8IG51bGxcclxuICAgIHRpcG92YXI/OiBUaXBvVmFyaWFibGVzIHwgJ29wY2lvbmVzJyB8ICdzaV9ubycgfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zPzogQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3NbXSB8IG51bGxcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXI/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXJfanM/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXI/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXJfanM/OiBzdHJpbmdcclxuICAgIGVzcGVjaWFsPzogRXNwZWNpYWxcclxuICAgIGNhbGN1bGFkYT86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBvcHRhdGl2bz86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsaWJyZT86IGJvb2xlYW4gfCBudWxsXHJcbiAgICB2YWxvcl9uc19uYz86IGFueVxyXG4gICAgZGVzcGxpZWd1ZT86IHN0cmluZyB8IG51bGxcclxuICAgIGxvbmdpdHVkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbiA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ08nXHJcbiAgICBjYXNpbGxlcm86IElkT3BjaW9uXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvblNpID0gT3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOiAxXHJcbiAgICBub21icmU6ICdTw60nXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbk5vID0gT3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOiAyXHJcbiAgICBub21icmU6ICdObydcclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTXVsdGlwbGUgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdPTSdcclxuICAgIHRpcG92YXI6ICdvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBjYXNpbGxlcm9zOiBbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG4gICAgY2FsY3VsYWRhPzogYm9vbGVhblxyXG4gICAgbGlicmU/OiBib29sZWFuXHJcbiAgICB2YWxvcl9uc19uYzogYW55XHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFCYXNlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnUCdcclxuICAgIG9wdGF0aXZvOiBib29sZWFuIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvOiBJZFByZWd1bnRhXHJcbiAgICBjYWxjdWxhZGE6IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsaWJyZTogYm9vbGVhbiB8IG51bGxcclxuICAgIHZhbG9yX25zX25jOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFTaW1wbGUgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOiBUaXBvVmFyaWFibGVzXHJcbiAgICB2YXJfbmFtZTogSWRWYXJpYWJsZVxyXG4gICAgbG9uZ2l0dWQ6IHN0cmluZ1xyXG4gICAgc2FsdG9fbnNfbmM6IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFTaW1wbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvblNpTm8gPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOiAnc2lfbm8nXHJcbiAgICB2YXJfbmFtZTogSWRWYXJpYWJsZVxyXG4gICAgc2FsdG9fbnNfbmM6IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvczogW09wY2lvblNpLCBPcGNpb25Ob11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFDb25PcGNpb25lcyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6ICdvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBPcGNpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgY2FzaWxsZXJvczogT3BjaW9uTXVsdGlwbGVbXVxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhID0gUHJlZ3VudGFTaW1wbGUgfCBQcmVndW50YUNvblNpTm8gfCBQcmVndW50YUNvbk9wY2lvbmVzIHwgUHJlZ3VudGFDb25PcGNpb25lc011bHRpcGxlc1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uanVudG9QcmVndW50YXMgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdDUCdcclxuICAgIGNhc2lsbGVybzogSWRQcmVndW50YVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFbXVxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbi8qXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbmlkbyBleHRlbmRzIENhc2lsbGVyb0Jhc2Uge1xyXG4gICAgY2FzaWxsZXJvczpJQ29udGVuaWRvW11cclxufVxyXG4qL1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdHJvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnRklMVFJPJ1xyXG4gICAgY2FzaWxsZXJvOiBJZEZpbHRyb1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIGNhbGN1bGFkYT86IG51bGxcclxuICAgIGxpYnJlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnRlbmlkb0Zvcm11bGFyaW8gPSBCbG9xdWUgfCBQcmVndW50YSB8IENvbmp1bnRvUHJlZ3VudGFzIHwgRmlsdHJvIHwgQm90b25Gb3JtdWxhcmlvIHwgQ29uc2lzdGVuY2lhIHwgVGV4dG9cclxuXHJcbmV4cG9ydCB0eXBlIEJsb3F1ZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0InXHJcbiAgICBjYXNpbGxlcm86IElkQmxvcXVlXHJcbiAgICBjYXNpbGxlcm9zOiBDb250ZW5pZG9Gb3JtdWxhcmlvW11cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHVuaWRhZF9hbmFsaXNpcz86IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25zaXN0ZW5jaWEgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdDT05TJ1xyXG4gICAgY2FzaWxsZXJvOiBJZENvbnNpc3RlbmNpYVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcbmV4cG9ydCB0eXBlIFRleHRvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnVEVYVE8nXHJcbiAgICBjYXNpbGxlcm86IElkVGV4dG9cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5leHBvcnQgdHlwZSBMaWJyZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0xJQlJFJ1xyXG4gICAgY2FzaWxsZXJvOiBJZFRleHRvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgQm90b25Gb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnQkYnXHJcbiAgICBjYXNpbGxlcm86IElkQm90b25Gb3JtdWxhcmlvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogSWRWYXJpYWJsZSB8IG51bGxcclxuICAgIHZhcl9uYW1lc19CRj86IElkVmFyaWFibGVbXVxyXG4gICAgbG9uZ2l0dWQ/OiBzdHJpbmdcclxuICAgIHVuaWRhZF9hbmFsaXNpcz86IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnRidcclxuICAgIGNhc2lsbGVybzogSWRGb3JtdWxhcmlvXHJcbiAgICBmb3JtdWxhcmlvX3ByaW5jaXBhbDogYm9vbGVhblxyXG4gICAgY2FzaWxsZXJvczogQ29udGVuaWRvRm9ybXVsYXJpb1tdXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBoZXJtYW5vPzogdHJ1ZVxyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUE1hdHJpeiA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ1BNQVRSSVonXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3MgPSBGb3JtdWxhcmlvIHwgQmxvcXVlIHwgRmlsdHJvIHwgQ29uanVudG9QcmVndW50YXMgfCBQcmVndW50YSB8IE9wY2lvbk11bHRpcGxlIHwgT3BjaW9uIHwgQm90b25Gb3JtdWxhcmlvIHwgQ29uc2lzdGVuY2lhIHwgVGV4dG8gfCBMaWJyZSB8IFBNYXRyaXpcclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGtSYWl6ID0gJ3ZpdmllbmRhJyB8ICdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgVmFsdWVQa1JhaXogPSBJZEVuY1xyXG5cclxuZXhwb3J0IHR5cGUgRm9yUGtSYWl6ID0ge1xyXG4gICAgZm9ybXVsYXJpbzogSWRGb3JtdWxhcmlvXHJcbn0gJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa1JhaXpdOiBWYWx1ZVBrUmFpelxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW1wb1BrID0gJ3ZpdmllbmRhJyB8ICdob2dhcicgfCAncGVyc29uYScgfCAnZXRjLi4uJztcclxuZXhwb3J0IHR5cGUgRm9yUGsgPSBGb3JQa1JhaXogJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa10/OiBudW1iZXJcclxufVxyXG5leHBvcnQgdHlwZSBQbGFpbkZvclBrID0gJ3tcImZvcm11bGFyaW9cIjpcIkY6RjFcIixcInZpdmllbmRhXCI6XCIxMDIwMlwiLFwicGVyc29uYVwiOm51bGx9JyB8ICdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4gPSBUW10gfCB7IFtuIGluIG51bWJlcl06IFQgfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhc1VuYVVBID0ge1xyXG4gICAgW3ByZWd1bnRhIGluIElkVmFyaWFibGVdOiBWYWxvclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFMYXNVQSA9IHtcclxuICAgIFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogT2JqZXRvTnVtZXJhZG9PQXJyYXk8UmVzcHVlc3Rhcz5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29kUmVhTm9SZWEgPSB7XHJcbiAgICBjb2RSZWE6IG51bWJlciB8IG51bGwsXHJcbiAgICBjb2ROb1JlYTogbnVtYmVyIHwgbnVsbCxcclxuICAgIGNvZFJlYVN1cDogbnVtYmVyIHwgbnVsbCxcclxuICAgIGNvZE5vUmVhU3VwOiBudW1iZXIgfCBudWxsLFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXN1bHRhZG9SZXN1bWVuID0gQ29kUmVhTm9SZWEgJiB7XHJcbiAgICByZXN1bWVuRXN0YWRvOiBSZXN1bWVuRXN0YWRvLFxyXG4gICAgcmVzdW1lbkVzdGFkb1N1cDogUmVzdW1lbkVzdGFkbyxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3RhcyA9IFJlc3B1ZXN0YXNVbmFVQSAmIFJlc3B1ZXN0YUxhc1VBXHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzUmFpeiA9IFJlc3B1ZXN0YXMgJiBSZXN1bHRhZG9SZXN1bWVuICYge1xyXG4gICAgJGRpcnR5OiBib29sZWFuXHJcbn1cclxuXHJcbi8qXHJcbiAgICBhY2xhcmFjacOzbjpcclxuICAgIHt2MToneCcsIHYyOid4JywgcGVyc29uYXM6W3twMToxLCBwMjoneH0se3AxOjIsIHAyOnh9XSwgbWFzY290YXM6W10gfVxyXG4gICAgZXN0w6EgYW5pZGFkbyBwb3IgdW5pZGFkIGRlIGFuw6FsaXNpc1xyXG4qL1xyXG5cclxuZXhwb3J0IHR5cGUgVW5pZGFkQW5hbGlzaXMgPSB7XHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICBwYWRyZT86IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICBwa19hZ3JlZ2FkYTogQ2FtcG9QayxcclxuICAgIHByaW5jaXBhbD86IGJvb2xlYW4sXHJcbiAgICBoaWphczogeyBbayBpbiBJZFVuaWRhZEFuYWxpc2lzXT86IFVuaWRhZEFuYWxpc2lzIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVEVNID0ge1xyXG4gICAgbm9tY2FsbGU6IHN0cmluZ1xyXG4gICAgZG9taW5pbzogbnVtYmVyXHJcbiAgICBzZWN0b3I6IHN0cmluZ1xyXG4gICAgZWRpZmljaW86IHN0cmluZ1xyXG4gICAgZW50cmFkYTogc3RyaW5nXHJcbiAgICBucm9jYXRhc3RyYWw6IHN0cmluZ1xyXG4gICAgcGlzbzogc3RyaW5nXHJcbiAgICBkZXBhcnRhbWVudG86IHN0cmluZ1xyXG4gICAgaGFiaXRhY2lvbjogc3RyaW5nXHJcbiAgICBjYXNhOiBzdHJpbmdcclxuICAgIHByaW9yaWRhZDogMSB8IDIgfCAzXHJcbiAgICBvYnNlcnZhY2lvbmVzOiBzdHJpbmdcclxuICAgIHNlbGVjY2lvbmFkbzogbnVtYmVyLFxyXG4gICAgY2l0YT86IHN0cmluZyxcclxuICAgIGNhcmdhOiBzdHJpbmcsXHJcbiAgICBzZW1hbmE/OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzdW1lbkVzdGFkbyA9ICd2YWNpbycgfCAnY29uIHByb2JsZW1hcycgfCAnaW5jb21wbGV0bycgfCAnb2snIHwgJ25vIHJlYScgfCAnY2l0YSBwYWN0YWRhJztcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9UYXJlYSA9IHtcclxuICAgIHRhcmVhOiBJZFRhcmVhXHJcbiAgICBub3Rhcz86IHN0cmluZ1xyXG4gICAgZmVjaGFfYXNpZ25hY2lvbj86IERhdGVcclxuICAgIGFzaWduYWRvPzogc3RyaW5nXHJcbiAgICBtYWluX2Zvcm06IElkRm9ybXVsYXJpb1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBWaXNpdGEgPSB7XHJcbiAgICBmZWNoYTogc3RyaW5nIHwgbnVsbFxyXG4gICAgaG9yYTogc3RyaW5nIHwgbnVsbFxyXG4gICAgaWRwZXI6IHN0cmluZyB8IG51bGxcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZyB8IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGF0b3NIZHJVYVBwYWwgPSB7XHJcbiAgICB0YXJlYTogSW5mb1RhcmVhXHJcbiAgICB0ZW06IFRFTVxyXG5cclxuICAgIC8qXHJcbiAgICAgICAgYWNsYXJhY2nDs246XHJcbiAgICAgICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICAgICAgZXN0w6EgYW5pZGFkbyBwb3IgdW5pZGFkIGRlIGFuw6FsaXNpc1xyXG4gICAgKi9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRDYXJnYSA9IFwiMVwiIHwgXCIyXCIgfCBcImV0Y1wiXHJcblxyXG5leHBvcnQgdHlwZSBFc3RhZG9DYXJnYSA9ICdyZXN1bWVuJyB8ICdyZWxldmFtaWVudG8nIHwgJ3JlY2libydcclxuXHJcbmV4cG9ydCB0eXBlIENhcmdhID0ge1xyXG4gICAgZmVjaGE6IERhdGVcclxuICAgIGVzdGFkb19jYXJnYTogRXN0YWRvQ2FyZ2FcclxuICAgIG5lY2VzYXJpYXM6IG51bWJlclxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nXHJcbiAgICByZWNlcGNpb25pc3RhOiBzdHJpbmdcclxuICAgIHB1ZWRlX2F1dG9nZW5lcmFyOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhcmdhcyA9IHtcclxuICAgIFtpZENhcmdhIGluIElkQ2FyZ2FdOiBDYXJnYVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFc3RydWN0dXJhUm93VmFsaWRhdG9yID0gU3RydWN0dXJlPElkVmFyaWFibGUsIFZhbG9yLCBJZEZpbj47XHJcblxyXG5leHBvcnQgdHlwZSBNb2RvRGVzcGxpZWd1ZSA9ICdtZXRhZGF0b3MnIHwgJ3JlbGV2YW1pZW50bycgfCAnUERGJ1xyXG5cclxuZXhwb3J0IHR5cGUgUGFudGFsbGFOYXZlZ2FjaW9uID0gJ2hkcicgfCAnc2luY3Jvbml6YWNpb24nIHwgJ3NpbmNyb25pemFjaW9uX3JlcXVlcmlkYScgfCAnbW9kbycgfCAnYXl1ZGEnO1xyXG5cclxuZXhwb3J0IHR5cGUgSW5mb0Zvcm11bGFyaW8gPSB7XHJcbiAgICBjYXNpbGxlcm9zOiBGb3JtdWxhcmlvLCAvLyBjYXNpbGxlcm9zIGFwbGFuYWRvc1xyXG4gICAgZXN0cnVjdHVyYVJvd1ZhbGlkYXRvcjogRXN0cnVjdHVyYVJvd1ZhbGlkYXRvciAvLyBlc3RydWN0dXJhIGRlIHZhcmlhYmxlcyBwYXJhIGVsIFJvd1ZhbGlkYXRvclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZFJlc3VsdGFkbyA9ICdBVkVSSUdVQVInIHwgJ1RPRE8nO1xyXG5leHBvcnQgdHlwZSBJZFNlbWFuYSA9IDEgfCAyIHwgJ2V0YydcclxuXHJcbmV4cG9ydCB0eXBlIFNlbWFuYSA9IHtcclxuICAgIG9wZXJhdGl2bzogSWRPcGVyYXRpdm87XHJcbiAgICBzZW1hbmE6IG51bWJlcjtcclxuICAgIHNlbWFuYV9yZWZlcmVuY2lhX2Rlc2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIHNlbWFuYV9yZWZlcmVuY2lhX2hhc3RhPzogc3RyaW5nIHwgbnVsbDtcclxuICAgICczMGRpYXNfcmVmZXJlbmNpYV9kZXNkZSc/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgJzMwZGlhc19yZWZlcmVuY2lhX2hhc3RhJz86IHN0cmluZyB8IG51bGw7XHJcbiAgICBtZXNfcmVmZXJlbmNpYT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjYXJnYV9lbmNfZGVzZGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfZW5jX2hhc3RhPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX3JlY3VfZGVzZGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfcmVjdV9oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBUYXJlYXNFc3RydWN0dXJhID0ge1xyXG4gICAgW2lkVGFyZWEgaW4gSWRUYXJlYV06IHtcclxuICAgICAgICByZXN1bHRhZG9zOiB7XHJcbiAgICAgICAgICAgIFtpZFJlc3VsdGFkbyBpbiBJZFJlc3VsdGFkb106IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXBjaW9uOiBzdHJpbmdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVGlwb0NvbmRpY2lvbiA9ICdub19yZWEnIHwgJ25vX3JlYV9zdXAnIHwgJ3JlYScgfCAncmVhX3N1cCc7XHJcblxyXG5leHBvcnQgdHlwZSBOb1JlYSA9IHtcclxuICAgIG9wZXJhdGl2bzogc3RyaW5nXHJcbiAgICBub19yZWE6IG51bWJlcjtcclxuICAgIGRlc2NyaXBjaW9uOiBzdHJpbmc7XHJcbiAgICBncnVwbzogc3RyaW5nO1xyXG4gICAgdmFyaWFibGU6IHN0cmluZztcclxuICAgIHZhbG9yOiBzdHJpbmc7XHJcbiAgICBncnVwbzA6IHN0cmluZztcclxuICAgIG9yZGVuOiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBOb1JlYVN1cCA9IHtcclxuICAgIG9wZXJhdGl2bzogc3RyaW5nXHJcbiAgICBub19yZWFfc3VwOiBudW1iZXI7XHJcbiAgICBkZXNjX25vcmVhX3N1cDogc3RyaW5nO1xyXG4gICAgZ3J1cG9fc3VwOiBzdHJpbmc7XHJcbiAgICB2YXJpYWJsZV9zdXA6IHN0cmluZztcclxuICAgIHZhbG9yX3N1cDogc3RyaW5nO1xyXG4gICAgZ3J1cG8wX3N1cDogc3RyaW5nO1xyXG4gICAgb3JkZW46IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFJlYSA9IHtcclxuICAgIG9wZXJhdGl2bzogc3RyaW5nXHJcbiAgICByZWE6IG51bWJlcjtcclxuICAgIGRlc2NyaXBjaW9uOiBzdHJpbmc7XHJcbiAgICBjb25kaWNpb246IHN0cmluZztcclxuICAgIGNvbmRpY2lvbl9qczogc3RyaW5nO1xyXG4gICAgb3JkZW46IG51bWJlcjtcclxuICAgIGVzX3Bvc2l0aXZhOiBib29sZWFuO1xyXG4gICAgdGFyZWE6IHN0cmluZyB8IG51bGw7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBSZWFTdXAgPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgcmVhX3N1cDogbnVtYmVyO1xyXG4gICAgZGVzY3JpcGNpb246IHN0cmluZztcclxuICAgIGNvbmRpY2lvbjogc3RyaW5nO1xyXG4gICAgY29uZGljaW9uX2pzOiBzdHJpbmc7XHJcbiAgICBvcmRlbjogbnVtYmVyO1xyXG4gICAgZXNfcG9zaXRpdmE6IGJvb2xlYW47XHJcbiAgICB0YXJlYTogc3RyaW5nIHwgbnVsbDtcclxufTtcclxuXHJcbi8vIE1hcGVvIGRlIHRpcG9zIHBhcmEgYXNvY2lhciBlbCBzdHJpbmcgZGUgbGEgY29uZGljacOzbiBjb24gc3UgaW50ZXJmYXogY29ycmVzcG9uZGllbnRlXHJcbmV4cG9ydCB0eXBlIE1hcGVvVGlwb0l0ZW0gPSB7XHJcbiAgICAncmVhJzogUmVhO1xyXG4gICAgJ25vX3JlYSc6IE5vUmVhO1xyXG4gICAgJ3JlYV9zdXAnOiBSZWFTdXA7XHJcbiAgICAnbm9fcmVhX3N1cCc6IE5vUmVhU3VwO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYSA9IHtcclxuICAgIGZvcm11bGFyaW9zOiB7XHJcbiAgICAgICAgW25vbWJyZUZvcm11bGFyaW8gaW4gSWRGb3JtdWxhcmlvXTogSW5mb0Zvcm11bGFyaW9cclxuICAgIH07XHJcbiAgICB1bmlkYWRlc19hbmFsaXNpczoge1xyXG4gICAgICAgIFtpZFVuaWRhZEFuYWxpc2lzIGluIElkVW5pZGFkQW5hbGlzaXNdOiBVbmlkYWRBbmFsaXNpc1xyXG4gICAgfTtcclxuICAgIHRhcmVhczogVGFyZWFzRXN0cnVjdHVyYTtcclxuICAgIHVhUHBhbDogSWRVbmlkYWRBbmFsaXNpcztcclxuICAgIHBrQWdyZWdhZGFVYVBwYWw6IENhbXBvUGtSYWl6O1xyXG4gICAgdGltZXN0YW1wOiBudW1iZXI7XHJcbiAgICBvcGVyYXRpdm86IElkT3BlcmF0aXZvO1xyXG4gICAgY29uZmlnU29ydGVvOiBDb25maWd1cmFjaW9uU29ydGVvO1xyXG4gICAgaGFiaWxpdGFjaW9uQm90b25Gb3JtdWxhcmlvOiBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvO1xyXG4gICAgY29uUmVhSG9nYXI6IGJvb2xlYW47XHJcbiAgICBub1JlYXM6IE5vUmVhW107XHJcbiAgICBub1JlYXNTdXA6IE5vUmVhU3VwW107XHJcbiAgICByZWFzOiBSZWFbXTtcclxuICAgIHJlYXNTdXA6IFJlYVN1cFtdO1xyXG4gICAgc2VtYW5hczogeyBbaWRTZW1hbmEgaW4gSWRTZW1hbmFdOiBTZW1hbmEgfTtcclxuICAgIGRlZmF1bHRJbmZvcm1hY2lvbkhkcjogRGF0b3NIZHJVYVBwYWw7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBJZEVuYyA9IDEzMDAzMSB8IDEzMDAzMjtcclxuZXhwb3J0IHR5cGUgSW5mb3JtYWNpb25IZHIgPSB7IFtlbmMgaW4gSWRFbmNdOiBEYXRvc0hkclVhUHBhbCB9XHJcblxyXG5leHBvcnQgdHlwZSBDYXNvU3RhdGUgPSB7XHJcbiAgICBvcGNpb25lczogeyAvLyBkYXRvcyBkZSBuYXZlZ2FjacOzbiBxdWUgZWxpamUgZWwgdXN1YXJpb1xyXG4gICAgICAgIGZvclBrOiBGb3JQayB8IG51bGwgLy8gw61uZGljZSBkZW50cm8gZGUgbGFzIHVuaWRhZGVzIGRlIGFuw6FsaXNpcy4gTnVsbCA9IGVuIGhvamEgZGUgcnV0YVxyXG4gICAgICAgIHBpbGFGb3JQazogRm9yUGtbXVxyXG4gICAgICAgIG1vZG9EZXNwbGllZ3VlOiBNb2RvRGVzcGxpZWd1ZVxyXG4gICAgICAgIG1vZG9EaXJlY3RvOiBib29sZWFuXHJcbiAgICAgICAgbW9kb0JvcnJhclJlc3B1ZXN0YTogSWRWYXJpYWJsZSB8IG51bGxcclxuICAgICAgICBjb25DYW1wb09wY2lvbmVzOiBib29sZWFuXHJcbiAgICAgICAgc2FsdG9BdXRvbWF0aWNvOiBib29sZWFuXHJcbiAgICAgICAgcGFudGFsbGFBY3R1YWw6IFBhbnRhbGxhTmF2ZWdhY2lvblxyXG4gICAgICAgIGF2aXNvUGVyc2lzdGVudGU6IHsgdGlwbzogJ2luZm8nIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJywgbWVuc2FqZTogc3RyaW5nfSB8IG51bGxcclxuICAgICAgICBjb21vZGluZXM6IHtbaWRDb21vZGluIGluIElkQ29tb2Rpbl0/OiBzdHJpbmd9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3VsdGFkb1JlYU5vUmVhPEsgZXh0ZW5kcyBrZXlvZiBDb2RSZWFOb1JlYSwgQiBleHRlbmRzIHN0cmluZz4gPSB7XHJcbiAgICBbUCBpbiBLXTogQ29kUmVhTm9SZWFbS107XHJcbn0gJiB7XHJcbiAgICBbUCBpbiBCXTogYm9vbGVhbjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEZ1bmNpb25lc0NhbGN1bG9SZWFOb1JlYSA9IHtcclxuICBlc05vUmVhOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcywgdGFyZWE6IHN0cmluZykgPT4gUmVzdWx0YWRvUmVhTm9SZWE8J2NvZE5vUmVhJywgJ2VzTm9SZWEnPjtcclxuICBlc05vUmVhU3VwOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcywgdGFyZWE6IHN0cmluZykgPT4gUmVzdWx0YWRvUmVhTm9SZWE8J2NvZE5vUmVhU3VwJywgJ2VzTm9SZWFTdXAnPjtcclxuICBlc1JlYWxpemFkYTogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMsIHRhcmVhOiBzdHJpbmcpID0+IFJlc3VsdGFkb1JlYU5vUmVhPCdjb2RSZWEnLCAnZXNSZWEnPjtcclxuICBlc1JlYWxpemFkYVN1cDogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMsIHRhcmVhOiBzdHJpbmcpID0+IFJlc3VsdGFkb1JlYU5vUmVhPCdjb2RSZWFTdXAnLCAnZXNSZWFTdXAnPjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIERlZk9wZXJhdGl2byA9IEZ1bmNpb25lc0NhbGN1bG9SZWFOb1JlYSAmIHtcclxuICAgIFVBcHJpbmNpcGFsOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgZGVmVUE6IHsgW2kgaW4gSWRVbmlkYWRBbmFsaXNpc106IHsgcGs6IElkVmFyaWFibGUsIGluY2x1aWRhczogSWRVbmlkYWRBbmFsaXNpc1tdLCBpZHNGb3I6IElkRm9ybXVsYXJpb1tdIH0gfSxcclxuICAgIGRlZkZvcjogeyBbZiBpbiBJZEZvcm11bGFyaW9dOiB7LyphcmJvbFVBOklkVW5pZGFkQW5hbGlzaXNbXSwgKi8gaGVybWFubz86IHRydWUgfSB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzID0ge1xyXG4gICAgcmVzcHVlc3RhczogeyBbdWEgaW4gSWRVbmlkYWRBbmFsaXNpc106IFJlc3B1ZXN0YXNSYWl6W10gfVxyXG4gICAgbW9kb0FsbWFjZW5hbWllbnRvOiBNb2RvQWxtYWNlbmFtaWVudG9cclxuICAgIHBlcnNvbmE6IHN0cmluZ1xyXG4gICAgdGFyZWE6IElkVGFyZWFcclxuICAgIGlkcGVyOiBzdHJpbmdcclxuICAgIGNhcmdhczogQ2FyZ2FzXHJcbiAgICBpbmZvcm1hY2lvbkhkcjogSW5mb3JtYWNpb25IZHJcclxuICAgIHNvbG9MZWN0dXJhOiBib29sZWFuXHJcbiAgICB0b2tlbj86IHN0cmluZ1xyXG4gICAgbnVtX3NpbmNybz86IG51bWJlclxyXG4gICAgdGltZXN0YW1wRXN0cnVjdHVyYT86IG51bWJlclxyXG4gICAgcGVybWl0ZUJvcnJhckVsZW1lbnRvc1VBPzogYm9vbGVhblxyXG59XHJcblxyXG50eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9UYWJsYSA9IHtcclxuICAgIG1ldG9kbzogXCJ0YWJsYVwiLFxyXG4gICAgcGFyYW1fbWV0b2RvOiB7XHJcbiAgICAgICAgdGFibGE6IHN0cmluZ1tdLFxyXG4gICAgICAgIHZhcl9sZXRyYTogSWRWYXJpYWJsZSxcclxuICAgIH1cclxufVxyXG5cclxudHlwZSBDb25maWd1cmFjaW9uU29ydGVvSGFzaCA9IHtcclxuICAgIG1ldG9kbzogXCJoYXNoXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB2YXJfY29lZjogW1xyXG4gICAgICAgICAgICB7IHZhcjogSWRWYXJpYWJsZSwgY29lZjogbnVtYmVyIH0sXHJcbiAgICAgICAgICAgIHsgdmFyOiBJZFZhcmlhYmxlLCBjb2VmOiBudW1iZXIgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIGRpdmlzb3I6IG51bWJlclxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvID0geyBba2V5IGluIElkRm9ybXVsYXJpb106IENvbmZpZ3VyYWNpb25Tb3J0ZW9Gb3JtdWxhcmlvIH1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25IYWJpbGl0YXJCb3RvbkZvcm11bGFyaW8gPSB7IFtrZXkgaW4gSWRGb3JtdWxhcmlvXTogQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpb0Zvcm0gfVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvblNvcnRlb0Zvcm11bGFyaW8gPSB7XHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICB1bmlkYWRfYW5hbGlzaXNfcGFkcmU6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICAvL2V4cHJfaW5jb21wbGV0aXR1ZDogc3RyaW5nIC8vXCJub3QgKHAxKSBvciBubyB0IChwMikgb3Igbm90KHAzKVwiXHJcbiAgICBleHByX2luY29tcGxldGl0dWQ6IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWRfanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZF9qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICBkaXNwYXJhZG9yOiBJZFZhcmlhYmxlIC8vXCJwOVwiXHJcbiAgICAvL2ZpbHRybzogc3RyaW5nIC8vXCJwMz49MThcIlxyXG4gICAgZmlsdHJvOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOiB7IGRvbWluaW86IG51bWJlciwgZXhwcjogc3RyaW5nIH1cclxuICAgIH1cclxuICAgIC8vZmlsdHJvX2pzOiBzdHJpbmcgLy9zZSBjcmVhIGFsIGNvbXBpbGFyXHJcbiAgICBmaWx0cm9fanM6IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgb3JkZW46IHtcclxuICAgICAgICB2YXJpYWJsZTogSWRWYXJpYWJsZVxyXG4gICAgICAgIG9yZGVuOiAxIHwgLTFcclxuICAgIH1bXSAvL1tcInAzXCIsIFwicDJcIiwgXCJwMVwiLCBcInAwXCJdLCAvLyBwMCBlcyBjb25zdHJ1aWRhLCBubyB2YSBlbiBwYXLDoW1ldHJvcywgc2UgcG9uZSBwYXJhIHF1ZSBlbCBvcmRlbiBzZWEgZGV0ZXJtaW7DrXN0aWNvXHJcbiAgICBwYXJhbWV0cm9zOiBJZFZhcmlhYmxlW10vLyBbXCJwMVwiLFwicDJcIixcInAzXCIsIFwicDRcIiwgXCJwNVwiLCBcInA2XCJdLCAvLyB2YXJpYWJsZXMgcXVlIGFudWxhbiBhbCBkaXNwYXJhZG9yXHJcbiAgICBjYW50aWRhZF9zb3J0ZWFibGVzOiBJZFZhcmlhYmxlXHJcbiAgICBjYW50aWRhZF90b3RhbDogSWRWYXJpYWJsZVxyXG4gICAgcmVzdWx0YWRvOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgcmVzdWx0YWRvX21hbnVhbDogSWRWYXJpYWJsZSAvL1wicDExXCJcclxuICAgIHNvcnRlYWRvX21vc3RyYXI/OiB7IHNvdXJjZTogSWRWYXJpYWJsZSwgdGFyZ2V0OiBJZFZhcmlhYmxlIH1bXSxcclxuICAgIGluY29tcGxldGFzOiBJZFZhcmlhYmxlXHJcbiAgICB2YXJpYWJsZUJvdG9uRm9ybXVsYXJpb1VBOiBJZFZhcmlhYmxlLy8nJEIuRjpTMV9QJ1xyXG4gICAgdmFyaWFibGVCb3RvbkZvcm11bGFyaW9VQUluZGl2aWR1YWw/OiBJZFZhcmlhYmxlIC8vJyRCLkY6STEnXHJcbiAgICBpZF9mb3JtdWxhcmlvX2luZGl2aWR1YWw/OiBJZEZvcm11bGFyaW8gLy8gJ0Y6STEnXHJcbiAgICBpZF9mb3JtdWxhcmlvX3BhZHJlPzogSWRGb3JtdWxhcmlvIC8vICdGOlMxJ1xyXG59ICYgKENvbmZpZ3VyYWNpb25Tb3J0ZW9IYXNoIHwgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhKVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpb0Zvcm0gPSB7XHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICBleHByX2hhYmlsaXRhcl9ib3Rvbjogc3RyaW5nLFxyXG4gICAgZXhwcl9oYWJpbGl0YXJfYm90b25fanM6IHN0cmluZyxcclxuICAgIGhhYmlsaXRhcl9hZ3JlZ2FyX2xpc3RvOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluRm9yUGsoZm9yUGs6IEZvclBrKTogUGxhaW5Gb3JQayB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZm9yUGspIGFzIFBsYWluRm9yUGs7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgaXRlcmF0b3I6IDxUPihvOiBPYmpldG9OdW1lcmFkb09BcnJheTxUPikgPT4gSXRlcmFibGU8VD4gPSBMaWtlQXIuaXRlcmF0b3JcclxuZXhwb3J0IHZhciBlbXB0eTogPFQ+KG86IE9iamV0b051bWVyYWRvT0FycmF5PFQ+IHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gYm9vbGVhbiA9IExpa2VBci5lbXB0eVxyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gICAgbmFtZXNwYWNlIG15T3duIHtcclxuICAgICAgICBpbnRlcmZhY2UgQWRkclBhcmFtcyB7XHJcbiAgICAgICAgICAgIHN0YXRlX2ZvclBrOiBzdHJpbmdcclxuICAgICAgICAgICAgc3RhdGVfcGlsYUZvclBrOiBzdHJpbmdcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERpcmVjY2lvbkFjY2lvbiA9ICdhdmFuY2UnIHwgJ3JldHJvY2VzbycgfCAnYmxhbnF1ZW8nXHJcblxyXG5leHBvcnQgdHlwZSBFc3RhZG9BY2Npb24gPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgZXN0YWRvOiBzdHJpbmdcclxuICAgIGVhY2Npb246IHN0cmluZ1xyXG4gICAgY29uZGljaW9uOiBzdHJpbmdcclxuICAgIGVzdGFkb19kZXN0aW5vOiBzdHJpbmdcclxuICAgIGVhY2Npb25fZGlyZWNjaW9uOiBEaXJlY2Npb25BY2Npb25cclxuICAgIHBhdGhfaWNvbm9fc3ZnOiBzdHJpbmdcclxuICAgIG5vbWJyZV9wcm9jZWR1cmU6IHN0cmluZ1xyXG4gICAgbm9tYnJlX3dzY3JlZW46IHN0cmluZ1xyXG4gICAgZGVzYWN0aXZhX2JvdG9uOiBib29sZWFuXHJcbiAgICBjb25maXJtYTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCB0eXBlIE1vZG9ETSA9ICdwcm9kdWMnIHwgJ2NhcGEnO1xyXG4vLyBheXVkYSBlbiBsw61uZWEgcGFyYSB1c3VhcmlvczogbG8gcXVlIGRldnVlbHZlIGVsIHByb2NlZGltaWVudG8gYXl1ZGFfdHJhZXIgKHZlciBkb2NzL2F5dWRhLW9ubGluZS5tZClcclxuZXhwb3J0IHR5cGUgTW9kb0FwcCA9ICdSRUxFVkFNSUVOVE8nIHwgJ0dBQklORVRFJ1xyXG5leHBvcnQgdHlwZSBBeXVkYVRlbWFQYXJhVXN1YXJpbyA9IHtcclxuICAgIGlkOiBzdHJpbmdcclxuICAgIHRpdHVsbzogc3RyaW5nXHJcbiAgICBodG1sOiBzdHJpbmdcclxufVxyXG4vLyB1bmEgb3BjacOzbiBkZWwgbWVuw7ogZGVsIHVzdWFyaW8sIGNvbiBlbCB0ZW1hIGRlIGF5dWRhIHF1ZSBsYSBleHBsaWNhIChzaSBoYXkgYWxndW5vKVxyXG5leHBvcnQgdHlwZSBBeXVkYU9wY2lvbk1lbnUgPSB7XHJcbiAgICBydXRhOiBzdHJpbmcgLy8gbm9tYnJlcyBkZSBsYXMgb3BjaW9uZXMgc2VwYXJhZG9zIHBvciBcIi9cIiwgcG9yIGVqZW1wbG8gXCJhc2lnbmFjaW9uL2VuY3Vlc3RhZG9yXCJcclxuICAgIGxhYmVsOiBzdHJpbmdcclxuICAgIHRlbWE6IHN0cmluZyB8IG51bGxcclxuICAgIG9wY2lvbmVzOiBBeXVkYU9wY2lvbk1lbnVbXVxyXG59XHJcbmV4cG9ydCB0eXBlIEF5dWRhUGFyYVVzdWFyaW8gPSB7XHJcbiAgICByb2w6IHN0cmluZyB8IG51bGxcclxuICAgIG1vZG86IE1vZG9BcHBcclxuICAgIHRlbWFzOiBBeXVkYVRlbWFQYXJhVXN1YXJpb1tdXHJcbiAgICBtZW51OiBBeXVkYU9wY2lvbk1lbnVbXVxyXG59Il19
@@ -13,7 +13,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
13
13
  if (v !== undefined) module.exports = v;
14
14
  }
15
15
  else if (typeof define === "function" && define.amd) {
16
- define(["require", "exports", "js-to-html", "./render-formulario", "cast-error", "./render-init", "./abrir-formulario", "./render-config"], factory);
16
+ define(["require", "exports", "js-to-html", "./render-formulario", "cast-error", "service-worker-admin", "./render-init", "./abrir-formulario", "./render-config"], factory);
17
17
  }
18
18
  })(function (require, exports) {
19
19
  "use strict";
@@ -51,9 +51,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
51
51
  var estructura = yield myOwn.ajax.operativo_estructura_completa({ operativo: datos.operativo, idper_logueado_tablet });
52
52
  yield formRenderer.persistirEstructura(estructura);
53
53
  my.removeLocalVar(abrir_formulario_1.BACKUPS);
54
+ yield descargarAyuda();
54
55
  return datos;
55
56
  });
56
57
  }
58
+ // guarda la ayuda del usuario para verla sin conexión; si falla no se interrumpe la sincronización
59
+ function descargarAyuda() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ try {
62
+ var ayuda = yield my.ajax.ayuda_traer({});
63
+ (0, render_config_1.getFormRenderer)().persistirAyuda(ayuda);
64
+ }
65
+ catch (err) {
66
+ console.log('no se pudo descargar la ayuda', err);
67
+ }
68
+ });
69
+ }
57
70
  window.addEventListener('load', function () {
58
71
  return __awaiter(this, void 0, void 0, function* () {
59
72
  var layout = document.getElementById('total-layout');
@@ -394,4 +407,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
394
407
  });
395
408
  }();
396
409
  });
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2dnZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdW5sb2dnZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFDYiwyQ0FBaUM7SUFDakMsMkRBQWdFO0lBRWhFLDJDQUFzQztJQUN0QyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzNELCtDQUErRDtJQUMvRCx5REFBNkM7SUFDN0MsbURBQWtEO0lBRWxELFNBQVMsVUFBVSxDQUFDLEVBQVUsRUFBRSxLQUFrQztRQUM5RCxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUcsUUFBUSxJQUFFLElBQUksRUFBQyxDQUFDO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxFQUFTLEVBQUUsT0FBZTtRQUNqRCxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxFQUFFLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUEsQ0FBQyxDQUFBLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFFdkIsSUFBSSxpQkFBaUIsR0FBRyxHQUFFLEVBQUU7UUFDeEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBQyxRQUFRLENBQUMsUUFBUSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEYsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3JCLENBQUMsQ0FBQTtJQUVELFNBQWUsZ0JBQWdCLENBQUMsWUFBNEMsRUFBRSxZQUFx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LXRvLWh0bWwnO1xyXG5pbXBvcnQgeyBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsIH0gZnJvbSAnLi9yZW5kZXItZm9ybXVsYXJpbyc7XHJcbmltcG9ydCB7IERhdG9zQnlQYXNzUGVyc2lzdGlibGVzLCBNb2RvRE0gfSBmcm9tICcuL3RpcG9zJztcclxuaW1wb3J0IHsgZXhwZWN0ZWQgfSBmcm9tIFwiY2FzdC1lcnJvclwiO1xyXG5jb25zdCBTZXJ2aWNlV29ya2VyQWRtaW4gPSByZXF1aXJlKFwic2VydmljZS13b3JrZXItYWRtaW5cIik7XHJcbmltcG9ydCB7IGNyZWF0ZUxvY2FsU3RvcmFnZUZvcm1SZW5kZXJlciB9IGZyb20gXCIuL3JlbmRlci1pbml0XCI7XHJcbmltcG9ydCB7IEJBQ0tVUFMgfSBmcm9tICcuL2FicmlyLWZvcm11bGFyaW8nO1xyXG5pbXBvcnQgeyBnZXRGb3JtUmVuZGVyZXIgfSBmcm9tIFwiLi9yZW5kZXItY29uZmlnXCI7XHJcblxyXG5mdW5jdGlvbiBzaUV4aXN0ZUlkKGlkOiBzdHJpbmcsIGhhY2VyOiAoYXJnMDogSFRNTEVsZW1lbnQpID0+IHZvaWQpe1xyXG4gICAgdmFyIGVsZW1lbnRvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgaWYoZWxlbWVudG8hPW51bGwpe1xyXG4gICAgICAgIGhhY2VyKGVsZW1lbnRvKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gbW9zdHJhckVsZW1lbnRvSWQoaWQ6c3RyaW5nLCBtb3N0cmFyOmJvb2xlYW4pe1xyXG4gICAgc2lFeGlzdGVJZChpZCwgZT0+ZS5zdHlsZS5kaXNwbGF5PW1vc3RyYXI/J2Jsb2NrJzonbm9uZScpO1xyXG59XHJcbmNvbnN0IFVSTF9ETSA9ICdjYW1wbyc7XHJcblxyXG52YXIgcmVsb2FkV2l0aG91dEhhc2ggPSAoKT0+e1xyXG4gICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIGAke2xvY2F0aW9uLm9yaWdpbitsb2NhdGlvbi5wYXRobmFtZX0vLi4vJHtVUkxfRE19YCk7XHJcbiAgICBsb2NhdGlvbi5yZWxvYWQoKVxyXG59XHJcblxyXG5hc3luYyBmdW5jdGlvbiBzaW5jcm9uaXphckRhdG9zKHBlcnNpc3RlbnRlczogRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgfCBudWxsLCBjYW1iaWFNb2RvRE06IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGZvcm1SZW5kZXJlciA9IGdldEZvcm1SZW5kZXJlcigpO1xyXG4gICAgbGV0IG1vZG9ETTogTW9kb0RNID0gZm9ybVJlbmRlcmVyLmdldE1vZG9ETSgpIHx8IGF3YWl0IG15LmFqYXgubW9kb19kbV9kZWZlY3RvX29idGVuZXIoe30pO1xyXG4gICAgZm9ybVJlbmRlcmVyLnNldE1vZG9ETShtb2RvRE0pO1xyXG4gICAgY29uc3QgaWRwZXJfbG9ndWVhZG9fdGFibGV0ID0gZm9ybVJlbmRlcmVyLmdldElkcGVyTG9ndWVhZG8oKTtcclxuICAgIHZhciBkYXRvcyA9IGF3YWl0IG15LmFqYXguZG1fc2luY3Jvbml6YXIoeyBwZXJzaXN0ZW50ZXMsIG1vZG9fZG06IG1vZG9ETSwgY2FtYmlhX21vZG9fZG06IGNhbWJpYU1vZG9ETSwgaWRwZXJfbG9ndWVhZG9fdGFibGV0IH0pO1xyXG4gICAgYXdhaXQgZm9ybVJlbmRlcmVyLnBlcnNpc3RpckRhdG9zKHsgLi4uZGF0b3MsIG1vZG9BbG1hY2VuYW1pZW50bzogJ2xvY2FsJyB9KTtcclxuICAgIHZhciBlc3RydWN0dXJhID0gYXdhaXQgbXlPd24uYWpheC5vcGVyYXRpdm9fZXN0cnVjdHVyYV9jb21wbGV0YSh7IG9wZXJhdGl2bzogZGF0b3Mub3BlcmF0aXZvLCBpZHBlcl9sb2d1ZWFkb190YWJsZXQgfSk7XHJcbiAgICBhd2FpdCBmb3JtUmVuZGVyZXIucGVyc2lzdGlyRXN0cnVjdHVyYShlc3RydWN0dXJhKTtcclxuICAgIG15LnJlbW92ZUxvY2FsVmFyKEJBQ0tVUFMpO1xyXG4gICAgcmV0dXJuIGRhdG9zO1xyXG59XHJcblxyXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGZ1bmN0aW9uKCl7XHJcbiAgICB2YXIgbGF5b3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdGFsLWxheW91dCcpITtcclxuICAgIGlmKCFsYXlvdXQpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdubyBlbmN1ZW50cm8gZWwgRElWLnRvdGFsLWxheW91dCcpXHJcbiAgICAgICAgYXdhaXQgbXlPd24ucmVhZHk7XHJcbiAgICAgICAgbGF5b3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdGFsLWxheW91dCcpITtcclxuICAgIH1cclxuICAgIGF3YWl0IG15T3duLnJlYWR5O1xyXG4gICAgaWYobG9jYXRpb24ucGF0aG5hbWUuZW5kc1dpdGgoJy9zYWx2YXInKSl7XHJcbiAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICBmb3IgKGxldCB4IGluIGxvY2FsU3RvcmFnZSl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhsb2NhbFN0b3JhZ2VbeF0pO1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgbXlPd24uYWpheC5kbV9yZXNjYXRhcih7bG9jYWxTdG9yYWdlSXRlbTpsb2NhbFN0b3JhZ2VbeF0sIGxvY2FsU3RvcmFnZUl0ZW1LZXk6eH0pXHJcbiAgICAgICAgICAgICAgICBsYXlvdXQuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwucChgaXRlbSBcIiR7eH1cIiBkZSBsb2NhbFN0b2dhZ2UgZ3VhcmRhZG8uYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXlvdXQuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgaHRtbC5wKGB0b2RvcyBsb3MgaXRlbXMgZnVlcm9uIHNhbHZhZG9zLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgIGh0bWwucChgc2UgcHJvZHVqbyB1biBlcnJvciBhbCBzYWx2YXIgbG9zIGRhdG9zIGRlbCBkbS5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyeXtcclxuICAgICAgICAgICAgdmFyIHJlZ2lzdHJhdGlvbnMgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7XHJcbiAgICAgICAgICAgIGZvcihsZXQgcmVnaXN0cmF0aW9uIG9mIHJlZ2lzdHJhdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXlvdXQuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgaHRtbC5wKGB0b2RvcyBsb3Mgc3cgZnVlcm9uIGRlc2luc3RhbGFkb3MuYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICBsYXlvdXQuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgaHRtbC5wKGBzZSBwcm9kdWpvIHVuIGVycm9yIGFsIGRlc2luc3RhbGFyIGxvcyBzdy5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgbGF5b3V0LmlubmVySFRNTCA9IGBcclxuICAgIDxzcGFuIGlkPVwibWluaS1jb25zb2xlXCI+PC9zcGFuPlxyXG4gICAgXHJcbiAgICA8IS0tIEJhbm5lciBkZSBOdWV2YSBWZXJzacOzbiAoUHJvdGFnb25pc21vIEFic29sdXRvIC0gQ2VudHJvIGRlIGxhIFBhbnRhbGxhKSAtLT5cclxuICAgIDxkaXYgaWQ9XCJudWV2YS12ZXJzaW9uLWluc3RhbGFkYVwiIHN0eWxlPVwiXHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkOyBcclxuICAgICAgICB0b3A6IDM1JTsgXHJcbiAgICAgICAgbGVmdDogNTAlOyBcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgXHJcbiAgICAgICAgei1pbmRleDogOTk5OTk7IFxyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJlN2QzMjsgLyogTVVJIFN1Y2Nlc3MgUHJpbmNpcGFsICovXHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmc6IDMycHggNDhweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KTtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiAyNHB4O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ0hlbHZldGljYScsICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1pbi13aWR0aDogMzAwcHg7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA5MCU7XHJcbiAgICAgICAgcGFkZGluZzogMjVweDtcclxuICAgIFwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDhweDtcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDIycHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGxldHRlci1zcGFjaW5nOiAwLjI1cHg7XCI+wqFpbnN0YWxhY2nDs24gY29ycmVjdGEhPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gaWQ9XCJyZWZyZXNjYXJcIiBzdHlsZT1cIlxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgICBjb2xvcjogIzJlN2QzMjtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDI0cHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIHRyYW5zZm9ybSAwLjFzO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBnYXA6IDhweDtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDE1cHggYXV0bztcclxuICAgICAgICBcIj5cclxuICAgICAgICAgICAgQ29udGludWFyXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGlkPVwiaW5zdGFsYWRvXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj5cclxuICAgICAgICA8ZGl2IGlkPVwibWFpbl9sYXlvdXRcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8IS0tIFBhbmVsIGRlIFByb2dyZXNvIE9jdXBhbmRvIE3DoXMgUGFudGFsbGEgKExpbXBpbyB5IENvcnBvcmF0aXZvKSAtLT5cclxuICAgIDxkaXYgaWQ9XCJpbnN0YWxhbmRvXCIgc3R5bGU9XCJcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIHRvcDogNDBweDtcclxuICAgICAgICBsZWZ0OiA0MHB4O1xyXG4gICAgICAgIHJpZ2h0OiA0MHB4O1xyXG4gICAgICAgIGJvdHRvbTogNDBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyAvKiBGb25kbyBibGFuY28gbGltcGlvIE1VSSAqL1xyXG4gICAgICAgIGNvbG9yOiAjMWUyOTNiO1xyXG4gICAgICAgIHBhZGRpbmc6IDMycHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA4cHggMjRweCByZ2JhKDAsMCwwLDAuMTIpO1xyXG4gICAgICAgIHotaW5kZXg6IDk5OTk4O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ0hlbHZldGljYScsICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgXCI+XHJcbiAgICAgICAgPGRpdiBpZD1cInZvbHZlci1kZS1pbnN0YWxhY2lvblwiIHN0eWxlPVwiXHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xyXG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgICBcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTRweDtcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gU3Bpbm5lciBNaW5pbWFsaXN0YSBkZSBNVUkgKENpcmN1bGFyUHJvZ3Jlc3MpIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4OyBcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7IFxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlMmU4ZjA7IFxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgXHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzE5NzZkMjsgLyogTVVJIFByaW1hcnkgKi9cclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IHN3LXNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICAgICAgICBcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzdHlsZT5Aa2V5ZnJhbWVzIHN3LXNwaW4geyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfTwvc3R5bGU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInZvbHZlci1kZS1pbnN0YWxhY2lvbi1wb3ItcXVlXCIgc3R5bGU9XCJjb2xvcjogIzE5NzZkMjsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxM3B4OyBsZXR0ZXItc3BhY2luZzogMC44cHg7XCI+REVTQ0FSR0FORE8gUkVDVVJTT1MgREUgTEEgQVBMSUNBQ0nDk048L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGlkPVwidm9sdmVyLWRlLWluc3RhbGFjaW9uLWNvbW9cIiBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzY0NzQ4YjtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYmQ1ZTE7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMTZweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xyXG4gICAgICAgICAgICBcIj5Wb2x2ZXI8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8aDIgc3R5bGU9XCJjb2xvcjogIzFlMjkzYjsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogNDAwOyBtYXJnaW46IDAgMCAxNnB4IDA7XCI+SGlzdG9yaWFsIGRlIGluc3RhbGFjacOzbjwvaDI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPCEtLSBDb25zb2xhIGV4cGFuZGlkYSB5IGxpbXBpYSBzaW4gZXN0w6l0aWNhIHRlcm1pbmFsIC0tPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJhcmNoaXZvc1wiIHN0eWxlPVwiXHJcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMDtcclxuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgICAgICAgICBjb2xvcjogIzQ3NTU2OTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZmFmYzsgLyogR3JpcyBtdXkgdGVudWUsIG5hZGEgZ2FtZXIgKi9cclxuICAgICAgICAgICAgcGFkZGluZzogMTZweDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4XHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuYDtcclxuICAgICAgICBpZihsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aChgLyR7VVJMX0RNfWApKXtcclxuICAgICAgICAgICAgY29uc3QgZm9ybVJlbmRlcmVyID0gY3JlYXRlTG9jYWxTdG9yYWdlRm9ybVJlbmRlcmVyKHsgb25TaW5jcm9uaXphcjogc2luY3Jvbml6YXJEYXRvcyB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRBcHAgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtb2RvRG1EZWZlY3RvOiBNb2RvRE0gPSBmb3JtUmVuZGVyZXIuZ2V0TW9kb0RNKCkgfHwgYXdhaXQgbXkuYWpheC5tb2RvX2RtX2RlZmVjdG9fb2J0ZW5lcih7fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybVJlbmRlcmVyLnNldE1vZG9ETShtb2RvRG1EZWZlY3RvKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBzZSBwdWRvIHRyYWVyIGVsIG1vZG8gcG9yIGRlZmVjdG8nKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBhd2FpdCBzd2EuZ2V0U1coJ3ZlcnNpb24nKTtcclxuICAgICAgICAgICAgICAgIGZvcm1SZW5kZXJlci5zZXRBcHBDYWNoZVZlcnNpb24odmVyc2lvbik7XHJcbiAgICAgICAgICAgICAgICBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsKGZvcm1SZW5kZXJlciwge30pO1xyXG4gICAgICAgICAgICAgICAgbXkubWVudU5hbWUgPSBVUkxfRE07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHJlZnJlc2NhclN0YXR1cz1hc3luYyBmdW5jdGlvbihzaG93U2NyZWVuOiBzdHJpbmcsIG5ld1ZlcnNpb25BdmFpYWJsZTogc3RyaW5nLCBfaW5zdGFsbGluZzogYW55KXtcclxuICAgICAgICAgICAgICAgIHZhciBidXNjYW5kb0FjdHVhbGl6YWNpb24gPSBsb2NhdGlvbi5ocmVmLmVuZHNXaXRoKCcjaW5zdD0xJyk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVldmEtdmVyc2lvbi1pbnN0YWxhZGEnKSEuc3R5bGUuZGlzcGxheT1uZXdWZXJzaW9uQXZhaWFibGU9PSd5ZXMnPycnOidub25lJztcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2b2x2ZXItZGUtaW5zdGFsYWNpb24nKSEuc3R5bGUuZGlzcGxheT1uZXdWZXJzaW9uQXZhaWFibGU9PSd5ZXMnPydub25lJzonJztcclxuICAgICAgICAgICAgICAgIGlmKHNob3dTY3JlZW49PSdhcHAnICYmICFidXNjYW5kb0FjdHVhbGl6YWNpb24pe1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhZG8nKSEuc3R5bGUuZGlzcGxheT0nJztcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYW5kbycpIS5zdHlsZS5kaXNwbGF5PSdub25lJztcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhZG8nKSEuc3R5bGUuZGlzcGxheT0nbm9uZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFuZG8nKSEuc3R5bGUuZGlzcGxheT0nJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdmFyIHN3YSA9IG5ldyBTZXJ2aWNlV29ya2VyQWRtaW4oKTtcclxuICAgICAgICAgICAgc3dhLmluc3RhbGxPckFjdGl2YXRlKHtcclxuICAgICAgICAgICAgICAgIG9uRWFjaEZpbGU6IGFzeW5jICh1cmw6IHN0cmluZywgX2Vycm9yOiBFcnJvciB8IG51bGwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmlsZTogJywgdXJsKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJjaGl2b3NDb250ZW5lZG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FyY2hpdm9zJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFyY2hpdm9zQ29udGVuZWRvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZvc0NvbnRlbmVkb3IuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB1cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICd3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7IHBhZGRpbmc6IDJweCAwOydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGA+ICR7dXJsfWApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF1dG9zY3JvbGwgcGFyYSB2ZXIgZWwgYXJjaGl2byBtw6FzIHJlY2llbnRlIGFsIGZvbmRvIGRlIGxhIGNvbnNvbGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJjaGl2b3NDb250ZW5lZG9yLnNjcm9sbFRvcCA9IGFyY2hpdm9zQ29udGVuZWRvci5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9uSW5mb01lc3NhZ2U6IChtOiBzdHJpbmcpPT5jb25zb2xlLmxvZygnbWVzc2FnZTogJywgbSksXHJcbiAgICAgICAgICAgICAgICBvbkVycm9yOiBhc3luYyAoZXJyOiBFcnJvciwgY29udGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVycm9yID0gZXhwZWN0ZWQoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3I6ICcgKyAoY29udGV4dCA/IGAgZW4gKCR7Y29udGV4dH0pYCA6ICcnKSwgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbnRleHQsIGVycm9yLCAnZXJyb3ItY29uc29sZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBhbCBkZXNjYXJnYXIgY2FjaGUnLCBlcnJvci5tZXNzYWdlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5zdGFydHNXaXRoKCdjYWNoaW5nICcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBjb250ZXh0LnJlcGxhY2UoJ2NhY2hpbmcgJywgJycpLnRyaW0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZUlkID0gZmlsZVVybDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmaWxlSWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDYW1iaWFtb3MgZWwgZXN0aWxvIGEgdW4gcm9qbyBNVUkgKEVycm9yIHByaW5jaXBhbCkgZWxlZ2FudGUgeSBsZSBhZ3JlZ2Ftb3MgZWwgaW5kaWNhZG9yIGRlIGZhbGxvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlRWxlbWVudC5zdHlsZS5jb2xvciA9ICcjZDMyZjJmJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVFbGVtZW50LnN0eWxlLmZvbnRXZWlnaHQgPSAnNzAwJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjZmZlYmVlJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVFbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzhweCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlRWxlbWVudC5zdHlsZS5ib3JkZXJSYWRpdXMgPSAnMnB4JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVFbGVtZW50LmlubmVySFRNTCA9IGDinYwgRXJyb3I6IE5vIHNlIHB1ZG8gZGVzY2FyZ2FyICR7ZmlsZVVybH0gKCR7ZXJyb3IubWVzc2FnZX0pYDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3J6YW1vcyBzY3JvbGwgcGFyYSBxdWUgZWwgZGVzYXJyb2xsYWRvciB2ZWEgZWwgZXJyb3IgYWwgZmluYWwgZGUgbGEgY29uc29sYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJjaGl2b3NDb250ZW5lZG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FyY2hpdm9zJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJjaGl2b3NDb250ZW5lZG9yKSBhcmNoaXZvc0NvbnRlbmVkb3Iuc2Nyb2xsVG9wID0gYXJjaGl2b3NDb250ZW5lZG9yLnNjcm9sbEhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQgIT0gJ2luaXRpYWxpemluZyBzZXJ2aWNlLXdvcmtlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkYW1vcyBzaWxlbmNpb3NhbWVudGUgc2kgZWwgcHJvYmxlbWEgZXMgZmFsdGEgZGUgc2VzacOzbiAoNDAxKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2VlcEFsaXZlID0gYXdhaXQgZmV0Y2goJ2tlZXAtYWxpdmUuanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoa2VlcEFsaXZlLnN0YXR1cyE9IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ2Rlc2xvZ3VlYWRvJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAocGluZ0Vycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZhbGxvIGRlIGNhY2jDqSBwb3Igc2VzacOzbiBleHBpcmFkYS4gRGVzcGxlZ2FuZG8gYmFubmVyIGZsb3RhbnRlLicpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc3RhbGFuZG9FbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFuZG8nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnN0YWxhbmRvRWxlbSkgaW5zdGFsYW5kb0VsZW0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW11ZXZlIGVsIHBhbmVsIGRlIGRlc2NhcmdhIHNpIHNhbHTDsyBlbCBlcnJvciBkZSBzZXNpw7NuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYW5lbEFyY2hpdm9zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhbmVsLWFyY2hpdm9zLWZsb3RhbnRlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFuZWxBcmNoaXZvcykgcGFuZWxBcmNoaXZvcy5yZW1vdmUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXBkYXRlQmFubmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vdGlmaWNhdGlvbi11cGRhdGUtYmFubmVyJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVwZGF0ZUJhbm5lcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYXlvdXQgPSBhd2FpdCBhd2FpdEZvckNhY2hlTGF5b3V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUJhbm5lciA9IGh0bWwuZGl2KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdub3RpZmljYXRpb24tdXBkYXRlLWJhbm5lcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDIwcHg7IC8qIENhbWJpYWRvIGFycmliYSAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDIwcHg7IC8qIENhbWJpYWRvIGEgbGEgZGVyZWNoYSAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTJweCByZ2JhKDAsMCwwLDAuMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk5OTsgLyogQSBsYSBtaXNtYSBhbHR1cmEgcXVlIGxvcyBtb2RhbGVzIGRlIFJlYWN0ICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgIzM0OThkYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC5hcHBlbmRDaGlsZCh1cGRhdGVCYW5uZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUJhbm5lci5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBCb3TDs24gZGUgY2llcnJlIGNydXogKFgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib3RvbkNlcnJhciA9IGh0bWwuc3Bhbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogOHB4OyByaWdodDogMTJweDsgY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogI2JkYzNjNzsgZm9udC13ZWlnaHQ6IGJvbGQ7IGZvbnQtc2l6ZTogMTRweDsnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAnw5cnKS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uQ2VycmFyLm9uY2xpY2sgPSAoKSA9PiB1cGRhdGVCYW5uZXIhLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b25DZXJyYXIub25tb3VzZW92ZXIgPSAoKSA9PiB7IGJvdG9uQ2VycmFyLnN0eWxlLmNvbG9yID0gJyNmZmZmZmYnOyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b25DZXJyYXIub25tb3VzZW91dCA9ICgpID0+IHsgYm90b25DZXJyYXIuc3R5bGUuY29sb3IgPSAnI2JkYzNjNyc7IH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dG9Db250ZW5pZG8gPSBodG1sLmRpdih7IHN0eWxlOiAnZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS40OyBwYWRkaW5nLXJpZ2h0OiAxMnB4OycgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSGF5IHVuYSBudWV2YSB2ZXJzacOzbiBkaXNwb25pYmxlLCBwZXJvIHJlcXVpZXJlIGluaWNpYXIgc2VzacOzbiBudWV2YW1lbnRlLidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuY3JlYXRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm90b25Mb2dpbiA9IGh0bWwuYnV0dG9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ2JhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiA4cHggMTJweDsgYm9yZGVyLXJhZGl1czogNHB4OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDEzcHg7IGFsaWduLXNlbGY6IGZsZXgtZW5kOydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICdJbmljaWFyIFNlc2nDs24nKS5jcmVhdGUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3RvbkxvZ2luLm9ubW91c2VvdmVyID0gKCkgPT4geyBib3RvbkxvZ2luLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjMjk4MGI5JzsgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uTG9naW4ub25tb3VzZW91dCA9ICgpID0+IHsgYm90b25Mb2dpbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzM0OThkYic7IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3RvbkxvZ2luLm9uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHtsb2NhdGlvbi5vcmlnaW4gKyBsb2NhdGlvbi5wYXRobmFtZX0vLi4vbG9naW5gO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVCYW5uZXIuYXBwZW5kQ2hpbGQoYm90b25DZXJyYXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQmFubmVyLmFwcGVuZENoaWxkKHRleHRvQ29udGVuaWRvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUJhbm5lci5hcHBlbmRDaGlsZChib3RvbkxvZ2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQ29ydGFtb3MgYWPDoSBwYXJhIGV2aXRhciBsYSBiYXJyYSByb2phXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNpIGVsIHBpbmcgYW5kdXZvIGJpZW4gcGVybyBsbGVnw7MgYWPDoSwgZXMgdW4gZXJyb3IgcmVhbCBkZSByZWQvb2ZmbGluZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGF5b3V0ID0gYXdhaXQgYXdhaXRGb3JDYWNoZUxheW91dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhY2hlU3RhdHVzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWNoZS1zdGF0dXMnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZVN0YXR1c0VsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudCA9IGh0bWwucCh7IGlkOiAnY2FjaGUtc3RhdHVzJyB9KS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC5pbnNlcnRCZWZvcmUoY2FjaGVTdGF0dXNFbGVtZW50LCBsYXlvdXQuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3dhcm5pbmcnLCAnYWxsLW9rJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkYW5nZXInKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50LnRleHRDb250ZW50ID0gJ2Vycm9yIGFsIGRlc2NhcmdhciBsYSBhcGxpY2FjacOzbi4gJyArIGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9uUmVhZHlUb1N0YXJ0OnN0YXJ0QXBwLFxyXG4gICAgICAgICAgICAgICAgb25TdGF0ZUNoYW5nZTpyZWZyZXNjYXJTdGF0dXNcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWZyZXNjYXInKSEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57XHJcbiAgICAgICAgICAgIHJlbG9hZFdpdGhvdXRIYXNoKClcclxuICAgICAgICB9KTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndm9sdmVyLWRlLWluc3RhbGFjaW9uLWNvbW8nKSEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57XHJcbiAgICAgICAgICAgIHJlbG9hZFdpdGhvdXRIYXNoKClcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSlcclxuXHJcbmV4cG9ydCB2YXIgYXdhaXRGb3JDYWNoZUxheW91dCA9IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVMYXlvdXRGb3JDYWNoZSgpe1xyXG4gICAgYXdhaXQgbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgX3JlamVjdCl7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLHJlc29sdmUpO1xyXG4gICAgfSk7XHJcbiAgICB2YXIgbGF5b3V0PShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FjaGUtbGF5b3V0Jyl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcclxuICAgIGlmKCFsYXlvdXQuaWQpe1xyXG4gICAgICAgIGxheW91dC5pZD0nY2FjaGUtbGF5b3V0JztcclxuICAgICAgICBsYXlvdXQuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2lkOidhcHAtdmVyc2lvbnMnfSkuY3JlYXRlKCkpO1xyXG4gICAgICAgIGxheW91dC5hcHBlbmRDaGlsZChodG1sLmRpdih7aWQ6J2FwcC1zdGF0dXMnfSkuY3JlYXRlKCkpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGF5b3V0LmFwcGVuZENoaWxkKGh0bWwuZGl2KHtpZDonY2FjaGUtbG9nJ30pLmNyZWF0ZSgpKSk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUobGF5b3V0LGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZClcclxuICAgIH1cclxuICAgIHJldHVybiBsYXlvdXQ7XHJcbn0oKTsiXX0=
410
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2dnZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdW5sb2dnZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFDYiwyQ0FBaUM7SUFDakMsMkRBQWdFO0lBRWhFLDJDQUFzQztJQUN0QywyREFBNEQ7SUFDNUQsK0NBQStEO0lBQy9ELHlEQUE2QztJQUM3QyxtREFBa0Q7SUFFbEQsU0FBUyxVQUFVLENBQUMsRUFBVSxFQUFFLEtBQWtDO1FBQzlELElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBRyxRQUFRLElBQUUsSUFBSSxFQUFDLENBQUM7WUFDZixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEIsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLGlCQUFpQixDQUFDLEVBQVMsRUFBRSxPQUFlO1FBQ2pELFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBLEVBQUUsQ0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQSxDQUFDLENBQUEsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUV2QixJQUFJLGlCQUFpQixHQUFHLEdBQUUsRUFBRTtRQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFDLFFBQVEsQ0FBQyxRQUFRLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDckIsQ0FBQyxDQUFBO0lBRUQsU0FBZSxnQkFBZ0IsQ0FBQyxZQUE0QyxFQUFFLFlBQXFCOztZQUMvRixNQUFNLFlBQVksR0FBRyxJQUFBLCtCQUFlLEdB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QUMsR0FBRyxDQUFDLEVBQUMsRUFBRSxFQUFDLFdBQVcsRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUMvRCxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztLQUFBLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5pbXBvcnQge2h0bWx9ICBmcm9tICdqcy10by1odG1sJztcclxuaW1wb3J0IHsgZGVzcGxlZ2FyRm9ybXVsYXJpb0FjdHVhbCB9IGZyb20gJy4vcmVuZGVyLWZvcm11bGFyaW8nO1xyXG5pbXBvcnQgeyBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcywgTW9kb0RNLCBBeXVkYVBhcmFVc3VhcmlvIH0gZnJvbSAnLi90aXBvcyc7XHJcbmltcG9ydCB7IGV4cGVjdGVkIH0gZnJvbSBcImNhc3QtZXJyb3JcIjtcclxuaW1wb3J0IFNlcnZpY2VXb3JrZXJBZG1pbiA9IHJlcXVpcmUoXCJzZXJ2aWNlLXdvcmtlci1hZG1pblwiKTtcclxuaW1wb3J0IHsgY3JlYXRlTG9jYWxTdG9yYWdlRm9ybVJlbmRlcmVyIH0gZnJvbSBcIi4vcmVuZGVyLWluaXRcIjtcclxuaW1wb3J0IHsgQkFDS1VQUyB9IGZyb20gJy4vYWJyaXItZm9ybXVsYXJpbyc7XHJcbmltcG9ydCB7IGdldEZvcm1SZW5kZXJlciB9IGZyb20gXCIuL3JlbmRlci1jb25maWdcIjtcclxuXHJcbmZ1bmN0aW9uIHNpRXhpc3RlSWQoaWQ6IHN0cmluZywgaGFjZXI6IChhcmcwOiBIVE1MRWxlbWVudCkgPT4gdm9pZCl7XHJcbiAgICB2YXIgZWxlbWVudG8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICBpZihlbGVtZW50byE9bnVsbCl7XHJcbiAgICAgICAgaGFjZXIoZWxlbWVudG8pO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBtb3N0cmFyRWxlbWVudG9JZChpZDpzdHJpbmcsIG1vc3RyYXI6Ym9vbGVhbil7XHJcbiAgICBzaUV4aXN0ZUlkKGlkLCBlPT5lLnN0eWxlLmRpc3BsYXk9bW9zdHJhcj8nYmxvY2snOidub25lJyk7XHJcbn1cclxuY29uc3QgVVJMX0RNID0gJ2NhbXBvJztcclxuXHJcbnZhciByZWxvYWRXaXRob3V0SGFzaCA9ICgpPT57XHJcbiAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgYCR7bG9jYXRpb24ub3JpZ2luK2xvY2F0aW9uLnBhdGhuYW1lfS8uLi8ke1VSTF9ETX1gKTtcclxuICAgIGxvY2F0aW9uLnJlbG9hZCgpXHJcbn1cclxuXHJcbmFzeW5jIGZ1bmN0aW9uIHNpbmNyb25pemFyRGF0b3MocGVyc2lzdGVudGVzOiBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyB8IG51bGwsIGNhbWJpYU1vZG9ETTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgZm9ybVJlbmRlcmVyID0gZ2V0Rm9ybVJlbmRlcmVyKCk7XHJcbiAgICBsZXQgbW9kb0RNOiBNb2RvRE0gPSBmb3JtUmVuZGVyZXIuZ2V0TW9kb0RNKCkgfHwgYXdhaXQgbXkuYWpheC5tb2RvX2RtX2RlZmVjdG9fb2J0ZW5lcih7fSk7XHJcbiAgICBmb3JtUmVuZGVyZXIuc2V0TW9kb0RNKG1vZG9ETSk7XHJcbiAgICBjb25zdCBpZHBlcl9sb2d1ZWFkb190YWJsZXQgPSBmb3JtUmVuZGVyZXIuZ2V0SWRwZXJMb2d1ZWFkbygpO1xyXG4gICAgdmFyIGRhdG9zID0gYXdhaXQgbXkuYWpheC5kbV9zaW5jcm9uaXphcih7IHBlcnNpc3RlbnRlcywgbW9kb19kbTogbW9kb0RNLCBjYW1iaWFfbW9kb19kbTogY2FtYmlhTW9kb0RNLCBpZHBlcl9sb2d1ZWFkb190YWJsZXQgfSk7XHJcbiAgICBhd2FpdCBmb3JtUmVuZGVyZXIucGVyc2lzdGlyRGF0b3MoeyAuLi5kYXRvcywgbW9kb0FsbWFjZW5hbWllbnRvOiAnbG9jYWwnIH0pO1xyXG4gICAgdmFyIGVzdHJ1Y3R1cmEgPSBhd2FpdCBteU93bi5hamF4Lm9wZXJhdGl2b19lc3RydWN0dXJhX2NvbXBsZXRhKHsgb3BlcmF0aXZvOiBkYXRvcy5vcGVyYXRpdm8sIGlkcGVyX2xvZ3VlYWRvX3RhYmxldCB9KTtcclxuICAgIGF3YWl0IGZvcm1SZW5kZXJlci5wZXJzaXN0aXJFc3RydWN0dXJhKGVzdHJ1Y3R1cmEpO1xyXG4gICAgbXkucmVtb3ZlTG9jYWxWYXIoQkFDS1VQUyk7XHJcbiAgICBhd2FpdCBkZXNjYXJnYXJBeXVkYSgpO1xyXG4gICAgcmV0dXJuIGRhdG9zO1xyXG59XHJcblxyXG4vLyBndWFyZGEgbGEgYXl1ZGEgZGVsIHVzdWFyaW8gcGFyYSB2ZXJsYSBzaW4gY29uZXhpw7NuOyBzaSBmYWxsYSBubyBzZSBpbnRlcnJ1bXBlIGxhIHNpbmNyb25pemFjacOzblxyXG5hc3luYyBmdW5jdGlvbiBkZXNjYXJnYXJBeXVkYSgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgdmFyIGF5dWRhOiBBeXVkYVBhcmFVc3VhcmlvID0gYXdhaXQgbXkuYWpheC5heXVkYV90cmFlcih7fSk7XHJcbiAgICAgICAgZ2V0Rm9ybVJlbmRlcmVyKCkucGVyc2lzdGlyQXl1ZGEoYXl1ZGEpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ25vIHNlIHB1ZG8gZGVzY2FyZ2FyIGxhIGF5dWRhJywgZXJyKTtcclxuICAgIH1cclxufVxyXG5cclxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBmdW5jdGlvbigpe1xyXG4gICAgdmFyIGxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3RhbC1sYXlvdXQnKSE7XHJcbiAgICBpZighbGF5b3V0KXtcclxuICAgICAgICBjb25zb2xlLmxvZygnbm8gZW5jdWVudHJvIGVsIERJVi50b3RhbC1sYXlvdXQnKVxyXG4gICAgICAgIGF3YWl0IG15T3duLnJlYWR5O1xyXG4gICAgICAgIGxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3RhbC1sYXlvdXQnKSE7XHJcbiAgICB9XHJcbiAgICBhd2FpdCBteU93bi5yZWFkeTtcclxuICAgIGlmKGxvY2F0aW9uLnBhdGhuYW1lLmVuZHNXaXRoKCcvc2FsdmFyJykpe1xyXG4gICAgICAgIHRyeXtcclxuICAgICAgICAgICAgZm9yIChsZXQgeCBpbiBsb2NhbFN0b3JhZ2Upe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cobG9jYWxTdG9yYWdlW3hdKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IG15T3duLmFqYXguZG1fcmVzY2F0YXIoe2xvY2FsU3RvcmFnZUl0ZW06bG9jYWxTdG9yYWdlW3hdLCBsb2NhbFN0b3JhZ2VJdGVtS2V5Onh9KVxyXG4gICAgICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgICAgICBodG1sLnAoYGl0ZW0gXCIke3h9XCIgZGUgbG9jYWxTdG9nYWdlIGd1YXJkYWRvLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgIGh0bWwucChgdG9kb3MgbG9zIGl0ZW1zIGZ1ZXJvbiBzYWx2YWRvcy5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHNlIHByb2R1am8gdW4gZXJyb3IgYWwgc2FsdmFyIGxvcyBkYXRvcyBkZWwgZG0uYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgIHZhciByZWdpc3RyYXRpb25zID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpO1xyXG4gICAgICAgICAgICBmb3IobGV0IHJlZ2lzdHJhdGlvbiBvZiByZWdpc3RyYXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgIGh0bWwucChgdG9kb3MgbG9zIHN3IGZ1ZXJvbiBkZXNpbnN0YWxhZG9zLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgIGh0bWwucChgc2UgcHJvZHVqbyB1biBlcnJvciBhbCBkZXNpbnN0YWxhciBsb3Mgc3cuYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICAgIGxheW91dC5pbm5lckhUTUwgPSBgXHJcbiAgICA8c3BhbiBpZD1cIm1pbmktY29uc29sZVwiPjwvc3Bhbj5cclxuICAgIFxyXG4gICAgPCEtLSBCYW5uZXIgZGUgTnVldmEgVmVyc2nDs24gKFByb3RhZ29uaXNtbyBBYnNvbHV0byAtIENlbnRybyBkZSBsYSBQYW50YWxsYSkgLS0+XHJcbiAgICA8ZGl2IGlkPVwibnVldmEtdmVyc2lvbi1pbnN0YWxhZGFcIiBzdHlsZT1cIlxyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDsgXHJcbiAgICAgICAgdG9wOiAzNSU7IFxyXG4gICAgICAgIGxlZnQ6IDUwJTsgXHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IFxyXG4gICAgICAgIHotaW5kZXg6IDk5OTk5OyBcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZTdkMzI7IC8qIE1VSSBTdWNjZXNzIFByaW5jaXBhbCAqL1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBwYWRkaW5nOiAzMnB4IDQ4cHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCk7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGdhcDogMjRweDtcclxuICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xyXG4gICAgICAgIG1heC13aWR0aDogOTAlO1xyXG4gICAgICAgIHBhZGRpbmc6IDI1cHg7XHJcbiAgICBcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAyMnB4OyBmb250LXdlaWdodDogNTAwOyBsZXR0ZXItc3BhY2luZzogMC4yNXB4O1wiPsKhaW5zdGFsYWNpw7NuIGNvcnJlY3RhITwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGlkPVwicmVmcmVzY2FyXCIgc3R5bGU9XCJcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgICAgY29sb3I6ICMyZTdkMzI7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMTBweCAyNHB4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzLCB0cmFuc2Zvcm0gMC4xcztcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgZ2FwOiA4cHg7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAxNXB4IGF1dG87XHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgICAgIENvbnRpbnVhclxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBpZD1cImluc3RhbGFkb1wiIHN0eWxlPVwiZGlzcGxheTpub25lXCI+XHJcbiAgICAgICAgPGRpdiBpZD1cIm1haW5fbGF5b3V0XCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPCEtLSBQYW5lbCBkZSBQcm9ncmVzbyBPY3VwYW5kbyBNw6FzIFBhbnRhbGxhIChMaW1waW8geSBDb3Jwb3JhdGl2bykgLS0+XHJcbiAgICA8ZGl2IGlkPVwiaW5zdGFsYW5kb1wiIHN0eWxlPVwiXHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB0b3A6IDQwcHg7XHJcbiAgICAgICAgbGVmdDogNDBweDtcclxuICAgICAgICByaWdodDogNDBweDtcclxuICAgICAgICBib3R0b206IDQwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgLyogRm9uZG8gYmxhbmNvIGxpbXBpbyBNVUkgKi9cclxuICAgICAgICBjb2xvcjogIzFlMjkzYjtcclxuICAgICAgICBwYWRkaW5nOiAzMnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgICBib3gtc2hhZG93OiAwcHggOHB4IDI0cHggcmdiYSgwLDAsMCwwLjEyKTtcclxuICAgICAgICB6LWluZGV4OiA5OTk5ODtcclxuICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgbWluLWhlaWdodDogMDtcclxuICAgIFwiPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJ2b2x2ZXItZGUtaW5zdGFsYWNpb25cIiBzdHlsZT1cIlxyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcclxuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE0cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIFNwaW5uZXIgTWluaW1hbGlzdGEgZGUgTVVJIChDaXJjdWxhclByb2dyZXNzKSAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjBweDsgXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OyBcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTJlOGYwOyBcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IFxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICMxOTc2ZDI7IC8qIE1VSSBQcmltYXJ5ICovXHJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBzdy1zcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgICAgICAgICAgXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3R5bGU+QGtleWZyYW1lcyBzdy1zcGluIHsgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH08L3N0eWxlPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJ2b2x2ZXItZGUtaW5zdGFsYWNpb24tcG9yLXF1ZVwiIHN0eWxlPVwiY29sb3I6ICMxOTc2ZDI7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1wiPkRFU0NBUkdBTkRPIFJFQ1VSU09TIERFIExBIEFQTElDQUNJw5NOPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInZvbHZlci1kZS1pbnN0YWxhY2lvbi1jb21vXCIgc3R5bGU9XCJcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICM2NDc0OGI7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWUxO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDE2cHg7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcclxuICAgICAgICAgICAgXCI+Vm9sdmVyPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGgyIHN0eWxlPVwiY29sb3I6ICMxZTI5M2I7IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IDQwMDsgbWFyZ2luOiAwIDAgMTZweCAwO1wiPkhpc3RvcmlhbCBkZSBpbnN0YWxhY2nDs248L2gyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gQ29uc29sYSBleHBhbmRpZGEgeSBsaW1waWEgc2luIGVzdMOpdGljYSB0ZXJtaW5hbCAtLT5cclxuICAgICAgICA8ZGl2IGlkPVwiYXJjaGl2b3NcIiBzdHlsZT1cIlxyXG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XHJcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcclxuICAgICAgICAgICAgY29sb3I6ICM0NzU1Njk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGZhZmM7IC8qIEdyaXMgbXV5IHRlbnVlLCBuYWRhIGdhbWVyICovXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweFxyXG4gICAgICAgIFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbmA7XHJcbiAgICAgICAgaWYobG9jYXRpb24ucGF0aG5hbWUuZW5kc1dpdGgoYC8ke1VSTF9ETX1gKSl7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1SZW5kZXJlciA9IGNyZWF0ZUxvY2FsU3RvcmFnZUZvcm1SZW5kZXJlcih7IG9uU2luY3Jvbml6YXI6IHNpbmNyb25pemFyRGF0b3MgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0QXBwID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbW9kb0RtRGVmZWN0bzogTW9kb0RNID0gZm9ybVJlbmRlcmVyLmdldE1vZG9ETSgpIHx8IGF3YWl0IG15LmFqYXgubW9kb19kbV9kZWZlY3RvX29idGVuZXIoe30pO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1SZW5kZXJlci5zZXRNb2RvRE0obW9kb0RtRGVmZWN0byk7XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbm8gc2UgcHVkbyB0cmFlciBlbCBtb2RvIHBvciBkZWZlY3RvJylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciB2ZXJzaW9uID0gYXdhaXQgc3dhLmdldFNXKCd2ZXJzaW9uJyk7XHJcbiAgICAgICAgICAgICAgICBmb3JtUmVuZGVyZXIuc2V0QXBwQ2FjaGVWZXJzaW9uKHZlcnNpb24pO1xyXG4gICAgICAgICAgICAgICAgZGVzcGxlZ2FyRm9ybXVsYXJpb0FjdHVhbChmb3JtUmVuZGVyZXIsIHt9KTtcclxuICAgICAgICAgICAgICAgIG15Lm1lbnVOYW1lID0gVVJMX0RNO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciByZWZyZXNjYXJTdGF0dXM9YXN5bmMgZnVuY3Rpb24oc2hvd1NjcmVlbjogc3RyaW5nLCBuZXdWZXJzaW9uQXZhaWFibGU6IHN0cmluZywgX2luc3RhbGxpbmc6IGFueSl7XHJcbiAgICAgICAgICAgICAgICB2YXIgYnVzY2FuZG9BY3R1YWxpemFjaW9uID0gbG9jYXRpb24uaHJlZi5lbmRzV2l0aCgnI2luc3Q9MScpO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251ZXZhLXZlcnNpb24taW5zdGFsYWRhJykhLnN0eWxlLmRpc3BsYXk9bmV3VmVyc2lvbkF2YWlhYmxlPT0neWVzJz8nJzonbm9uZSc7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndm9sdmVyLWRlLWluc3RhbGFjaW9uJykhLnN0eWxlLmRpc3BsYXk9bmV3VmVyc2lvbkF2YWlhYmxlPT0neWVzJz8nbm9uZSc6Jyc7XHJcbiAgICAgICAgICAgICAgICBpZihzaG93U2NyZWVuPT0nYXBwJyAmJiAhYnVzY2FuZG9BY3R1YWxpemFjaW9uKXtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYWRvJykhLnN0eWxlLmRpc3BsYXk9Jyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFuZG8nKSEuc3R5bGUuZGlzcGxheT0nbm9uZSc7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYWRvJykhLnN0eWxlLmRpc3BsYXk9J25vbmUnO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhbmRvJykhLnN0eWxlLmRpc3BsYXk9Jyc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHZhciBzd2EgPSBuZXcgU2VydmljZVdvcmtlckFkbWluKCk7XHJcbiAgICAgICAgICAgIHN3YS5pbnN0YWxsT3JBY3RpdmF0ZSh7XHJcbiAgICAgICAgICAgICAgICBvbkVhY2hGaWxlOiBhc3luYyAodXJsOiBzdHJpbmcsIF9lcnJvcjogRXJyb3IgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2ZpbGU6ICcsIHVybCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFyY2hpdm9zQ29udGVuZWRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcmNoaXZvcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcmNoaXZvc0NvbnRlbmVkb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJjaGl2b3NDb250ZW5lZG9yLmFwcGVuZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogdXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyBwYWRkaW5nOiAycHggMDsnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBgPiAke3VybH1gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBdXRvc2Nyb2xsIHBhcmEgdmVyIGVsIGFyY2hpdm8gbcOhcyByZWNpZW50ZSBhbCBmb25kbyBkZSBsYSBjb25zb2xhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyY2hpdm9zQ29udGVuZWRvci5zY3JvbGxUb3AgPSBhcmNoaXZvc0NvbnRlbmVkb3Iuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvbkluZm9NZXNzYWdlOiAobT86IHN0cmluZyk9PmNvbnNvbGUubG9nKCdtZXNzYWdlOiAnLCBtKSxcclxuICAgICAgICAgICAgICAgIG9uRXJyb3I6IGFzeW5jIChlcnI6IEVycm9yLCBjb250ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3IgPSBleHBlY3RlZChlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcjogJyArIChjb250ZXh0ID8gYCBlbiAoJHtjb250ZXh0fSlgIDogJycpLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coY29udGV4dCwgZXJyb3IsICdlcnJvci1jb25zb2xlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGFsIGRlc2NhcmdhciBjYWNoZScsIGVycm9yLm1lc3NhZ2UpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LnN0YXJ0c1dpdGgoJ2NhY2hpbmcgJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVVybCA9IGNvbnRleHQucmVwbGFjZSgnY2FjaGluZyAnLCAnJykudHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlSWQgPSBmaWxlVXJsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZpbGVJZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbWJpYW1vcyBlbCBlc3RpbG8gYSB1biByb2pvIE1VSSAoRXJyb3IgcHJpbmNpcGFsKSBlbGVnYW50ZSB5IGxlIGFncmVnYW1vcyBlbCBpbmRpY2Fkb3IgZGUgZmFsbG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVFbGVtZW50LnN0eWxlLmNvbG9yID0gJyNkMzJmMmYnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUVsZW1lbnQuc3R5bGUuZm9udFdlaWdodCA9ICc3MDAnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNmZmViZWUnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUVsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQgPSAnOHB4JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVFbGVtZW50LnN0eWxlLmJvcmRlclJhZGl1cyA9ICcycHgnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUVsZW1lbnQuaW5uZXJIVE1MID0gYOKdjCBFcnJvcjogTm8gc2UgcHVkbyBkZXNjYXJnYXIgJHtmaWxlVXJsfSAoJHtlcnJvci5tZXNzYWdlfSlgO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvcnphbW9zIHNjcm9sbCBwYXJhIHF1ZSBlbCBkZXNhcnJvbGxhZG9yIHZlYSBlbCBlcnJvciBhbCBmaW5hbCBkZSBsYSBjb25zb2xhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcmNoaXZvc0NvbnRlbmVkb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJjaGl2b3MnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmNoaXZvc0NvbnRlbmVkb3IpIGFyY2hpdm9zQ29udGVuZWRvci5zY3JvbGxUb3AgPSBhcmNoaXZvc0NvbnRlbmVkb3Iuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dCAhPSAnaW5pdGlhbGl6aW5nIHNlcnZpY2Utd29ya2VyJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmFsaWRhbW9zIHNpbGVuY2lvc2FtZW50ZSBzaSBlbCBwcm9ibGVtYSBlcyBmYWx0YSBkZSBzZXNpw7NuICg0MDEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZWVwQWxpdmUgPSBhd2FpdCBmZXRjaCgna2VlcC1hbGl2ZS5qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihrZWVwQWxpdmUuc3RhdHVzIT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignZGVzbG9ndWVhZG8nKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChwaW5nRXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRmFsbG8gZGUgY2FjaMOpIHBvciBzZXNpw7NuIGV4cGlyYWRhLiBEZXNwbGVnYW5kbyBiYW5uZXIgZmxvdGFudGUuJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zdGFsYW5kb0VsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYW5kbycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RhbGFuZG9FbGVtKSBpbnN0YWxhbmRvRWxlbS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbXVldmUgZWwgcGFuZWwgZGUgZGVzY2FyZ2Egc2kgc2FsdMOzIGVsIGVycm9yIGRlIHNlc2nDs25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsQXJjaGl2b3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFuZWwtYXJjaGl2b3MtZmxvdGFudGUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYW5lbEFyY2hpdm9zKSBwYW5lbEFyY2hpdm9zLnJlbW92ZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cGRhdGVCYW5uZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm90aWZpY2F0aW9uLXVwZGF0ZS1iYW5uZXInKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXBkYXRlQmFubmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxheW91dCA9IGF3YWl0IGF3YWl0Rm9yQ2FjaGVMYXlvdXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQmFubmVyID0gaHRtbC5kaXYoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogJ25vdGlmaWNhdGlvbi11cGRhdGUtYmFubmVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMjBweDsgLyogQ2FtYmlhZG8gYXJyaWJhICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMjBweDsgLyogQ2FtYmlhZG8gYSBsYSBkZXJlY2hhICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAxMnB4IHJnYmEoMCwwLDAsMC4zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5OyAvKiBBIGxhIG1pc21hIGFsdHVyYSBxdWUgbG9zIG1vZGFsZXMgZGUgUmVhY3QgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjMzQ5OGRiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmFwcGVuZENoaWxkKHVwZGF0ZUJhbm5lcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQmFubmVyLmlubmVySFRNTCA9ICcnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJvdMOzbiBkZSBjaWVycmUgY3J1eiAoWClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvdG9uQ2VycmFyID0gaHRtbC5zcGFuKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogJ3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA4cHg7IHJpZ2h0OiAxMnB4OyBjdXJzb3I6IHBvaW50ZXI7IGNvbG9yOiAjYmRjM2M3OyBmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxNHB4OydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICfDlycpLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b25DZXJyYXIub25jbGljayA9ICgpID0+IHVwZGF0ZUJhbm5lciEucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3RvbkNlcnJhci5vbm1vdXNlb3ZlciA9ICgpID0+IHsgYm90b25DZXJyYXIuc3R5bGUuY29sb3IgPSAnI2ZmZmZmZic7IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3RvbkNlcnJhci5vbm1vdXNlb3V0ID0gKCkgPT4geyBib3RvbkNlcnJhci5zdHlsZS5jb2xvciA9ICcjYmRjM2M3JzsgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0b0NvbnRlbmlkbyA9IGh0bWwuZGl2KHsgc3R5bGU6ICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjQ7IHBhZGRpbmctcmlnaHQ6IDEycHg7JyB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdIYXkgdW5hIG51ZXZhIHZlcnNpw7NuIGRpc3BvbmlibGUsIHBlcm8gcmVxdWllcmUgaW5pY2lhciBzZXNpw7NuIG51ZXZhbWVudGUuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5jcmVhdGUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib3RvbkxvZ2luID0gaHRtbC5idXR0b24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsgY29sb3I6IHdoaXRlOyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDhweCAxMnB4OyBib3JkZXItcmFkaXVzOiA0cHg7IGN1cnNvcjogcG9pbnRlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IGZvbnQtc2l6ZTogMTNweDsgYWxpZ24tc2VsZjogZmxleC1lbmQ7J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ0luaWNpYXIgU2VzacOzbicpLmNyZWF0ZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uTG9naW4ub25tb3VzZW92ZXIgPSAoKSA9PiB7IGJvdG9uTG9naW4uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyMyOTgwYjknOyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b25Mb2dpbi5vbm1vdXNlb3V0ID0gKCkgPT4geyBib3RvbkxvZ2luLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjMzQ5OGRiJzsgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uTG9naW4ub25jbGljayA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke2xvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnBhdGhuYW1lfS8uLi9sb2dpbmA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUJhbm5lci5hcHBlbmRDaGlsZChib3RvbkNlcnJhcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVCYW5uZXIuYXBwZW5kQ2hpbGQodGV4dG9Db250ZW5pZG8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQmFubmVyLmFwcGVuZENoaWxkKGJvdG9uTG9naW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBDb3J0YW1vcyBhY8OhIHBhcmEgZXZpdGFyIGxhIGJhcnJhIHJvamFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2kgZWwgcGluZyBhbmR1dm8gYmllbiBwZXJvIGxsZWfDsyBhY8OhLCBlcyB1biBlcnJvciByZWFsIGRlIHJlZC9vZmZsaW5lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYXlvdXQgPSBhd2FpdCBhd2FpdEZvckNhY2hlTGF5b3V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FjaGVTdGF0dXNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhY2hlLXN0YXR1cycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlU3RhdHVzRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50ID0gaHRtbC5wKHsgaWQ6ICdjYWNoZS1zdGF0dXMnIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0Lmluc2VydEJlZm9yZShjYWNoZVN0YXR1c0VsZW1lbnQsIGxheW91dC5maXJzdENoaWxkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnd2FybmluZycsICdhbGwtb2snKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2RhbmdlcicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQudGV4dENvbnRlbnQgPSAnZXJyb3IgYWwgZGVzY2FyZ2FyIGxhIGFwbGljYWNpw7NuLiAnICsgZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgb25SZWFkeVRvU3RhcnQ6c3RhcnRBcHAsXHJcbiAgICAgICAgICAgICAgICBvblN0YXRlQ2hhbmdlOnJlZnJlc2NhclN0YXR1c1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZnJlc2NhcicpIS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PntcclxuICAgICAgICAgICAgcmVsb2FkV2l0aG91dEhhc2goKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2b2x2ZXItZGUtaW5zdGFsYWNpb24tY29tbycpIS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PntcclxuICAgICAgICAgICAgcmVsb2FkV2l0aG91dEhhc2goKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59KVxyXG5cclxuZXhwb3J0IHZhciBhd2FpdEZvckNhY2hlTGF5b3V0ID0gYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUxheW91dEZvckNhY2hlKCl7XHJcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBfcmVqZWN0KXtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcscmVzb2x2ZSk7XHJcbiAgICB9KTtcclxuICAgIHZhciBsYXlvdXQ9KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWNoZS1sYXlvdXQnKXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG4gICAgaWYoIWxheW91dC5pZCl7XHJcbiAgICAgICAgbGF5b3V0LmlkPSdjYWNoZS1sYXlvdXQnO1xyXG4gICAgICAgIGxheW91dC5hcHBlbmRDaGlsZChodG1sLmRpdih7aWQ6J2FwcC12ZXJzaW9ucyd9KS5jcmVhdGUoKSk7XHJcbiAgICAgICAgbGF5b3V0LmFwcGVuZENoaWxkKGh0bWwuZGl2KHtpZDonYXBwLXN0YXR1cyd9KS5jcmVhdGUoKSk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsYXlvdXQuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2lkOidjYWNoZS1sb2cnfSkuY3JlYXRlKCkpKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShsYXlvdXQsZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxheW91dDtcclxufSgpOyJdfQ==
@@ -14,7 +14,7 @@ BEGIN
14
14
  inner join base.estados_acciones ea using (operativo, estado)
15
15
  inner join tem te using (operativo,enc)
16
16
  --left join tokens tok on t.cargado_dm=tok.token
17
- left join no_rea nr on (te.norea::text = nr.no_rea)
17
+ left join no_rea nr on (te.norea = nr.no_rea)
18
18
  left join tareas_tem tta on (te.operativo = tta.operativo and te.enc = tta.enc and te.tarea_actual = tta.tarea)
19
19
  where t.operativo='||quote_literal(p_operativo)||
20
20
  ' and t.estado='||quote_literal(p_estado)||
@@ -20,12 +20,12 @@ CREATE OR REPLACE FUNCTION accion_cumple_condicion(
20
20
  LANGUAGE SQL
21
21
  STABLE
22
22
  AS $SQL$
23
- -- ¡ATENCIÓN! NO MODIFICAR MANUALMENTE ESTA FUNCIÓN FUE GENERADA CON EL SCRIPT generador_accion_cumple_condicion_v2.sql
23
+ -- ¡ATENCIÓN! NO MODIFICAR MANUALMENTE ESTA FUNCIÓN FUE GENERADA CON EL SCRIPT generador_accion_cumple_condicion.sql
24
24
  select true
25
25
  from base.tareas_tem t
26
26
  inner join base.estados_acciones ea using (operativo, estado)
27
27
  inner join tem te using (operativo,enc)
28
- left join no_rea nr on (te.norea::text = nr.no_rea)
28
+ left join no_rea nr on (te.norea = nr.no_rea)
29
29
  left join tareas_tem tta on (te.operativo = tta.operativo and te.enc = tta.enc and te.tarea_actual = tta.tarea)
30
30
  where t.operativo = p_operativo
31
31
  and t.estado = p_estado
@@ -14,7 +14,7 @@ BEGIN
14
14
  inner join base.tareas_proximas tp using (operativo, tarea, estado)
15
15
  inner join tem te using (operativo,enc)
16
16
  --left join tokens tok on t.cargado_dm=tok.token
17
- left join no_rea nr on (te.norea::text = nr.no_rea)
17
+ left join no_rea nr on (te.norea = nr.no_rea)
18
18
  where t.operativo='||quote_literal(p_operativo)||
19
19
  ' and t.tarea='||quote_literal(p_tarea)||
20
20
  ' and t.estado='||quote_literal(p_estado)||
@@ -15,7 +15,7 @@ begin
15
15
  when (new.rea=2 and new.norea is not null) then
16
16
  (select grupo
17
17
  from no_rea
18
- where new.norea=no_rea::integer
18
+ where new.norea=no_rea
19
19
  )
20
20
  else null
21
21
  end into vresultado