dmencu 3.2.19 → 3.2.21

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 (42) hide show
  1. package/dist/client/unlogged/bypass-formulario.js +2 -2
  2. package/dist/client/unlogged/calculos-encuesta.d.ts +7 -0
  3. package/dist/client/unlogged/calculos-encuesta.js +139 -0
  4. package/dist/client/unlogged/helpers-casilleros.d.ts +14 -0
  5. package/dist/client/unlogged/helpers-casilleros.js +129 -0
  6. package/dist/server/server/procedures-dmencu.js +141 -28
  7. package/dist/server/server/table-no_rea copy.d.ts +2 -0
  8. package/dist/server/server/table-no_rea copy.js +38 -0
  9. package/dist/server/server/table-no_rea_sup copy.d.ts +2 -0
  10. package/dist/server/server/table-no_rea_sup copy.js +36 -0
  11. package/dist/server/server/table-rea.d.ts +2 -0
  12. package/dist/server/server/table-rea.js +38 -0
  13. package/dist/server/server/table-rea_sup.d.ts +2 -0
  14. package/dist/server/server/table-rea_sup.js +38 -0
  15. package/dist/test/test-ejemplo.d.ts +1 -0
  16. package/dist/test/test-ejemplo.js +29 -0
  17. package/dist/test/test-rea-no-rea.d.ts +1 -0
  18. package/dist/test/test-rea-no-rea.js +589 -0
  19. package/dist/test/test.d.ts +2 -0
  20. package/dist/test/test.js +15 -0
  21. package/dist/unlogged/bypass-formulario.d.ts +198 -0
  22. package/dist/unlogged/bypass-formulario.js +1226 -0
  23. package/dist/unlogged/calculos-encuesta.d.ts +7 -0
  24. package/dist/unlogged/calculos-encuesta.js +213 -0
  25. package/dist/unlogged/helpers-casilleros.d.ts +14 -0
  26. package/dist/unlogged/helpers-casilleros.js +129 -0
  27. package/dist/unlogged/redux-formulario.d.ts +440 -0
  28. package/dist/unlogged/redux-formulario.js +324 -0
  29. package/dist/unlogged/render-config.d.ts +52 -0
  30. package/dist/unlogged/render-config.js +161 -0
  31. package/dist/unlogged/tipos.d.ts +575 -0
  32. package/dist/unlogged/tipos.js +21 -0
  33. package/dist/unlogged/unlogged/bypass-formulario copy.d.ts +198 -0
  34. package/dist/unlogged/unlogged/bypass-formulario copy.js +1226 -0
  35. package/dist/unlogged/unlogged/bypass-formulario.js +2 -2
  36. package/dist/unlogged/unlogged/calculos-encuesta.d.ts +7 -0
  37. package/dist/unlogged/unlogged/calculos-encuesta.js +213 -0
  38. package/dist/unlogged/unlogged/helpers-casilleros.d.ts +14 -0
  39. package/dist/unlogged/unlogged/helpers-casilleros.js +130 -0
  40. package/dist/unlogged/unlogged/helpers.d.ts +14 -0
  41. package/dist/unlogged/unlogged/helpers.js +129 -0
  42. package/package.json +1 -1
@@ -0,0 +1,575 @@
1
+ import { Structure, Feedback } from "row-validator";
2
+ export type ModoAlmacenamiento = 'session' | // cuando sea para una sola pestaña, se usa en modo directo,
3
+ 'local';
4
+ export type IdOpcion = number;
5
+ export type IdOperativo = 'etoi211' | 'eah2022' | 'etc...';
6
+ export type IdVariable = 'v1' | 'v2' | 'v3' | 'etc...' | 'vdominio' | '$p0';
7
+ export type IdPregunta = 'P1' | 'P2' | 'etc...';
8
+ export type IdBloque = 'B1' | 'B2' | 'etc...';
9
+ export type IdFormulario = 'F1' | 'F2' | 'etc...';
10
+ export type IdUnidadAnalisis = 'viviendas' | 'hogares' | 'personas';
11
+ export type IdBotonFormulario = 'BF:F1' | 'BF:F2' | 'etc...';
12
+ export type IdConsistencia = 'CONS1' | 'CONS2' | 'etc...';
13
+ export type IdTexto = 'D30_REF' | 'MES_REF' | 'SEM_REF' | 'etc...';
14
+ export type IdComodin = 'D30_REF' | 'MES_REF' | 'SEM_REF' | 'SEM_NUM' | 'resps1' | 'parents1' | 'respi1' | 'parenti1' | 'njefe' | 'frealiz' | 'cant_hogares';
15
+ export type IdFiltro = 'FILTRO1' | 'FILTRO2' | 'etc...';
16
+ export type IdCasillero = IdVariable | IdPregunta | IdBloque | IdFormulario | IdFiltro | IdOpcion;
17
+ export type IdFin = 'fin';
18
+ export type IdDestino = IdPregunta | IdBloque | IdFin | IdFiltro;
19
+ export type Valor = string | number | null;
20
+ export type TipocDestinos = 'P' | 'CP' | 'B' | 'FILTRO' | 'BF';
21
+ export type Tipoc = TipocDestinos | 'F' | 'O' | 'OM' | 'CONS' | 'TEXTO' | 'LIBRE' | 'PMATRIZ';
22
+ export type Especial = {
23
+ gps?: boolean;
24
+ noScroll?: boolean;
25
+ scrollTo?: IdVariable | IdFin;
26
+ autoing?: string;
27
+ flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
28
+ camposResumen?: string[];
29
+ };
30
+ export type IdTarea = 'encu' | 'recu' | 'supe' | 'ingr';
31
+ export type FeedbackVariable = Feedback<IdVariable, IdFin>;
32
+ export type TipoVariables = 'texto' | 'numero' | 'fecha' | 'horas' | 'hora';
33
+ export type Despliegue = 'horizontal' | 'oculta';
34
+ export type CasilleroBase = {
35
+ id_casillero?: string;
36
+ tipoc: Tipoc;
37
+ casillero: IdCasillero;
38
+ nombre: string;
39
+ salto: IdDestino | IdFin | null;
40
+ salto_ns_nc?: IdDestino | IdFin | null;
41
+ ver_id: string | null;
42
+ despliegueEncabezado: 'lateral' | 'superior' | null;
43
+ despliegueContenido: 'vertical' | 'horizontal' | null;
44
+ despliegueTipoInput: 'tel' | null;
45
+ despliegueOculta: boolean | null;
46
+ leer: boolean | null;
47
+ aclaracion: string | null;
48
+ primera_variable?: IdVariable | null;
49
+ var_name?: IdVariable | null;
50
+ var_name_especial?: string | null;
51
+ tipovar?: TipoVariables | 'opciones' | 'si_no' | null;
52
+ casilleros?: CasillerosImplementados[] | null;
53
+ expresion_habilitar?: string;
54
+ expresion_habilitar_js?: string;
55
+ expresion_autoingresar?: string;
56
+ expresion_autoingresar_js?: string;
57
+ especial?: Especial;
58
+ calculada?: boolean | null;
59
+ optativo?: boolean | null;
60
+ libre?: boolean | null;
61
+ valor_ns_nc?: any;
62
+ despliegue?: string;
63
+ longitud?: string;
64
+ };
65
+ export type Opcion = CasilleroBase & {
66
+ tipoc: 'O';
67
+ casillero: IdOpcion;
68
+ casilleros: PreguntaSimple[];
69
+ var_name?: null;
70
+ tipovar?: null;
71
+ primera_variable?: null;
72
+ salto_ns_nc?: null;
73
+ };
74
+ export type OpcionSi = Opcion & {
75
+ casillero: 1;
76
+ nombre: 'Sí';
77
+ casilleros: PreguntaSimple[];
78
+ };
79
+ export type OpcionNo = Opcion & {
80
+ casillero: 2;
81
+ nombre: 'No';
82
+ casilleros: PreguntaSimple[];
83
+ };
84
+ export type OpcionMultiple = CasilleroBase & {
85
+ tipoc: 'OM';
86
+ tipovar: 'opciones';
87
+ var_name: IdVariable;
88
+ casilleros: [OpcionSi, OpcionNo];
89
+ calculada?: boolean;
90
+ libre?: boolean;
91
+ valor_ns_nc: any;
92
+ salto_ns_nc?: null;
93
+ };
94
+ export type PreguntaBase = CasilleroBase & {
95
+ tipoc: 'P';
96
+ optativo: boolean | null;
97
+ casillero: IdPregunta;
98
+ calculada: boolean | null;
99
+ libre: boolean | null;
100
+ valor_ns_nc: any;
101
+ };
102
+ export type PreguntaSimple = PreguntaBase & {
103
+ tipovar: TipoVariables;
104
+ var_name: IdVariable;
105
+ longitud: string;
106
+ salto_ns_nc: IdDestino | IdFin | null;
107
+ casilleros: PreguntaSimple[];
108
+ };
109
+ export type PreguntaConSiNo = PreguntaBase & {
110
+ tipovar: 'si_no';
111
+ var_name: IdVariable;
112
+ salto_ns_nc: IdDestino | IdFin | null;
113
+ casilleros: [OpcionSi, OpcionNo];
114
+ };
115
+ export type PreguntaConOpciones = PreguntaBase & {
116
+ tipovar: 'opciones';
117
+ var_name: IdVariable;
118
+ salto_ns_nc: IdDestino | IdFin | null;
119
+ casilleros: Opcion[];
120
+ };
121
+ export type PreguntaConOpcionesMultiples = PreguntaBase & {
122
+ var_name?: null;
123
+ tipovar?: null;
124
+ casilleros: OpcionMultiple[];
125
+ salto_ns_nc?: null;
126
+ };
127
+ export type Pregunta = PreguntaSimple | PreguntaConSiNo | PreguntaConOpciones | PreguntaConOpcionesMultiples;
128
+ export type ConjuntoPreguntas = CasilleroBase & {
129
+ tipoc: 'CP';
130
+ casillero: IdPregunta;
131
+ var_name?: null;
132
+ tipovar?: null;
133
+ casilleros: Pregunta[];
134
+ salto_ns_nc?: null;
135
+ };
136
+ export type Filtro = CasilleroBase & {
137
+ tipoc: 'FILTRO';
138
+ casillero: IdFiltro;
139
+ var_name?: null;
140
+ tipovar?: null;
141
+ primera_variable?: null;
142
+ calculada?: null;
143
+ libre?: null;
144
+ salto_ns_nc?: null;
145
+ };
146
+ export type ContenidoFormulario = Bloque | Pregunta | ConjuntoPreguntas | Filtro | BotonFormulario | Consistencia | Texto;
147
+ export type Bloque = CasilleroBase & {
148
+ tipoc: 'B';
149
+ casillero: IdBloque;
150
+ casilleros: ContenidoFormulario[];
151
+ var_name?: null;
152
+ tipovar?: null;
153
+ unidad_analisis?: IdUnidadAnalisis;
154
+ salto_ns_nc?: null;
155
+ };
156
+ export type Consistencia = CasilleroBase & {
157
+ tipoc: 'CONS';
158
+ casillero: IdConsistencia;
159
+ var_name?: null;
160
+ tipovar?: null;
161
+ primera_variable?: null;
162
+ salto_ns_nc?: null;
163
+ };
164
+ export type Texto = CasilleroBase & {
165
+ tipoc: 'TEXTO';
166
+ casillero: IdTexto;
167
+ var_name?: null;
168
+ tipovar?: null;
169
+ primera_variable?: null;
170
+ salto_ns_nc?: null;
171
+ };
172
+ export type Libre = CasilleroBase & {
173
+ tipoc: 'LIBRE';
174
+ casillero: IdTexto;
175
+ var_name?: null;
176
+ tipovar?: null;
177
+ primera_variable?: null;
178
+ salto_ns_nc?: null;
179
+ };
180
+ export type BotonFormulario = CasilleroBase & {
181
+ tipoc: 'BF';
182
+ casillero: IdBotonFormulario;
183
+ var_name?: null;
184
+ tipovar?: null;
185
+ primera_variable?: IdVariable | null;
186
+ var_names_BF?: IdVariable[];
187
+ longitud?: string;
188
+ unidad_analisis?: IdUnidadAnalisis;
189
+ salto_ns_nc?: null;
190
+ };
191
+ export type Formulario = CasilleroBase & {
192
+ tipoc: 'F';
193
+ casillero: IdFormulario;
194
+ formulario_principal: boolean;
195
+ casilleros: ContenidoFormulario[];
196
+ var_name?: null;
197
+ tipovar?: null;
198
+ hermano?: true;
199
+ unidad_analisis: IdUnidadAnalisis;
200
+ salto_ns_nc?: null;
201
+ };
202
+ export type PMatriz = CasilleroBase & {
203
+ tipoc: 'PMATRIZ';
204
+ salto_ns_nc?: null;
205
+ };
206
+ export type CasillerosImplementados = Formulario | Bloque | Filtro | ConjuntoPreguntas | Pregunta | OpcionMultiple | Opcion | BotonFormulario | Consistencia | Texto | Libre | PMatriz;
207
+ export type CampoPkRaiz = 'vivienda' | 'etc...';
208
+ export type ValuePkRaiz = IdEnc;
209
+ export type ForPkRaiz = {
210
+ formulario: IdFormulario;
211
+ } & {
212
+ [campo in CampoPkRaiz]: ValuePkRaiz;
213
+ };
214
+ export type CampoPk = 'vivienda' | 'hogar' | 'persona' | 'etc...';
215
+ export type ForPk = ForPkRaiz & {
216
+ [campo in CampoPk]?: number;
217
+ };
218
+ export type PlainForPk = '{"formulario":"F:F1","vivienda":"10202","persona":null}' | 'etc...';
219
+ export type ObjetoNumeradoOArray<T> = T[] | {
220
+ [n in number]: T;
221
+ };
222
+ export type RespuestasUnaUA = {
223
+ [pregunta in IdVariable]: Valor;
224
+ };
225
+ export type RespuestaLasUA = {
226
+ [ua in IdUnidadAnalisis]: ObjetoNumeradoOArray<Respuestas>;
227
+ };
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 & {
235
+ resumenEstado: ResumenEstado;
236
+ resumenEstadoSup: ResumenEstado;
237
+ };
238
+ export type Respuestas = RespuestasUnaUA & RespuestaLasUA;
239
+ export type RespuestasRaiz = Respuestas & ResultadoResumen & {
240
+ $dirty: boolean;
241
+ };
242
+ export type UnidadAnalisis = {
243
+ unidad_analisis: IdUnidadAnalisis;
244
+ padre?: IdUnidadAnalisis;
245
+ pk_agregada: CampoPk;
246
+ principal?: boolean;
247
+ hijas: {
248
+ [k in IdUnidadAnalisis]?: UnidadAnalisis;
249
+ };
250
+ };
251
+ export type TEM = {
252
+ nomcalle: string;
253
+ dominio: number;
254
+ sector: string;
255
+ edificio: string;
256
+ entrada: string;
257
+ nrocatastral: string;
258
+ piso: string;
259
+ departamento: string;
260
+ habitacion: string;
261
+ casa: string;
262
+ prioridad: 1 | 2 | 3;
263
+ observaciones: string;
264
+ seleccionado: number;
265
+ cita?: string;
266
+ carga: string;
267
+ semana?: number;
268
+ };
269
+ export type ResumenEstado = 'vacio' | 'con problemas' | 'incompleto' | 'ok' | 'no rea' | 'cita pactada';
270
+ export type InfoTarea = {
271
+ tarea: IdTarea;
272
+ notas?: string;
273
+ fecha_asignacion?: Date;
274
+ asignado?: string;
275
+ main_form: IdFormulario;
276
+ };
277
+ export type Visita = {
278
+ fecha: string | null;
279
+ hora: string | null;
280
+ idper: string | null;
281
+ observaciones: string | null;
282
+ };
283
+ export type DatosHdrUaPpal = {
284
+ tarea: InfoTarea;
285
+ tem: TEM;
286
+ };
287
+ export type IdCarga = "1" | "2" | "etc";
288
+ export type EstadoCarga = 'resumen' | 'relevamiento' | 'recibo';
289
+ export type Carga = {
290
+ fecha: Date;
291
+ estado_carga: EstadoCarga;
292
+ necesarias: number;
293
+ observaciones: string;
294
+ recepcionista: string;
295
+ puede_autogenerar: boolean;
296
+ };
297
+ export type Cargas = {
298
+ [idCarga in IdCarga]: Carga;
299
+ };
300
+ export type EstructuraRowValidator = Structure<IdVariable, Valor, IdFin>;
301
+ export type ModoDespliegue = 'metadatos' | 'relevamiento' | 'PDF';
302
+ export type PantallaNavegacion = 'hdr' | 'sincronizacion' | 'sincronizacion_requerida' | 'modo';
303
+ export type InfoFormulario = {
304
+ casilleros: Formulario;
305
+ estructuraRowValidator: EstructuraRowValidator;
306
+ };
307
+ export type IdResultado = 'AVERIGUAR' | 'TODO';
308
+ export type IdSemana = 1 | 2 | 'etc';
309
+ export type Semana = {
310
+ operativo: IdOperativo;
311
+ semana: number;
312
+ semana_referencia_desde?: string | null;
313
+ semana_referencia_hasta?: string | null;
314
+ '30dias_referencia_desde'?: string | null;
315
+ '30dias_referencia_hasta'?: string | null;
316
+ mes_referencia?: string | null;
317
+ carga_enc_desde?: string | null;
318
+ carga_enc_hasta?: string | null;
319
+ carga_recu_desde?: string | null;
320
+ carga_recu_hasta?: string | null;
321
+ };
322
+ export type TareasEstructura = {
323
+ [idTarea in IdTarea]: {
324
+ resultados: {
325
+ [idResultado in IdResultado]: {
326
+ descripcion: string;
327
+ };
328
+ };
329
+ };
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
+ };
378
+ export type Estructura = {
379
+ formularios: {
380
+ [nombreFormulario in IdFormulario]: InfoFormulario;
381
+ };
382
+ unidades_analisis: {
383
+ [idUnidadAnalisis in IdUnidadAnalisis]: UnidadAnalisis;
384
+ };
385
+ tareas: TareasEstructura;
386
+ uaPpal: IdUnidadAnalisis;
387
+ pkAgregadaUaPpal: CampoPkRaiz;
388
+ timestamp: number;
389
+ operativo: IdOperativo;
390
+ configSorteo: ConfiguracionSorteo;
391
+ habilitacionBotonFormulario: ConfiguracionHabilitarBotonFormulario;
392
+ conReaHogar: boolean;
393
+ noReas: NoRea[];
394
+ noReasSup: NoReaSup[];
395
+ reas: Rea[];
396
+ reasSup: ReaSup[];
397
+ semanas: {
398
+ [idSemana in IdSemana]: Semana;
399
+ };
400
+ defaultInformacionHdr: DatosHdrUaPpal;
401
+ };
402
+ export type IdEnc = 130031 | 130032;
403
+ export type InformacionHdr = {
404
+ [enc in IdEnc]: DatosHdrUaPpal;
405
+ };
406
+ export type CasoState = {
407
+ opciones: {
408
+ forPk: ForPk | null;
409
+ pilaForPk: ForPk[];
410
+ modoDespliegue: ModoDespliegue;
411
+ modoDirecto: boolean;
412
+ modoBorrarRespuesta: IdVariable | null;
413
+ conCampoOpciones: boolean;
414
+ saltoAutomatico: boolean;
415
+ pantallaActual: PantallaNavegacion;
416
+ avisoPersistente: {
417
+ tipo: 'info' | 'success' | 'error';
418
+ mensaje: string;
419
+ } | null;
420
+ comodines: {
421
+ [idComodin in IdComodin]?: string;
422
+ };
423
+ };
424
+ };
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 & {
437
+ UAprincipal: IdUnidadAnalisis;
438
+ defUA: {
439
+ [i in IdUnidadAnalisis]: {
440
+ pk: IdVariable;
441
+ incluidas: IdUnidadAnalisis[];
442
+ idsFor: IdFormulario[];
443
+ };
444
+ };
445
+ defFor: {
446
+ [f in IdFormulario]: {
447
+ hermano?: true;
448
+ };
449
+ };
450
+ };
451
+ export type DatosByPassPersistibles = {
452
+ respuestas: {
453
+ [ua in IdUnidadAnalisis]: RespuestasRaiz[];
454
+ };
455
+ modoAlmacenamiento: ModoAlmacenamiento;
456
+ persona: string;
457
+ tarea: IdTarea;
458
+ idper: string;
459
+ cargas: Cargas;
460
+ informacionHdr: InformacionHdr;
461
+ soloLectura: boolean;
462
+ token?: string;
463
+ num_sincro?: number;
464
+ timestampEstructura?: number;
465
+ permiteBorrarElementosUA?: boolean;
466
+ };
467
+ type ConfiguracionSorteoTabla = {
468
+ metodo: "tabla";
469
+ param_metodo: {
470
+ tabla: string[];
471
+ var_letra: IdVariable;
472
+ };
473
+ };
474
+ type ConfiguracionSorteoHash = {
475
+ metodo: "hash";
476
+ param_metodo: {
477
+ var_coef: [
478
+ {
479
+ var: IdVariable;
480
+ coef: number;
481
+ },
482
+ {
483
+ var: IdVariable;
484
+ coef: number;
485
+ }
486
+ ];
487
+ divisor: number;
488
+ };
489
+ };
490
+ export type ConfiguracionSorteo = {
491
+ [key in IdFormulario]: ConfiguracionSorteoFormulario;
492
+ };
493
+ export type ConfiguracionHabilitarBotonFormulario = {
494
+ [key in IdFormulario]: ConfiguracionHabilitarBotonFormularioForm;
495
+ };
496
+ export type ConfiguracionSorteoFormulario = {
497
+ unidad_analisis: IdUnidadAnalisis;
498
+ unidad_analisis_padre: IdUnidadAnalisis;
499
+ expr_incompletitud: {
500
+ [key in number]: {
501
+ dominio: number;
502
+ expr: string;
503
+ };
504
+ };
505
+ expr_incompletitud_js: {
506
+ [key in number]: {
507
+ dominio: number;
508
+ expr: string;
509
+ };
510
+ };
511
+ disparador: IdVariable;
512
+ filtro: {
513
+ [key in number]: {
514
+ dominio: number;
515
+ expr: string;
516
+ };
517
+ };
518
+ filtro_js: {
519
+ [key in number]: {
520
+ dominio: number;
521
+ expr: string;
522
+ };
523
+ };
524
+ orden: {
525
+ variable: IdVariable;
526
+ orden: 1 | -1;
527
+ }[];
528
+ parametros: IdVariable[];
529
+ cantidad_sorteables: IdVariable;
530
+ cantidad_total: IdVariable;
531
+ resultado: IdVariable;
532
+ resultado_manual: IdVariable;
533
+ sorteado_mostrar?: {
534
+ source: IdVariable;
535
+ target: IdVariable;
536
+ }[];
537
+ incompletas: IdVariable;
538
+ variableBotonFormularioUA: IdVariable;
539
+ variableBotonFormularioUAIndividual?: IdVariable;
540
+ id_formulario_individual?: IdFormulario;
541
+ id_formulario_padre?: IdFormulario;
542
+ } & (ConfiguracionSorteoHash | ConfiguracionSorteoTabla);
543
+ export type ConfiguracionHabilitarBotonFormularioForm = {
544
+ unidad_analisis: IdUnidadAnalisis;
545
+ expr_habilitar_boton: string;
546
+ expr_habilitar_boton_js: string;
547
+ habilitar_agregar_listo: boolean;
548
+ };
549
+ export declare function toPlainForPk(forPk: ForPk): PlainForPk;
550
+ export declare var iterator: <T>(o: ObjetoNumeradoOArray<T>) => Iterable<T>;
551
+ export declare var empty: <T>(o: ObjetoNumeradoOArray<T> | null | undefined) => boolean;
552
+ declare global {
553
+ namespace myOwn {
554
+ interface AddrParams {
555
+ state_forPk: string;
556
+ state_pilaForPk: string;
557
+ }
558
+ }
559
+ }
560
+ export type DireccionAccion = 'avance' | 'retroceso' | 'blanqueo';
561
+ export type EstadoAccion = {
562
+ operativo: string;
563
+ estado: string;
564
+ eaccion: string;
565
+ condicion: string;
566
+ estado_destino: string;
567
+ eaccion_direccion: DireccionAccion;
568
+ path_icono_svg: string;
569
+ nombre_procedure: string;
570
+ nombre_wscreen: string;
571
+ desactiva_boton: boolean;
572
+ confirma: boolean;
573
+ };
574
+ export type ModoDM = 'produc' | 'capa';
575
+ export {};
@@ -0,0 +1,21 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "like-ar"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.empty = exports.iterator = void 0;
13
+ exports.toPlainForPk = toPlainForPk;
14
+ const LikeAr = require("like-ar");
15
+ function toPlainForPk(forPk) {
16
+ return JSON.stringify(forPk);
17
+ }
18
+ exports.iterator = LikeAr.iterator;
19
+ exports.empty = LikeAr.empty;
20
+ });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFxbEJiLG9DQUVDO0lBcmxCRCxrQ0FBa0M7SUFtbEJsQyxTQUFnQixZQUFZLENBQUMsS0FBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFlLENBQUM7SUFDL0MsQ0FBQztJQUVVLFFBQUEsUUFBUSxHQUFtRCxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQzFFLFFBQUEsS0FBSyxHQUFrRSxNQUFNLENBQUMsS0FBSyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyZSwgRmVlZGJhY2sgfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgKiBhcyBMaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9BbG1hY2VuYW1pZW50byA9ICdzZXNzaW9uJyB8IC8vIGN1YW5kbyBzZWEgcGFyYSB1bmEgc29sYSBwZXN0YcOxYSwgc2UgdXNhIGVuIG1vZG8gZGlyZWN0byxcclxuICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJyB8ICdlYWgyMDIyJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVmFyaWFibGUgPSAndjEnIHwgJ3YyJyB8ICd2MycgfCAnZXRjLi4uJyB8ICd2ZG9taW5pbycgfCAnJHAwJ1xyXG5leHBvcnQgdHlwZSBJZFByZWd1bnRhID0gJ1AxJyB8ICdQMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMScgfCAnQjInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRGb3JtdWxhcmlvID0gJ0YxJyB8ICdGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZFVuaWRhZEFuYWxpc2lzID0gJ3ZpdmllbmRhcycgfCAnaG9nYXJlcycgfCAncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJyB8ICdCRjpGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENvbnNpc3RlbmNpYSA9ICdDT05TMScgfCAnQ09OUzInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRUZXh0byA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29tb2RpbiA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdTRU1fTlVNJyB8ICdyZXNwczEnIHwgJ3BhcmVudHMxJyB8ICdyZXNwaTEnIHwgJ3BhcmVudGkxJyB8ICduamVmZScgfCAnZnJlYWxpeicgfCAnY2FudF9ob2dhcmVzJ1xyXG5leHBvcnQgdHlwZSBJZEZpbHRybyA9ICdGSUxUUk8xJyB8ICdGSUxUUk8yJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ2FzaWxsZXJvID0gSWRWYXJpYWJsZSB8IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRm9ybXVsYXJpbyB8IElkRmlsdHJvIHwgSWRPcGNpb25cclxuZXhwb3J0IHR5cGUgSWRGaW4gPSAnZmluJzsgLy8gbmV2ZXIgLy8gVE9ETzogcG9kZXIgcG9uZXIgJ0ZJTidcclxuZXhwb3J0IHR5cGUgSWREZXN0aW5vID0gSWRQcmVndW50YSB8IElkQmxvcXVlIHwgSWRGaW4gfCBJZEZpbHRyb1xyXG5leHBvcnQgdHlwZSBWYWxvciA9IHN0cmluZyB8IG51bWJlciB8IG51bGw7XHJcbmV4cG9ydCB0eXBlIFRpcG9jRGVzdGlub3MgPSAnUCcgfCAnQ1AnIHwgJ0InIHwgJ0ZJTFRSTycgfCAnQkYnXHJcbmV4cG9ydCB0eXBlIFRpcG9jID0gVGlwb2NEZXN0aW5vcyB8ICdGJyB8ICdPJyB8ICdPTScgfCAnQ09OUycgfCAnVEVYVE8nIHwgJ0xJQlJFJyB8ICdQTUFUUklaJ1xyXG5cclxuZXhwb3J0IHR5cGUgRXNwZWNpYWwgPSB7XHJcbiAgICBncHM/OiBib29sZWFuXHJcbiAgICBub1Njcm9sbD86IGJvb2xlYW5cclxuICAgIHNjcm9sbFRvPzogSWRWYXJpYWJsZSB8IElkRmluXHJcbiAgICBhdXRvaW5nPzogc3RyaW5nXHJcbiAgICBmbGV4RGlyZWN0aW9uPzogJ3JvdycgfCAnY29sdW1uJyB8ICdyb3ctcmV2ZXJzZScgfCAnY29sdW1uLXJldmVyc2UnXHJcbiAgICBjYW1wb3NSZXN1bWVuPzogc3RyaW5nW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRUYXJlYSA9ICdlbmN1JyB8ICdyZWN1JyB8ICdzdXBlJyB8ICdpbmdyJztcclxuXHJcbmV4cG9ydCB0eXBlIEZlZWRiYWNrVmFyaWFibGUgPSBGZWVkYmFjazxJZFZhcmlhYmxlLCBJZEZpbj5cclxuXHJcbmV4cG9ydCB0eXBlIFRpcG9WYXJpYWJsZXMgPSAndGV4dG8nIHwgJ251bWVybycgfCAnZmVjaGEnIHwgJ2hvcmFzJyB8ICdob3JhJ1xyXG5cclxuZXhwb3J0IHR5cGUgRGVzcGxpZWd1ZSA9ICdob3Jpem9udGFsJyB8ICdvY3VsdGEnXHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9CYXNlID0ge1xyXG4gICAgaWRfY2FzaWxsZXJvPzogc3RyaW5nXHJcbiAgICB0aXBvYzogVGlwb2NcclxuICAgIGNhc2lsbGVybzogSWRDYXNpbGxlcm9cclxuICAgIG5vbWJyZTogc3RyaW5nXHJcbiAgICBzYWx0bzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgdmVyX2lkOiBzdHJpbmcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlRW5jYWJlemFkbzogJ2xhdGVyYWwnIHwgJ3N1cGVyaW9yJyB8IG51bGxcclxuICAgIGRlc3BsaWVndWVDb250ZW5pZG86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlVGlwb0lucHV0OiAndGVsJyB8IG51bGxcclxuICAgIGRlc3BsaWVndWVPY3VsdGE6IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsZWVyOiBib29sZWFuIHwgbnVsbFxyXG4gICAgYWNsYXJhY2lvbjogc3RyaW5nIHwgbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICB2YXJfbmFtZT86IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICB2YXJfbmFtZV9lc3BlY2lhbD86IHN0cmluZyB8IG51bGxcclxuICAgIHRpcG92YXI/OiBUaXBvVmFyaWFibGVzIHwgJ29wY2lvbmVzJyB8ICdzaV9ubycgfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zPzogQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3NbXSB8IG51bGxcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXI/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXJfanM/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXI/OiBzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXJfanM/OiBzdHJpbmdcclxuICAgIGVzcGVjaWFsPzogRXNwZWNpYWxcclxuICAgIGNhbGN1bGFkYT86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBvcHRhdGl2bz86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsaWJyZT86IGJvb2xlYW4gfCBudWxsXHJcbiAgICB2YWxvcl9uc19uYz86IGFueVxyXG4gICAgZGVzcGxpZWd1ZT86IHN0cmluZ1xyXG4gICAgbG9uZ2l0dWQ/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnTydcclxuICAgIGNhc2lsbGVybzogSWRPcGNpb25cclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uU2kgPSBPcGNpb24gJiB7XHJcbiAgICBjYXNpbGxlcm86IDFcclxuICAgIG5vbWJyZTogJ1PDrSdcclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTm8gPSBPcGNpb24gJiB7XHJcbiAgICBjYXNpbGxlcm86IDJcclxuICAgIG5vbWJyZTogJ05vJ1xyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFTaW1wbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGNpb25NdWx0aXBsZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ09NJ1xyXG4gICAgdGlwb3ZhcjogJ29wY2lvbmVzJ1xyXG4gICAgdmFyX25hbWU6IElkVmFyaWFibGVcclxuICAgIGNhc2lsbGVyb3M6IFtPcGNpb25TaSwgT3BjaW9uTm9dXHJcbiAgICBjYWxjdWxhZGE/OiBib29sZWFuXHJcbiAgICBsaWJyZT86IGJvb2xlYW5cclxuICAgIHZhbG9yX25zX25jOiBhbnlcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUJhc2UgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdQJ1xyXG4gICAgb3B0YXRpdm86IGJvb2xlYW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm86IElkUHJlZ3VudGFcclxuICAgIGNhbGN1bGFkYTogYm9vbGVhbiB8IG51bGxcclxuICAgIGxpYnJlOiBib29sZWFuIHwgbnVsbFxyXG4gICAgdmFsb3JfbnNfbmM6IGFueVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YVNpbXBsZSA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6IFRpcG9WYXJpYWJsZXNcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBsb25naXR1ZDogc3RyaW5nXHJcbiAgICBzYWx0b19uc19uYzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uU2lObyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6ICdzaV9ubydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdGlwb3ZhcjogJ29wY2lvbmVzJ1xyXG4gICAgdmFyX25hbWU6IElkVmFyaWFibGVcclxuICAgIHNhbHRvX25zX25jOiBJZERlc3Rpbm8gfCBJZEZpbiB8IG51bGxcclxuICAgIGNhc2lsbGVyb3M6IE9wY2lvbltdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uT3BjaW9uZXNNdWx0aXBsZXMgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBPcGNpb25NdWx0aXBsZVtdXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGEgPSBQcmVndW50YVNpbXBsZSB8IFByZWd1bnRhQ29uU2lObyB8IFByZWd1bnRhQ29uT3BjaW9uZXMgfCBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzXHJcblxyXG5leHBvcnQgdHlwZSBDb25qdW50b1ByZWd1bnRhcyA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0NQJ1xyXG4gICAgY2FzaWxsZXJvOiBJZFByZWd1bnRhXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVtdXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuLypcclxuZXhwb3J0IGludGVyZmFjZSBJQ29udGVuaWRvIGV4dGVuZHMgQ2FzaWxsZXJvQmFzZSB7XHJcbiAgICBjYXNpbGxlcm9zOklDb250ZW5pZG9bXVxyXG59XHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBGaWx0cm8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdGSUxUUk8nXHJcbiAgICBjYXNpbGxlcm86IElkRmlsdHJvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgY2FsY3VsYWRhPzogbnVsbFxyXG4gICAgbGlicmU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29udGVuaWRvRm9ybXVsYXJpbyA9IEJsb3F1ZSB8IFByZWd1bnRhIHwgQ29uanVudG9QcmVndW50YXMgfCBGaWx0cm8gfCBCb3RvbkZvcm11bGFyaW8gfCBDb25zaXN0ZW5jaWEgfCBUZXh0b1xyXG5cclxuZXhwb3J0IHR5cGUgQmxvcXVlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnQidcclxuICAgIGNhc2lsbGVybzogSWRCbG9xdWVcclxuICAgIGNhc2lsbGVyb3M6IENvbnRlbmlkb0Zvcm11bGFyaW9bXVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzPzogSWRVbmlkYWRBbmFsaXNpc1xyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnNpc3RlbmNpYSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0NPTlMnXHJcbiAgICBjYXNpbGxlcm86IElkQ29uc2lzdGVuY2lhXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgVGV4dG8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdURVhUTydcclxuICAgIGNhc2lsbGVybzogSWRUZXh0b1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcbmV4cG9ydCB0eXBlIExpYnJlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnTElCUkUnXHJcbiAgICBjYXNpbGxlcm86IElkVGV4dG9cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5leHBvcnQgdHlwZSBCb3RvbkZvcm11bGFyaW8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdCRidcclxuICAgIGNhc2lsbGVybzogSWRCb3RvbkZvcm11bGFyaW9cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgdmFyX25hbWVzX0JGPzogSWRWYXJpYWJsZVtdXHJcbiAgICBsb25naXR1ZD86IHN0cmluZ1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzPzogSWRVbmlkYWRBbmFsaXNpc1xyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvcm11bGFyaW8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdGJ1xyXG4gICAgY2FzaWxsZXJvOiBJZEZvcm11bGFyaW9cclxuICAgIGZvcm11bGFyaW9fcHJpbmNpcGFsOiBib29sZWFuXHJcbiAgICBjYXNpbGxlcm9zOiBDb250ZW5pZG9Gb3JtdWxhcmlvW11cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIGhlcm1hbm8/OiB0cnVlXHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQTWF0cml6ID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnUE1BVFJJWidcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9zSW1wbGVtZW50YWRvcyA9IEZvcm11bGFyaW8gfCBCbG9xdWUgfCBGaWx0cm8gfCBDb25qdW50b1ByZWd1bnRhcyB8IFByZWd1bnRhIHwgT3BjaW9uTXVsdGlwbGUgfCBPcGNpb24gfCBCb3RvbkZvcm11bGFyaW8gfCBDb25zaXN0ZW5jaWEgfCBUZXh0byB8IExpYnJlIHwgUE1hdHJpelxyXG5cclxuZXhwb3J0IHR5cGUgQ2FtcG9Qa1JhaXogPSAndml2aWVuZGEnIHwgJ2V0Yy4uLic7XHJcblxyXG5leHBvcnQgdHlwZSBWYWx1ZVBrUmFpeiA9IElkRW5jXHJcblxyXG5leHBvcnQgdHlwZSBGb3JQa1JhaXogPSB7XHJcbiAgICBmb3JtdWxhcmlvOiBJZEZvcm11bGFyaW9cclxufSAmIHtcclxuICAgIFtjYW1wbyBpbiBDYW1wb1BrUmFpel06IFZhbHVlUGtSYWl6XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGsgPSAndml2aWVuZGEnIHwgJ2hvZ2FyJyB8ICdwZXJzb25hJyB8ICdldGMuLi4nO1xyXG5leHBvcnQgdHlwZSBGb3JQayA9IEZvclBrUmFpeiAmIHtcclxuICAgIFtjYW1wbyBpbiBDYW1wb1BrXT86IG51bWJlclxyXG59XHJcbmV4cG9ydCB0eXBlIFBsYWluRm9yUGsgPSAne1wiZm9ybXVsYXJpb1wiOlwiRjpGMVwiLFwidml2aWVuZGFcIjpcIjEwMjAyXCIsXCJwZXJzb25hXCI6bnVsbH0nIHwgJ2V0Yy4uLic7XHJcblxyXG5leHBvcnQgdHlwZSBPYmpldG9OdW1lcmFkb09BcnJheTxUPiA9IFRbXSB8IHsgW24gaW4gbnVtYmVyXTogVCB9XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzVW5hVUEgPSB7XHJcbiAgICBbcHJlZ3VudGEgaW4gSWRWYXJpYWJsZV06IFZhbG9yXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3B1ZXN0YUxhc1VBID0ge1xyXG4gICAgW3VhIGluIElkVW5pZGFkQW5hbGlzaXNdOiBPYmpldG9OdW1lcmFkb09BcnJheTxSZXNwdWVzdGFzPlxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb2RSZWFOb1JlYSA9IHtcclxuICAgIGNvZFJlYTogbnVtYmVyIHwgbnVsbCxcclxuICAgIGNvZE5vUmVhOiBudW1iZXIgfCBudWxsLFxyXG4gICAgY29kUmVhU3VwOiBudW1iZXIgfCBudWxsLFxyXG4gICAgY29kTm9SZWFTdXA6IG51bWJlciB8IG51bGwsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3VsdGFkb1Jlc3VtZW4gPSBDb2RSZWFOb1JlYSAmIHtcclxuICAgIHJlc3VtZW5Fc3RhZG86IFJlc3VtZW5Fc3RhZG8sXHJcbiAgICByZXN1bWVuRXN0YWRvU3VwOiBSZXN1bWVuRXN0YWRvLFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzID0gUmVzcHVlc3Rhc1VuYVVBICYgUmVzcHVlc3RhTGFzVUFcclxuXHJcbmV4cG9ydCB0eXBlIFJlc3B1ZXN0YXNSYWl6ID0gUmVzcHVlc3RhcyAmIFJlc3VsdGFkb1Jlc3VtZW4gJiB7XHJcbiAgICAkZGlydHk6IGJvb2xlYW5cclxufVxyXG5cclxuLypcclxuICAgIGFjbGFyYWNpw7NuOlxyXG4gICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBVbmlkYWRBbmFsaXNpcyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHBhZHJlPzogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHBrX2FncmVnYWRhOiBDYW1wb1BrLFxyXG4gICAgcHJpbmNpcGFsPzogYm9vbGVhbixcclxuICAgIGhpamFzOiB7IFtrIGluIElkVW5pZGFkQW5hbGlzaXNdPzogVW5pZGFkQW5hbGlzaXMgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBURU0gPSB7XHJcbiAgICBub21jYWxsZTogc3RyaW5nXHJcbiAgICBkb21pbmlvOiBudW1iZXJcclxuICAgIHNlY3Rvcjogc3RyaW5nXHJcbiAgICBlZGlmaWNpbzogc3RyaW5nXHJcbiAgICBlbnRyYWRhOiBzdHJpbmdcclxuICAgIG5yb2NhdGFzdHJhbDogc3RyaW5nXHJcbiAgICBwaXNvOiBzdHJpbmdcclxuICAgIGRlcGFydGFtZW50bzogc3RyaW5nXHJcbiAgICBoYWJpdGFjaW9uOiBzdHJpbmdcclxuICAgIGNhc2E6IHN0cmluZ1xyXG4gICAgcHJpb3JpZGFkOiAxIHwgMiB8IDNcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZ1xyXG4gICAgc2VsZWNjaW9uYWRvOiBudW1iZXIsXHJcbiAgICBjaXRhPzogc3RyaW5nLFxyXG4gICAgY2FyZ2E6IHN0cmluZyxcclxuICAgIHNlbWFuYT86IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXN1bWVuRXN0YWRvID0gJ3ZhY2lvJyB8ICdjb24gcHJvYmxlbWFzJyB8ICdpbmNvbXBsZXRvJyB8ICdvaycgfCAnbm8gcmVhJyB8ICdjaXRhIHBhY3RhZGEnO1xyXG5cclxuZXhwb3J0IHR5cGUgSW5mb1RhcmVhID0ge1xyXG4gICAgdGFyZWE6IElkVGFyZWFcclxuICAgIG5vdGFzPzogc3RyaW5nXHJcbiAgICBmZWNoYV9hc2lnbmFjaW9uPzogRGF0ZVxyXG4gICAgYXNpZ25hZG8/OiBzdHJpbmdcclxuICAgIG1haW5fZm9ybTogSWRGb3JtdWxhcmlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFZpc2l0YSA9IHtcclxuICAgIGZlY2hhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBob3JhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBpZHBlcjogc3RyaW5nIHwgbnVsbFxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRvc0hkclVhUHBhbCA9IHtcclxuICAgIHRhcmVhOiBJbmZvVGFyZWFcclxuICAgIHRlbTogVEVNXHJcblxyXG4gICAgLypcclxuICAgICAgICBhY2xhcmFjacOzbjpcclxuICAgICAgICB7djE6J3gnLCB2MjoneCcsIHBlcnNvbmFzOlt7cDE6MSwgcDI6J3h9LHtwMToyLCBwMjp4fV0sIG1hc2NvdGFzOltdIH1cclxuICAgICAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiAgICAqL1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZENhcmdhID0gXCIxXCIgfCBcIjJcIiB8IFwiZXRjXCJcclxuXHJcbmV4cG9ydCB0eXBlIEVzdGFkb0NhcmdhID0gJ3Jlc3VtZW4nIHwgJ3JlbGV2YW1pZW50bycgfCAncmVjaWJvJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2EgPSB7XHJcbiAgICBmZWNoYTogRGF0ZVxyXG4gICAgZXN0YWRvX2NhcmdhOiBFc3RhZG9DYXJnYVxyXG4gICAgbmVjZXNhcmlhczogbnVtYmVyXHJcbiAgICBvYnNlcnZhY2lvbmVzOiBzdHJpbmdcclxuICAgIHJlY2VwY2lvbmlzdGE6IHN0cmluZ1xyXG4gICAgcHVlZGVfYXV0b2dlbmVyYXI6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2FzID0ge1xyXG4gICAgW2lkQ2FyZ2EgaW4gSWRDYXJnYV06IENhcmdhXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgPSBTdHJ1Y3R1cmU8SWRWYXJpYWJsZSwgVmFsb3IsIElkRmluPjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9EZXNwbGllZ3VlID0gJ21ldGFkYXRvcycgfCAncmVsZXZhbWllbnRvJyB8ICdQREYnXHJcblxyXG5leHBvcnQgdHlwZSBQYW50YWxsYU5hdmVnYWNpb24gPSAnaGRyJyB8ICdzaW5jcm9uaXphY2lvbicgfCAnc2luY3Jvbml6YWNpb25fcmVxdWVyaWRhJyB8ICdtb2RvJztcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9Gb3JtdWxhcmlvID0ge1xyXG4gICAgY2FzaWxsZXJvczogRm9ybXVsYXJpbywgLy8gY2FzaWxsZXJvcyBhcGxhbmFkb3NcclxuICAgIGVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3I6IEVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgLy8gZXN0cnVjdHVyYSBkZSB2YXJpYWJsZXMgcGFyYSBlbCBSb3dWYWxpZGF0b3JcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRSZXN1bHRhZG8gPSAnQVZFUklHVUFSJyB8ICdUT0RPJztcclxuZXhwb3J0IHR5cGUgSWRTZW1hbmEgPSAxIHwgMiB8ICdldGMnXHJcblxyXG5leHBvcnQgdHlwZSBTZW1hbmEgPSB7XHJcbiAgICBvcGVyYXRpdm86IElkT3BlcmF0aXZvO1xyXG4gICAgc2VtYW5hOiBudW1iZXI7XHJcbiAgICBzZW1hbmFfcmVmZXJlbmNpYV9kZXNkZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBzZW1hbmFfcmVmZXJlbmNpYV9oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbiAgICAnMzBkaWFzX3JlZmVyZW5jaWFfZGVzZGUnPzogc3RyaW5nIHwgbnVsbDtcclxuICAgICczMGRpYXNfcmVmZXJlbmNpYV9oYXN0YSc/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgbWVzX3JlZmVyZW5jaWE/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfZW5jX2Rlc2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX2VuY19oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjYXJnYV9yZWN1X2Rlc2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX3JlY3VfaGFzdGE/OiBzdHJpbmcgfCBudWxsO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgVGFyZWFzRXN0cnVjdHVyYSA9IHtcclxuICAgIFtpZFRhcmVhIGluIElkVGFyZWFdOiB7XHJcbiAgICAgICAgcmVzdWx0YWRvczoge1xyXG4gICAgICAgICAgICBbaWRSZXN1bHRhZG8gaW4gSWRSZXN1bHRhZG9dOiB7XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwY2lvbjogc3RyaW5nXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFRpcG9Db25kaWNpb24gPSAnbm9fcmVhJyB8ICdub19yZWFfc3VwJyB8ICdyZWEnIHwgJ3JlYV9zdXAnO1xyXG5cclxuZXhwb3J0IHR5cGUgTm9SZWEgPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgbm9fcmVhOiBudW1iZXI7XHJcbiAgICBkZXNjcmlwY2lvbjogc3RyaW5nO1xyXG4gICAgZ3J1cG86IHN0cmluZztcclxuICAgIHZhcmlhYmxlOiBzdHJpbmc7XHJcbiAgICB2YWxvcjogc3RyaW5nO1xyXG4gICAgZ3J1cG8wOiBzdHJpbmc7XHJcbiAgICBvcmRlbjogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTm9SZWFTdXAgPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgbm9fcmVhX3N1cDogbnVtYmVyO1xyXG4gICAgZGVzY19ub3JlYV9zdXA6IHN0cmluZztcclxuICAgIGdydXBvX3N1cDogc3RyaW5nO1xyXG4gICAgdmFyaWFibGVfc3VwOiBzdHJpbmc7XHJcbiAgICB2YWxvcl9zdXA6IHN0cmluZztcclxuICAgIGdydXBvMF9zdXA6IHN0cmluZztcclxuICAgIG9yZGVuOiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBSZWEgPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgcmVhOiBudW1iZXI7XHJcbiAgICBkZXNjcmlwY2lvbjogc3RyaW5nO1xyXG4gICAgY29uZGljaW9uOiBzdHJpbmc7XHJcbiAgICBjb25kaWNpb25fanM6IHN0cmluZztcclxuICAgIG9yZGVuOiBudW1iZXI7XHJcbiAgICBlc19wb3NpdGl2YTogYm9vbGVhbjtcclxuICAgIHRhcmVhOiBzdHJpbmcgfCBudWxsO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUmVhU3VwID0ge1xyXG4gICAgb3BlcmF0aXZvOiBzdHJpbmdcclxuICAgIHJlYV9zdXA6IG51bWJlcjtcclxuICAgIGRlc2NyaXBjaW9uOiBzdHJpbmc7XHJcbiAgICBjb25kaWNpb246IHN0cmluZztcclxuICAgIGNvbmRpY2lvbl9qczogc3RyaW5nO1xyXG4gICAgb3JkZW46IG51bWJlcjtcclxuICAgIGVzX3Bvc2l0aXZhOiBib29sZWFuO1xyXG4gICAgdGFyZWE6IHN0cmluZyB8IG51bGw7XHJcbn07XHJcblxyXG4vLyBNYXBlbyBkZSB0aXBvcyBwYXJhIGFzb2NpYXIgZWwgc3RyaW5nIGRlIGxhIGNvbmRpY2nDs24gY29uIHN1IGludGVyZmF6IGNvcnJlc3BvbmRpZW50ZVxyXG5leHBvcnQgdHlwZSBNYXBlb1RpcG9JdGVtID0ge1xyXG4gICAgJ3JlYSc6IFJlYTtcclxuICAgICdub19yZWEnOiBOb1JlYTtcclxuICAgICdyZWFfc3VwJzogUmVhU3VwO1xyXG4gICAgJ25vX3JlYV9zdXAnOiBOb1JlYVN1cDtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEVzdHJ1Y3R1cmEgPSB7XHJcbiAgICBmb3JtdWxhcmlvczoge1xyXG4gICAgICAgIFtub21icmVGb3JtdWxhcmlvIGluIElkRm9ybXVsYXJpb106IEluZm9Gb3JtdWxhcmlvXHJcbiAgICB9O1xyXG4gICAgdW5pZGFkZXNfYW5hbGlzaXM6IHtcclxuICAgICAgICBbaWRVbmlkYWRBbmFsaXNpcyBpbiBJZFVuaWRhZEFuYWxpc2lzXTogVW5pZGFkQW5hbGlzaXNcclxuICAgIH07XHJcbiAgICB0YXJlYXM6IFRhcmVhc0VzdHJ1Y3R1cmE7XHJcbiAgICB1YVBwYWw6IElkVW5pZGFkQW5hbGlzaXM7XHJcbiAgICBwa0FncmVnYWRhVWFQcGFsOiBDYW1wb1BrUmFpejtcclxuICAgIHRpbWVzdGFtcDogbnVtYmVyO1xyXG4gICAgb3BlcmF0aXZvOiBJZE9wZXJhdGl2bztcclxuICAgIGNvbmZpZ1NvcnRlbzogQ29uZmlndXJhY2lvblNvcnRlbztcclxuICAgIGhhYmlsaXRhY2lvbkJvdG9uRm9ybXVsYXJpbzogQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpbztcclxuICAgIGNvblJlYUhvZ2FyOiBib29sZWFuO1xyXG4gICAgbm9SZWFzOiBOb1JlYVtdO1xyXG4gICAgbm9SZWFzU3VwOiBOb1JlYVN1cFtdO1xyXG4gICAgcmVhczogUmVhW107XHJcbiAgICByZWFzU3VwOiBSZWFTdXBbXTtcclxuICAgIHNlbWFuYXM6IHsgW2lkU2VtYW5hIGluIElkU2VtYW5hXTogU2VtYW5hIH07XHJcbiAgICBkZWZhdWx0SW5mb3JtYWNpb25IZHI6IERhdG9zSGRyVWFQcGFsO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgSWRFbmMgPSAxMzAwMzEgfCAxMzAwMzI7XHJcbmV4cG9ydCB0eXBlIEluZm9ybWFjaW9uSGRyID0geyBbZW5jIGluIElkRW5jXTogRGF0b3NIZHJVYVBwYWwgfVxyXG5cclxuZXhwb3J0IHR5cGUgQ2Fzb1N0YXRlID0ge1xyXG4gICAgb3BjaW9uZXM6IHsgLy8gZGF0b3MgZGUgbmF2ZWdhY2nDs24gcXVlIGVsaWplIGVsIHVzdWFyaW9cclxuICAgICAgICBmb3JQazogRm9yUGsgfCBudWxsIC8vIMOtbmRpY2UgZGVudHJvIGRlIGxhcyB1bmlkYWRlcyBkZSBhbsOhbGlzaXMuIE51bGwgPSBlbiBob2phIGRlIHJ1dGFcclxuICAgICAgICBwaWxhRm9yUGs6IEZvclBrW11cclxuICAgICAgICBtb2RvRGVzcGxpZWd1ZTogTW9kb0Rlc3BsaWVndWVcclxuICAgICAgICBtb2RvRGlyZWN0bzogYm9vbGVhblxyXG4gICAgICAgIG1vZG9Cb3JyYXJSZXNwdWVzdGE6IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICAgICAgY29uQ2FtcG9PcGNpb25lczogYm9vbGVhblxyXG4gICAgICAgIHNhbHRvQXV0b21hdGljbzogYm9vbGVhblxyXG4gICAgICAgIHBhbnRhbGxhQWN0dWFsOiBQYW50YWxsYU5hdmVnYWNpb25cclxuICAgICAgICBhdmlzb1BlcnNpc3RlbnRlOiB7IHRpcG86ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicsIG1lbnNhamU6IHN0cmluZ30gfCBudWxsXHJcbiAgICAgICAgY29tb2RpbmVzOiB7W2lkQ29tb2RpbiBpbiBJZENvbW9kaW5dPzogc3RyaW5nfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXN1bHRhZG9SZWFOb1JlYTxLIGV4dGVuZHMga2V5b2YgQ29kUmVhTm9SZWEsIEIgZXh0ZW5kcyBzdHJpbmc+ID0ge1xyXG4gICAgW1AgaW4gS106IENvZFJlYU5vUmVhW0tdO1xyXG59ICYge1xyXG4gICAgW1AgaW4gQl06IGJvb2xlYW47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBGdW5jaW9uZXNDYWxjdWxvUmVhTm9SZWEgPSB7XHJcbiAgZXNOb1JlYTogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMsIHRhcmVhOiBzdHJpbmcpID0+IFJlc3VsdGFkb1JlYU5vUmVhPCdjb2ROb1JlYScsICdlc05vUmVhJz47XHJcbiAgZXNOb1JlYVN1cDogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMsIHRhcmVhOiBzdHJpbmcpID0+IFJlc3VsdGFkb1JlYU5vUmVhPCdjb2ROb1JlYVN1cCcsICdlc05vUmVhU3VwJz47XHJcbiAgZXNSZWFsaXphZGE6IChyZXNwdWVzdGFzOiBSZXNwdWVzdGFzLCB0YXJlYTogc3RyaW5nKSA9PiBSZXN1bHRhZG9SZWFOb1JlYTwnY29kUmVhJywgJ2VzUmVhJz47XHJcbiAgZXNSZWFsaXphZGFTdXA6IChyZXNwdWVzdGFzOiBSZXNwdWVzdGFzLCB0YXJlYTogc3RyaW5nKSA9PiBSZXN1bHRhZG9SZWFOb1JlYTwnY29kUmVhU3VwJywgJ2VzUmVhU3VwJz47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBEZWZPcGVyYXRpdm8gPSBGdW5jaW9uZXNDYWxjdWxvUmVhTm9SZWEgJiB7XHJcbiAgICBVQXByaW5jaXBhbDogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIGRlZlVBOiB7IFtpIGluIElkVW5pZGFkQW5hbGlzaXNdOiB7IHBrOiBJZFZhcmlhYmxlLCBpbmNsdWlkYXM6IElkVW5pZGFkQW5hbGlzaXNbXSwgaWRzRm9yOiBJZEZvcm11bGFyaW9bXSB9IH0sXHJcbiAgICBkZWZGb3I6IHsgW2YgaW4gSWRGb3JtdWxhcmlvXTogey8qYXJib2xVQTpJZFVuaWRhZEFuYWxpc2lzW10sICovIGhlcm1hbm8/OiB0cnVlIH0gfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyA9IHtcclxuICAgIHJlc3B1ZXN0YXM6IHsgW3VhIGluIElkVW5pZGFkQW5hbGlzaXNdOiBSZXNwdWVzdGFzUmFpeltdIH1cclxuICAgIG1vZG9BbG1hY2VuYW1pZW50bzogTW9kb0FsbWFjZW5hbWllbnRvXHJcbiAgICBwZXJzb25hOiBzdHJpbmdcclxuICAgIHRhcmVhOiBJZFRhcmVhXHJcbiAgICBpZHBlcjogc3RyaW5nXHJcbiAgICBjYXJnYXM6IENhcmdhc1xyXG4gICAgaW5mb3JtYWNpb25IZHI6IEluZm9ybWFjaW9uSGRyXHJcbiAgICBzb2xvTGVjdHVyYTogYm9vbGVhblxyXG4gICAgdG9rZW4/OiBzdHJpbmdcclxuICAgIG51bV9zaW5jcm8/OiBudW1iZXJcclxuICAgIHRpbWVzdGFtcEVzdHJ1Y3R1cmE/OiBudW1iZXJcclxuICAgIHBlcm1pdGVCb3JyYXJFbGVtZW50b3NVQT86IGJvb2xlYW5cclxufVxyXG5cclxudHlwZSBDb25maWd1cmFjaW9uU29ydGVvVGFibGEgPSB7XHJcbiAgICBtZXRvZG86IFwidGFibGFcIixcclxuICAgIHBhcmFtX21ldG9kbzoge1xyXG4gICAgICAgIHRhYmxhOiBzdHJpbmdbXSxcclxuICAgICAgICB2YXJfbGV0cmE6IElkVmFyaWFibGUsXHJcbiAgICB9XHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb0hhc2ggPSB7XHJcbiAgICBtZXRvZG86IFwiaGFzaFwiLFxyXG4gICAgcGFyYW1fbWV0b2RvOiB7XHJcbiAgICAgICAgdmFyX2NvZWY6IFtcclxuICAgICAgICAgICAgeyB2YXI6IElkVmFyaWFibGUsIGNvZWY6IG51bWJlciB9LFxyXG4gICAgICAgICAgICB7IHZhcjogSWRWYXJpYWJsZSwgY29lZjogbnVtYmVyIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBkaXZpc29yOiBudW1iZXJcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvblNvcnRlbyA9IHsgW2tleSBpbiBJZEZvcm11bGFyaW9dOiBDb25maWd1cmFjaW9uU29ydGVvRm9ybXVsYXJpbyB9XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvID0geyBba2V5IGluIElkRm9ybXVsYXJpb106IENvbmZpZ3VyYWNpb25IYWJpbGl0YXJCb3RvbkZvcm11bGFyaW9Gb3JtIH1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9Gb3JtdWxhcmlvID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzX3BhZHJlOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWQ6IHN0cmluZyAvL1wibm90IChwMSkgb3Igbm8gdCAocDIpIG9yIG5vdChwMylcIlxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOiB7IGRvbWluaW86IG51bWJlciwgZXhwcjogc3RyaW5nIH1cclxuICAgIH1cclxuICAgIC8vZXhwcl9pbmNvbXBsZXRpdHVkX2pzOiBzdHJpbmcgLy9zZSBjcmVhIGFsIGNvbXBpbGFyXHJcbiAgICBleHByX2luY29tcGxldGl0dWRfanM6IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgZGlzcGFyYWRvcjogSWRWYXJpYWJsZSAvL1wicDlcIlxyXG4gICAgLy9maWx0cm86IHN0cmluZyAvL1wicDM+PTE4XCJcclxuICAgIGZpbHRybzoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICAvL2ZpbHRyb19qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZmlsdHJvX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOiB7IGRvbWluaW86IG51bWJlciwgZXhwcjogc3RyaW5nIH1cclxuICAgIH1cclxuICAgIG9yZGVuOiB7XHJcbiAgICAgICAgdmFyaWFibGU6IElkVmFyaWFibGVcclxuICAgICAgICBvcmRlbjogMSB8IC0xXHJcbiAgICB9W10gLy9bXCJwM1wiLCBcInAyXCIsIFwicDFcIiwgXCJwMFwiXSwgLy8gcDAgZXMgY29uc3RydWlkYSwgbm8gdmEgZW4gcGFyw6FtZXRyb3MsIHNlIHBvbmUgcGFyYSBxdWUgZWwgb3JkZW4gc2VhIGRldGVybWluw61zdGljb1xyXG4gICAgcGFyYW1ldHJvczogSWRWYXJpYWJsZVtdLy8gW1wicDFcIixcInAyXCIsXCJwM1wiLCBcInA0XCIsIFwicDVcIiwgXCJwNlwiXSwgLy8gdmFyaWFibGVzIHF1ZSBhbnVsYW4gYWwgZGlzcGFyYWRvclxyXG4gICAgY2FudGlkYWRfc29ydGVhYmxlczogSWRWYXJpYWJsZVxyXG4gICAgY2FudGlkYWRfdG90YWw6IElkVmFyaWFibGVcclxuICAgIHJlc3VsdGFkbzogSWRWYXJpYWJsZSAvL1wicDExXCJcclxuICAgIHJlc3VsdGFkb19tYW51YWw6IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICBzb3J0ZWFkb19tb3N0cmFyPzogeyBzb3VyY2U6IElkVmFyaWFibGUsIHRhcmdldDogSWRWYXJpYWJsZSB9W10sXHJcbiAgICBpbmNvbXBsZXRhczogSWRWYXJpYWJsZVxyXG4gICAgdmFyaWFibGVCb3RvbkZvcm11bGFyaW9VQTogSWRWYXJpYWJsZS8vJyRCLkY6UzFfUCdcclxuICAgIHZhcmlhYmxlQm90b25Gb3JtdWxhcmlvVUFJbmRpdmlkdWFsPzogSWRWYXJpYWJsZSAvLyckQi5GOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19pbmRpdmlkdWFsPzogSWRGb3JtdWxhcmlvIC8vICdGOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19wYWRyZT86IElkRm9ybXVsYXJpbyAvLyAnRjpTMSdcclxufSAmIChDb25maWd1cmFjaW9uU29ydGVvSGFzaCB8IENvbmZpZ3VyYWNpb25Tb3J0ZW9UYWJsYSlcclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25IYWJpbGl0YXJCb3RvbkZvcm11bGFyaW9Gb3JtID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgZXhwcl9oYWJpbGl0YXJfYm90b246IHN0cmluZyxcclxuICAgIGV4cHJfaGFiaWxpdGFyX2JvdG9uX2pzOiBzdHJpbmcsXHJcbiAgICBoYWJpbGl0YXJfYWdyZWdhcl9saXN0bzogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9QbGFpbkZvclBrKGZvclBrOiBGb3JQayk6IFBsYWluRm9yUGsge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZvclBrKSBhcyBQbGFpbkZvclBrO1xyXG59XHJcblxyXG5leHBvcnQgdmFyIGl0ZXJhdG9yOiA8VD4obzogT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4pID0+IEl0ZXJhYmxlPFQ+ID0gTGlrZUFyLml0ZXJhdG9yXHJcbmV4cG9ydCB2YXIgZW1wdHk6IDxUPihvOiBPYmpldG9OdW1lcmFkb09BcnJheTxUPiB8IG51bGwgfCB1bmRlZmluZWQpID0+IGJvb2xlYW4gPSBMaWtlQXIuZW1wdHlcclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICAgIG5hbWVzcGFjZSBteU93biB7XHJcbiAgICAgICAgaW50ZXJmYWNlIEFkZHJQYXJhbXMge1xyXG4gICAgICAgICAgICBzdGF0ZV9mb3JQazogc3RyaW5nXHJcbiAgICAgICAgICAgIHN0YXRlX3BpbGFGb3JQazogc3RyaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEaXJlY2Npb25BY2Npb24gPSAnYXZhbmNlJyB8ICdyZXRyb2Nlc28nIHwgJ2JsYW5xdWVvJ1xyXG5cclxuZXhwb3J0IHR5cGUgRXN0YWRvQWNjaW9uID0ge1xyXG4gICAgb3BlcmF0aXZvOiBzdHJpbmdcclxuICAgIGVzdGFkbzogc3RyaW5nXHJcbiAgICBlYWNjaW9uOiBzdHJpbmdcclxuICAgIGNvbmRpY2lvbjogc3RyaW5nXHJcbiAgICBlc3RhZG9fZGVzdGlubzogc3RyaW5nXHJcbiAgICBlYWNjaW9uX2RpcmVjY2lvbjogRGlyZWNjaW9uQWNjaW9uXHJcbiAgICBwYXRoX2ljb25vX3N2Zzogc3RyaW5nXHJcbiAgICBub21icmVfcHJvY2VkdXJlOiBzdHJpbmdcclxuICAgIG5vbWJyZV93c2NyZWVuOiBzdHJpbmdcclxuICAgIGRlc2FjdGl2YV9ib3RvbjogYm9vbGVhblxyXG4gICAgY29uZmlybWE6IGJvb2xlYW5cclxufVxyXG5leHBvcnQgdHlwZSBNb2RvRE0gPSAncHJvZHVjJyB8ICdjYXBhJzsiXX0=