dmencu 3.3.1 → 3.5.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 (83) hide show
  1. package/ayuda/asignacion.md +16 -0
  2. package/ayuda/circuito-encuesta.md +27 -0
  3. package/ayuda/control.md +13 -0
  4. package/ayuda/dm-cambiar-modo.md +16 -0
  5. package/ayuda/dm-relevamiento.md +20 -0
  6. package/ayuda/dm-sincronizar.md +18 -0
  7. package/ayuda/fin-de-campo.md +14 -0
  8. package/ayuda/metadatos.md +14 -0
  9. package/ayuda/muestra.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 +99 -2
  16. package/dist/client/client/css/menu.styl +29 -0
  17. package/dist/client/unlogged/css/formulario-react.styl +9 -0
  18. package/dist/client/unlogged/render-config.d.ts +5 -1
  19. package/dist/client/unlogged/render-config.js +14 -1
  20. package/dist/client/unlogged/render-formulario.d.ts +1 -0
  21. package/dist/client/unlogged/render-formulario.js +43 -2
  22. package/dist/client/unlogged/render-formulario.tsx +71 -0
  23. package/dist/client/unlogged/render-general.d.ts +2 -0
  24. package/dist/client/unlogged/render-general.js +2 -1
  25. package/dist/client/unlogged/render-general.tsx +1 -0
  26. package/dist/client/unlogged/render-init.d.ts +1 -0
  27. package/dist/client/unlogged/render-init.js +9 -2
  28. package/dist/client/unlogged/tipos.d.ts +19 -1
  29. package/dist/client/unlogged/tipos.js +1 -1
  30. package/dist/server/app-dmencu.d.ts +8 -1
  31. package/dist/server/app-dmencu.js +42 -2
  32. package/dist/server/ayuda.d.ts +19 -0
  33. package/dist/server/ayuda.js +224 -0
  34. package/dist/server/def-config.d.ts +1 -1
  35. package/dist/server/def-config.js +2 -1
  36. package/dist/server/procedures-dmencu.js +20 -2
  37. package/dist/server/server/app-dmencu.d.ts +8 -1
  38. package/dist/server/server/app-dmencu.js +42 -2
  39. package/dist/server/server/ayuda.d.ts +19 -0
  40. package/dist/server/server/ayuda.js +224 -0
  41. package/dist/server/server/def-config.d.ts +1 -1
  42. package/dist/server/server/def-config.js +2 -1
  43. package/dist/server/server/procedures-dmencu.js +18 -2
  44. package/dist/server/server/table-tem.d.ts +1 -0
  45. package/dist/server/server/table-tem.js +25 -21
  46. package/dist/server/server/table-tem_edicion.d.ts +2 -0
  47. package/dist/server/server/table-tem_edicion.js +62 -0
  48. package/dist/server/server/types-dmencu.d.ts +20 -1
  49. package/dist/server/server/types-dmencu.js +1 -1
  50. package/dist/server/table-tem.d.ts +1 -0
  51. package/dist/server/table-tem.js +25 -21
  52. package/dist/server/table-tem_edicion.d.ts +2 -0
  53. package/dist/server/table-tem_edicion.js +62 -0
  54. package/dist/server/types-dmencu.d.ts +20 -1
  55. package/dist/server/types-dmencu.js +1 -1
  56. package/dist/server/unlogged/tipos.d.ts +19 -1
  57. package/dist/server/unlogged/tipos.js +1 -1
  58. package/dist/test/app-para-tests.d.ts +11 -8
  59. package/dist/test/app-para-tests.js +8 -2
  60. package/dist/test/test-ayuda.d.ts +1 -0
  61. package/dist/test/test-ayuda.js +183 -0
  62. package/dist/test/test-tem-edicion.d.ts +1 -0
  63. package/dist/test/test-tem-edicion.js +103 -0
  64. package/dist/test/test.d.ts +2 -0
  65. package/dist/test/test.js +4 -2
  66. package/dist/unlogged/tipos.d.ts +19 -1
  67. package/dist/unlogged/tipos.js +1 -1
  68. package/dist/unlogged/unlogged/css/formulario-react.styl +9 -0
  69. package/dist/unlogged/unlogged/render-config.d.ts +5 -1
  70. package/dist/unlogged/unlogged/render-config.js +14 -1
  71. package/dist/unlogged/unlogged/render-formulario.d.ts +1 -0
  72. package/dist/unlogged/unlogged/render-formulario.js +43 -2
  73. package/dist/unlogged/unlogged/render-formulario.tsx +71 -0
  74. package/dist/unlogged/unlogged/render-general.d.ts +2 -0
  75. package/dist/unlogged/unlogged/render-general.js +2 -1
  76. package/dist/unlogged/unlogged/render-general.tsx +1 -0
  77. package/dist/unlogged/unlogged/render-init.d.ts +1 -0
  78. package/dist/unlogged/unlogged/render-init.js +9 -2
  79. package/dist/unlogged/unlogged/tipos.d.ts +19 -1
  80. package/dist/unlogged/unlogged/tipos.js +1 -1
  81. package/dist/unlogged/unlogged/unlogged.js +14 -1
  82. package/install/validar_manzana_casa_tem_trg.sql +25 -0
  83. package/package.json +5 -2
@@ -18,4 +18,4 @@
18
18
  exports.iterator = LikeAr.iterator;
19
19
  exports.empty = LikeAr.empty;
20
20
  });
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/OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzdW1lbkVzdGFkbyA9ICd2YWNpbycgfCAnY29uIHByb2JsZW1hcycgfCAnaW5jb21wbGV0bycgfCAnb2snIHwgJ25vIHJlYScgfCAnY2l0YSBwYWN0YWRhJztcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9UYXJlYSA9IHtcclxuICAgIHRhcmVhOiBJZFRhcmVhXHJcbiAgICBub3Rhcz86IHN0cmluZ1xyXG4gICAgZmVjaGFfYXNpZ25hY2lvbj86IERhdGVcclxuICAgIGFzaWduYWRvPzogc3RyaW5nXHJcbiAgICBtYWluX2Zvcm06IElkRm9ybXVsYXJpb1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBWaXNpdGEgPSB7XHJcbiAgICBmZWNoYTogc3RyaW5nIHwgbnVsbFxyXG4gICAgaG9yYTogc3RyaW5nIHwgbnVsbFxyXG4gICAgaWRwZXI6IHN0cmluZyB8IG51bGxcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZyB8IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGF0b3NIZHJVYVBwYWwgPSB7XHJcbiAgICB0YXJlYTogSW5mb1RhcmVhXHJcbiAgICB0ZW06IFRFTVxyXG5cclxuICAgIC8qXHJcbiAgICAgICAgYWNsYXJhY2nDs246XHJcbiAgICAgICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICAgICAgZXN0w6EgYW5pZGFkbyBwb3IgdW5pZGFkIGRlIGFuw6FsaXNpc1xyXG4gICAgKi9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRDYXJnYSA9IFwiMVwiIHwgXCIyXCIgfCBcImV0Y1wiXHJcblxyXG5leHBvcnQgdHlwZSBFc3RhZG9DYXJnYSA9ICdyZXN1bWVuJyB8ICdyZWxldmFtaWVudG8nIHwgJ3JlY2libydcclxuXHJcbmV4cG9ydCB0eXBlIENhcmdhID0ge1xyXG4gICAgZmVjaGE6IERhdGVcclxuICAgIGVzdGFkb19jYXJnYTogRXN0YWRvQ2FyZ2FcclxuICAgIG5lY2VzYXJpYXM6IG51bWJlclxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nXHJcbiAgICByZWNlcGNpb25pc3RhOiBzdHJpbmdcclxuICAgIHB1ZWRlX2F1dG9nZW5lcmFyOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhcmdhcyA9IHtcclxuICAgIFtpZENhcmdhIGluIElkQ2FyZ2FdOiBDYXJnYVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFc3RydWN0dXJhUm93VmFsaWRhdG9yID0gU3RydWN0dXJlPElkVmFyaWFibGUsIFZhbG9yLCBJZEZpbj47XHJcblxyXG5leHBvcnQgdHlwZSBNb2RvRGVzcGxpZWd1ZSA9ICdtZXRhZGF0b3MnIHwgJ3JlbGV2YW1pZW50bycgfCAnUERGJ1xyXG5cclxuZXhwb3J0IHR5cGUgUGFudGFsbGFOYXZlZ2FjaW9uID0gJ2hkcicgfCAnc2luY3Jvbml6YWNpb24nIHwgJ3NpbmNyb25pemFjaW9uX3JlcXVlcmlkYScgfCAnbW9kbyc7XHJcblxyXG5leHBvcnQgdHlwZSBJbmZvRm9ybXVsYXJpbyA9IHtcclxuICAgIGNhc2lsbGVyb3M6IEZvcm11bGFyaW8sIC8vIGNhc2lsbGVyb3MgYXBsYW5hZG9zXHJcbiAgICBlc3RydWN0dXJhUm93VmFsaWRhdG9yOiBFc3RydWN0dXJhUm93VmFsaWRhdG9yIC8vIGVzdHJ1Y3R1cmEgZGUgdmFyaWFibGVzIHBhcmEgZWwgUm93VmFsaWRhdG9yXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkUmVzdWx0YWRvID0gJ0FWRVJJR1VBUicgfCAnVE9ETyc7XHJcbmV4cG9ydCB0eXBlIElkU2VtYW5hID0gMSB8IDIgfCAnZXRjJ1xyXG5cclxuZXhwb3J0IHR5cGUgU2VtYW5hID0ge1xyXG4gICAgb3BlcmF0aXZvOiBJZE9wZXJhdGl2bztcclxuICAgIHNlbWFuYTogbnVtYmVyO1xyXG4gICAgc2VtYW5hX3JlZmVyZW5jaWFfZGVzZGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgc2VtYW5hX3JlZmVyZW5jaWFfaGFzdGE/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgJzMwZGlhc19yZWZlcmVuY2lhX2Rlc2RlJz86IHN0cmluZyB8IG51bGw7XHJcbiAgICAnMzBkaWFzX3JlZmVyZW5jaWFfaGFzdGEnPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIG1lc19yZWZlcmVuY2lhPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX2VuY19kZXNkZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjYXJnYV9lbmNfaGFzdGE/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfcmVjdV9kZXNkZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjYXJnYV9yZWN1X2hhc3RhPzogc3RyaW5nIHwgbnVsbDtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFRhcmVhc0VzdHJ1Y3R1cmEgPSB7XHJcbiAgICBbaWRUYXJlYSBpbiBJZFRhcmVhXToge1xyXG4gICAgICAgIHJlc3VsdGFkb3M6IHtcclxuICAgICAgICAgICAgW2lkUmVzdWx0YWRvIGluIElkUmVzdWx0YWRvXToge1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcGNpb246IHN0cmluZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUaXBvQ29uZGljaW9uID0gJ25vX3JlYScgfCAnbm9fcmVhX3N1cCcgfCAncmVhJyB8ICdyZWFfc3VwJztcclxuXHJcbmV4cG9ydCB0eXBlIE5vUmVhID0ge1xyXG4gICAgb3BlcmF0aXZvOiBzdHJpbmdcclxuICAgIG5vX3JlYTogbnVtYmVyO1xyXG4gICAgZGVzY3JpcGNpb246IHN0cmluZztcclxuICAgIGdydXBvOiBzdHJpbmc7XHJcbiAgICB2YXJpYWJsZTogc3RyaW5nO1xyXG4gICAgdmFsb3I6IHN0cmluZztcclxuICAgIGdydXBvMDogc3RyaW5nO1xyXG4gICAgb3JkZW46IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIE5vUmVhU3VwID0ge1xyXG4gICAgb3BlcmF0aXZvOiBzdHJpbmdcclxuICAgIG5vX3JlYV9zdXA6IG51bWJlcjtcclxuICAgIGRlc2Nfbm9yZWFfc3VwOiBzdHJpbmc7XHJcbiAgICBncnVwb19zdXA6IHN0cmluZztcclxuICAgIHZhcmlhYmxlX3N1cDogc3RyaW5nO1xyXG4gICAgdmFsb3Jfc3VwOiBzdHJpbmc7XHJcbiAgICBncnVwbzBfc3VwOiBzdHJpbmc7XHJcbiAgICBvcmRlbjogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUmVhID0ge1xyXG4gICAgb3BlcmF0aXZvOiBzdHJpbmdcclxuICAgIHJlYTogbnVtYmVyO1xyXG4gICAgZGVzY3JpcGNpb246IHN0cmluZztcclxuICAgIGNvbmRpY2lvbjogc3RyaW5nO1xyXG4gICAgY29uZGljaW9uX2pzOiBzdHJpbmc7XHJcbiAgICBvcmRlbjogbnVtYmVyO1xyXG4gICAgZXNfcG9zaXRpdmE6IGJvb2xlYW47XHJcbiAgICB0YXJlYTogc3RyaW5nIHwgbnVsbDtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFJlYVN1cCA9IHtcclxuICAgIG9wZXJhdGl2bzogc3RyaW5nXHJcbiAgICByZWFfc3VwOiBudW1iZXI7XHJcbiAgICBkZXNjcmlwY2lvbjogc3RyaW5nO1xyXG4gICAgY29uZGljaW9uOiBzdHJpbmc7XHJcbiAgICBjb25kaWNpb25fanM6IHN0cmluZztcclxuICAgIG9yZGVuOiBudW1iZXI7XHJcbiAgICBlc19wb3NpdGl2YTogYm9vbGVhbjtcclxuICAgIHRhcmVhOiBzdHJpbmcgfCBudWxsO1xyXG59O1xyXG5cclxuLy8gTWFwZW8gZGUgdGlwb3MgcGFyYSBhc29jaWFyIGVsIHN0cmluZyBkZSBsYSBjb25kaWNpw7NuIGNvbiBzdSBpbnRlcmZheiBjb3JyZXNwb25kaWVudGVcclxuZXhwb3J0IHR5cGUgTWFwZW9UaXBvSXRlbSA9IHtcclxuICAgICdyZWEnOiBSZWE7XHJcbiAgICAnbm9fcmVhJzogTm9SZWE7XHJcbiAgICAncmVhX3N1cCc6IFJlYVN1cDtcclxuICAgICdub19yZWFfc3VwJzogTm9SZWFTdXA7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBFc3RydWN0dXJhID0ge1xyXG4gICAgZm9ybXVsYXJpb3M6IHtcclxuICAgICAgICBbbm9tYnJlRm9ybXVsYXJpbyBpbiBJZEZvcm11bGFyaW9dOiBJbmZvRm9ybXVsYXJpb1xyXG4gICAgfTtcclxuICAgIHVuaWRhZGVzX2FuYWxpc2lzOiB7XHJcbiAgICAgICAgW2lkVW5pZGFkQW5hbGlzaXMgaW4gSWRVbmlkYWRBbmFsaXNpc106IFVuaWRhZEFuYWxpc2lzXHJcbiAgICB9O1xyXG4gICAgdGFyZWFzOiBUYXJlYXNFc3RydWN0dXJhO1xyXG4gICAgdWFQcGFsOiBJZFVuaWRhZEFuYWxpc2lzO1xyXG4gICAgcGtBZ3JlZ2FkYVVhUHBhbDogQ2FtcG9Qa1JhaXo7XHJcbiAgICB0aW1lc3RhbXA6IG51bWJlcjtcclxuICAgIG9wZXJhdGl2bzogSWRPcGVyYXRpdm87XHJcbiAgICBjb25maWdTb3J0ZW86IENvbmZpZ3VyYWNpb25Tb3J0ZW87XHJcbiAgICBoYWJpbGl0YWNpb25Cb3RvbkZvcm11bGFyaW86IENvbmZpZ3VyYWNpb25IYWJpbGl0YXJCb3RvbkZvcm11bGFyaW87XHJcbiAgICBjb25SZWFIb2dhcjogYm9vbGVhbjtcclxuICAgIG5vUmVhczogTm9SZWFbXTtcclxuICAgIG5vUmVhc1N1cDogTm9SZWFTdXBbXTtcclxuICAgIHJlYXM6IFJlYVtdO1xyXG4gICAgcmVhc1N1cDogUmVhU3VwW107XHJcbiAgICBzZW1hbmFzOiB7IFtpZFNlbWFuYSBpbiBJZFNlbWFuYV06IFNlbWFuYSB9O1xyXG4gICAgZGVmYXVsdEluZm9ybWFjaW9uSGRyOiBEYXRvc0hkclVhUHBhbDtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIElkRW5jID0gMTMwMDMxIHwgMTMwMDMyO1xyXG5leHBvcnQgdHlwZSBJbmZvcm1hY2lvbkhkciA9IHsgW2VuYyBpbiBJZEVuY106IERhdG9zSGRyVWFQcGFsIH1cclxuXHJcbmV4cG9ydCB0eXBlIENhc29TdGF0ZSA9IHtcclxuICAgIG9wY2lvbmVzOiB7IC8vIGRhdG9zIGRlIG5hdmVnYWNpw7NuIHF1ZSBlbGlqZSBlbCB1c3VhcmlvXHJcbiAgICAgICAgZm9yUGs6IEZvclBrIHwgbnVsbCAvLyDDrW5kaWNlIGRlbnRybyBkZSBsYXMgdW5pZGFkZXMgZGUgYW7DoWxpc2lzLiBOdWxsID0gZW4gaG9qYSBkZSBydXRhXHJcbiAgICAgICAgcGlsYUZvclBrOiBGb3JQa1tdXHJcbiAgICAgICAgbW9kb0Rlc3BsaWVndWU6IE1vZG9EZXNwbGllZ3VlXHJcbiAgICAgICAgbW9kb0RpcmVjdG86IGJvb2xlYW5cclxuICAgICAgICBtb2RvQm9ycmFyUmVzcHVlc3RhOiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgICAgIGNvbkNhbXBvT3BjaW9uZXM6IGJvb2xlYW5cclxuICAgICAgICBzYWx0b0F1dG9tYXRpY286IGJvb2xlYW5cclxuICAgICAgICBwYW50YWxsYUFjdHVhbDogUGFudGFsbGFOYXZlZ2FjaW9uXHJcbiAgICAgICAgYXZpc29QZXJzaXN0ZW50ZTogeyB0aXBvOiAnaW5mbycgfCAnc3VjY2VzcycgfCAnZXJyb3InLCBtZW5zYWplOiBzdHJpbmd9IHwgbnVsbFxyXG4gICAgICAgIGNvbW9kaW5lczoge1tpZENvbW9kaW4gaW4gSWRDb21vZGluXT86IHN0cmluZ31cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzdWx0YWRvUmVhTm9SZWE8SyBleHRlbmRzIGtleW9mIENvZFJlYU5vUmVhLCBCIGV4dGVuZHMgc3RyaW5nPiA9IHtcclxuICAgIFtQIGluIEtdOiBDb2RSZWFOb1JlYVtLXTtcclxufSAmIHtcclxuICAgIFtQIGluIEJdOiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgRnVuY2lvbmVzQ2FsY3Vsb1JlYU5vUmVhID0ge1xyXG4gIGVzTm9SZWE6IChyZXNwdWVzdGFzOiBSZXNwdWVzdGFzLCB0YXJlYTogc3RyaW5nKSA9PiBSZXN1bHRhZG9SZWFOb1JlYTwnY29kTm9SZWEnLCAnZXNOb1JlYSc+O1xyXG4gIGVzTm9SZWFTdXA6IChyZXNwdWVzdGFzOiBSZXNwdWVzdGFzLCB0YXJlYTogc3RyaW5nKSA9PiBSZXN1bHRhZG9SZWFOb1JlYTwnY29kTm9SZWFTdXAnLCAnZXNOb1JlYVN1cCc+O1xyXG4gIGVzUmVhbGl6YWRhOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcywgdGFyZWE6IHN0cmluZykgPT4gUmVzdWx0YWRvUmVhTm9SZWE8J2NvZFJlYScsICdlc1JlYSc+O1xyXG4gIGVzUmVhbGl6YWRhU3VwOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcywgdGFyZWE6IHN0cmluZykgPT4gUmVzdWx0YWRvUmVhTm9SZWE8J2NvZFJlYVN1cCcsICdlc1JlYVN1cCc+O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgRGVmT3BlcmF0aXZvID0gRnVuY2lvbmVzQ2FsY3Vsb1JlYU5vUmVhICYge1xyXG4gICAgVUFwcmluY2lwYWw6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICBkZWZVQTogeyBbaSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogeyBwazogSWRWYXJpYWJsZSwgaW5jbHVpZGFzOiBJZFVuaWRhZEFuYWxpc2lzW10sIGlkc0ZvcjogSWRGb3JtdWxhcmlvW10gfSB9LFxyXG4gICAgZGVmRm9yOiB7IFtmIGluIElkRm9ybXVsYXJpb106IHsvKmFyYm9sVUE6SWRVbmlkYWRBbmFsaXNpc1tdLCAqLyBoZXJtYW5vPzogdHJ1ZSB9IH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgPSB7XHJcbiAgICByZXNwdWVzdGFzOiB7IFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogUmVzcHVlc3Rhc1JhaXpbXSB9XHJcbiAgICBtb2RvQWxtYWNlbmFtaWVudG86IE1vZG9BbG1hY2VuYW1pZW50b1xyXG4gICAgcGVyc29uYTogc3RyaW5nXHJcbiAgICB0YXJlYTogSWRUYXJlYVxyXG4gICAgaWRwZXI6IHN0cmluZ1xyXG4gICAgY2FyZ2FzOiBDYXJnYXNcclxuICAgIGluZm9ybWFjaW9uSGRyOiBJbmZvcm1hY2lvbkhkclxyXG4gICAgc29sb0xlY3R1cmE6IGJvb2xlYW5cclxuICAgIHRva2VuPzogc3RyaW5nXHJcbiAgICBudW1fc2luY3JvPzogbnVtYmVyXHJcbiAgICB0aW1lc3RhbXBFc3RydWN0dXJhPzogbnVtYmVyXHJcbiAgICBwZXJtaXRlQm9ycmFyRWxlbWVudG9zVUE/OiBib29sZWFuXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhID0ge1xyXG4gICAgbWV0b2RvOiBcInRhYmxhXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB0YWJsYTogc3RyaW5nW10sXHJcbiAgICAgICAgdmFyX2xldHJhOiBJZFZhcmlhYmxlLFxyXG4gICAgfVxyXG59XHJcblxyXG50eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9IYXNoID0ge1xyXG4gICAgbWV0b2RvOiBcImhhc2hcIixcclxuICAgIHBhcmFtX21ldG9kbzoge1xyXG4gICAgICAgIHZhcl9jb2VmOiBbXHJcbiAgICAgICAgICAgIHsgdmFyOiBJZFZhcmlhYmxlLCBjb2VmOiBudW1iZXIgfSxcclxuICAgICAgICAgICAgeyB2YXI6IElkVmFyaWFibGUsIGNvZWY6IG51bWJlciB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGl2aXNvcjogbnVtYmVyXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW8gPSB7IFtrZXkgaW4gSWRGb3JtdWxhcmlvXTogQ29uZmlndXJhY2lvblNvcnRlb0Zvcm11bGFyaW8gfVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpbyA9IHsgW2tleSBpbiBJZEZvcm11bGFyaW9dOiBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvRm9ybSB9XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvRm9ybXVsYXJpbyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHVuaWRhZF9hbmFsaXNpc19wYWRyZTogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIC8vZXhwcl9pbmNvbXBsZXRpdHVkOiBzdHJpbmcgLy9cIm5vdCAocDEpIG9yIG5vIHQgKHAyKSBvciBub3QocDMpXCJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZDoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICAvL2V4cHJfaW5jb21wbGV0aXR1ZF9qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOiB7IGRvbWluaW86IG51bWJlciwgZXhwcjogc3RyaW5nIH1cclxuICAgIH1cclxuICAgIGRpc3BhcmFkb3I6IElkVmFyaWFibGUgLy9cInA5XCJcclxuICAgIC8vZmlsdHJvOiBzdHJpbmcgLy9cInAzPj0xOFwiXHJcbiAgICBmaWx0cm86IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgLy9maWx0cm9fanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGZpbHRyb19qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICBvcmRlbjoge1xyXG4gICAgICAgIHZhcmlhYmxlOiBJZFZhcmlhYmxlXHJcbiAgICAgICAgb3JkZW46IDEgfCAtMVxyXG4gICAgfVtdIC8vW1wicDNcIiwgXCJwMlwiLCBcInAxXCIsIFwicDBcIl0sIC8vIHAwIGVzIGNvbnN0cnVpZGEsIG5vIHZhIGVuIHBhcsOhbWV0cm9zLCBzZSBwb25lIHBhcmEgcXVlIGVsIG9yZGVuIHNlYSBkZXRlcm1pbsOtc3RpY29cclxuICAgIHBhcmFtZXRyb3M6IElkVmFyaWFibGVbXS8vIFtcInAxXCIsXCJwMlwiLFwicDNcIiwgXCJwNFwiLCBcInA1XCIsIFwicDZcIl0sIC8vIHZhcmlhYmxlcyBxdWUgYW51bGFuIGFsIGRpc3BhcmFkb3JcclxuICAgIGNhbnRpZGFkX3NvcnRlYWJsZXM6IElkVmFyaWFibGVcclxuICAgIGNhbnRpZGFkX3RvdGFsOiBJZFZhcmlhYmxlXHJcbiAgICByZXN1bHRhZG86IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICByZXN1bHRhZG9fbWFudWFsOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgc29ydGVhZG9fbW9zdHJhcj86IHsgc291cmNlOiBJZFZhcmlhYmxlLCB0YXJnZXQ6IElkVmFyaWFibGUgfVtdLFxyXG4gICAgaW5jb21wbGV0YXM6IElkVmFyaWFibGVcclxuICAgIHZhcmlhYmxlQm90b25Gb3JtdWxhcmlvVUE6IElkVmFyaWFibGUvLyckQi5GOlMxX1AnXHJcbiAgICB2YXJpYWJsZUJvdG9uRm9ybXVsYXJpb1VBSW5kaXZpZHVhbD86IElkVmFyaWFibGUgLy8nJEIuRjpJMSdcclxuICAgIGlkX2Zvcm11bGFyaW9faW5kaXZpZHVhbD86IElkRm9ybXVsYXJpbyAvLyAnRjpJMSdcclxuICAgIGlkX2Zvcm11bGFyaW9fcGFkcmU/OiBJZEZvcm11bGFyaW8gLy8gJ0Y6UzEnXHJcbn0gJiAoQ29uZmlndXJhY2lvblNvcnRlb0hhc2ggfCBDb25maWd1cmFjaW9uU29ydGVvVGFibGEpXHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvRm9ybSA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIGV4cHJfaGFiaWxpdGFyX2JvdG9uOiBzdHJpbmcsXHJcbiAgICBleHByX2hhYmlsaXRhcl9ib3Rvbl9qczogc3RyaW5nLFxyXG4gICAgaGFiaWxpdGFyX2FncmVnYXJfbGlzdG86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRvUGxhaW5Gb3JQayhmb3JQazogRm9yUGspOiBQbGFpbkZvclBrIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShmb3JQaykgYXMgUGxhaW5Gb3JQaztcclxufVxyXG5cclxuZXhwb3J0IHZhciBpdGVyYXRvcjogPFQ+KG86IE9iamV0b051bWVyYWRvT0FycmF5PFQ+KSA9PiBJdGVyYWJsZTxUPiA9IExpa2VBci5pdGVyYXRvclxyXG5leHBvcnQgdmFyIGVtcHR5OiA8VD4obzogT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4gfCBudWxsIHwgdW5kZWZpbmVkKSA9PiBib29sZWFuID0gTGlrZUFyLmVtcHR5XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgICBuYW1lc3BhY2UgbXlPd24ge1xyXG4gICAgICAgIGludGVyZmFjZSBBZGRyUGFyYW1zIHtcclxuICAgICAgICAgICAgc3RhdGVfZm9yUGs6IHN0cmluZ1xyXG4gICAgICAgICAgICBzdGF0ZV9waWxhRm9yUGs6IHN0cmluZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGlyZWNjaW9uQWNjaW9uID0gJ2F2YW5jZScgfCAncmV0cm9jZXNvJyB8ICdibGFucXVlbydcclxuXHJcbmV4cG9ydCB0eXBlIEVzdGFkb0FjY2lvbiA9IHtcclxuICAgIG9wZXJhdGl2bzogc3RyaW5nXHJcbiAgICBlc3RhZG86IHN0cmluZ1xyXG4gICAgZWFjY2lvbjogc3RyaW5nXHJcbiAgICBjb25kaWNpb246IHN0cmluZ1xyXG4gICAgZXN0YWRvX2Rlc3Rpbm86IHN0cmluZ1xyXG4gICAgZWFjY2lvbl9kaXJlY2Npb246IERpcmVjY2lvbkFjY2lvblxyXG4gICAgcGF0aF9pY29ub19zdmc6IHN0cmluZ1xyXG4gICAgbm9tYnJlX3Byb2NlZHVyZTogc3RyaW5nXHJcbiAgICBub21icmVfd3NjcmVlbjogc3RyaW5nXHJcbiAgICBkZXNhY3RpdmFfYm90b246IGJvb2xlYW5cclxuICAgIGNvbmZpcm1hOiBib29sZWFuXHJcbn1cclxuZXhwb3J0IHR5cGUgTW9kb0RNID0gJ3Byb2R1YycgfCAnY2FwYSc7Il19
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
@@ -1,3 +1,4 @@
1
+ import * as pg from 'pg-promise-strict';
1
2
  import { AppBackend } from 'meta-enc';
2
3
  import type { Context, PermisosRol, Puede } from '../server/types-dmencu';
3
4
  export declare const AppDmEncuParaTests: {
@@ -6,7 +7,7 @@ export declare const AppDmEncuParaTests: {
6
7
  getAppName: () => Promise<string>;
7
8
  canChangePass(reqOrContext?: import("backend-plus").Request | Context, userToChangePass?: string | null): Promise<boolean>;
8
9
  getProcedures(): Promise<import("backend-plus").ProcedureDef<any>[]>;
9
- checkDatabaseStructure(_client: import("pg-promise-strict").Client): Promise<void>;
10
+ checkDatabaseStructure(_client: pg.Client): Promise<void>;
10
11
  addSchrödingerServices(mainApp: import("express").Express, baseUrl: string): void;
11
12
  getColorsJson(_sufijo: import("../server/types-dmencu").SufijosAmbiente): {
12
13
  start_url: string;
@@ -16,6 +17,8 @@ export declare const AppDmEncuParaTests: {
16
17
  };
17
18
  addLoggedServices(): void;
18
19
  postConfig(): Promise<void>;
20
+ getAyudaFuentes(): import("../server/types-dmencu").AyudaFuente[];
21
+ problemasDeAyuda(): string[];
19
22
  configStaticConfig(): void;
20
23
  clientIncludes(req: import("backend-plus").Request, opts: import("backend-plus").OptsClientPage): import("backend-plus").ClientModuleDefinition[];
21
24
  refreshCaches(client?: import("../server/app-dmencu").ClienteDb | null): Promise<void>;
@@ -391,8 +394,8 @@ export declare const AppDmEncuParaTests: {
391
394
  appendToTableDefinition: ((tableName: string, appenderFunction: (tableDef: import("backend-plus").TableDefinition, context?: import("backend-plus").TableContext) => void) => void) & ((tableName: string, appenderFunction: (tableDef: import("backend-plus").TableDefinition, context?: import("backend-plus").TableContext) => void) => void);
392
395
  addUnloggedServices: ((mainApp: import("backend-plus").ExpressPlus, baseUrl: string) => void) & ((mainApp: import("backend-plus").ExpressPlus, baseUrl: string) => void);
393
396
  isAdmin: ((reqOrContext: import("backend-plus").Request | import("backend-plus").Context) => boolean) & ((reqOrContext: import("backend-plus").Request | Context) => boolean);
394
- inDbClient: (<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbClient: (client: import("pg-promise-strict").Client) => Promise<T_1>) => Promise<T_1>) & (<T>(req: import("backend-plus").RequestDb | null, doThisWithDbClient: (client: import("pg-promise-strict").Client) => Promise<T>) => Promise<T>);
395
- inTransaction: (<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbTransaction: (client: import("pg-promise-strict").Client) => Promise<T_1>) => Promise<T_1>) & (<T>(req: import("backend-plus").RequestDb | null, doThisWithDbTransaction: (client: import("pg-promise-strict").Client) => Promise<T>) => Promise<T>);
397
+ inDbClient: (<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbClient: (client: import("pg-promise-strict").Client) => Promise<T_1>) => Promise<T_1>) & (<T>(req: import("backend-plus").RequestDb | null, doThisWithDbClient: (client: pg.Client) => Promise<T>) => Promise<T>);
398
+ inTransaction: (<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbTransaction: (client: import("pg-promise-strict").Client) => Promise<T_1>) => Promise<T_1>) & (<T>(req: import("backend-plus").RequestDb | null, doThisWithDbTransaction: (client: pg.Client) => Promise<T>) => Promise<T>);
396
399
  inTransactionProcedureContext: (<T_1>(req: import("backend-plus").Request | null, coreFunction: (context: import("backend-plus").ProcedureContext) => Promise<T_1>) => Promise<T_1>) & (<T>(req: import("backend-plus").Request | null, coreFunction: (context: import("backend-plus").ProcedureContext) => Promise<T>) => Promise<T>);
397
400
  procedureDefCompleter: (<T_1>(procedureDef: import("backend-plus").ProcedureDef) => import("backend-plus").ProcedureDef<T_1>) & (<T>(procedureDef: import("backend-plus").ProcedureDef) => import("backend-plus").ProcedureDef<T>);
398
401
  tableDefAdapt: ((tableDef: import("backend-plus").TableDefinition, context: import("backend-plus").Context) => import("backend-plus").TableDefinition) & ((tableDef: import("backend-plus").TableDefinition, context: Context) => import("backend-plus").TableDefinition);
@@ -873,7 +876,7 @@ export declare const AppDmEncuParaTests: {
873
876
  clientIncludes(req: import("backend-plus").Request, hideBEPlusInclusions: import("backend-plus").OptsClientPage): import("backend-plus").ClientModuleDefinition[];
874
877
  addLoggedServices(): void;
875
878
  tablasDatos: import("meta-enc").TablaDatos[];
876
- cargarGenerados(client: import("pg-promise-strict").Client): Promise<string>;
879
+ cargarGenerados(client: pg.Client): Promise<string>;
877
880
  generateBaseTableDef(tablaDatos: import("meta-enc").TablaDatos): import("backend-plus").TableDefinition;
878
881
  getTableDefFunction(tableDef: import("backend-plus").TableDefinition): import("backend-plus").TableDefinitionFunction;
879
882
  loadTableDef(tableDef: import("backend-plus").TableDefinition): import("backend-plus").TableDefinitionFunction;
@@ -1002,7 +1005,7 @@ export declare const AppDmEncuParaTests: {
1002
1005
  new (...args: any[]): {
1003
1006
  tablasDatos: import("meta-enc").TablaDatos[];
1004
1007
  configStaticConfig(): void;
1005
- cargarGenerados(client: import("pg-promise-strict").Client): Promise<string>;
1008
+ cargarGenerados(client: pg.Client): Promise<string>;
1006
1009
  postConfig(): Promise<void>;
1007
1010
  generateBaseTableDef(tablaDatos: import("meta-enc").TablaDatos): import("backend-plus").TableDefinition;
1008
1011
  getTableDefFunction(tableDef: import("backend-plus").TableDefinition): import("backend-plus").TableDefinitionFunction;
@@ -1011,7 +1014,7 @@ export declare const AppDmEncuParaTests: {
1011
1014
  clientIncludes(req: import("backend-plus").Request, hideBEPlusInclusions: import("backend-plus").OptsClientPage): import("backend-plus").ClientModuleDefinition[];
1012
1015
  getMenu(): import("meta-enc").MenuDefinition;
1013
1016
  prepareGetTables(): void;
1014
- checkDatabaseStructure(client: import("pg-promise-strict").Client): Promise<void>;
1017
+ checkDatabaseStructure(client: pg.Client): Promise<void>;
1015
1018
  getDbFunctions(opts: import("backend-plus").DumpOptions): Promise<{
1016
1019
  dumpText: string;
1017
1020
  }[]>;
@@ -1059,8 +1062,8 @@ export declare const AppDmEncuParaTests: {
1059
1062
  getProcedures(): Promise<import("backend-plus").ProcedureDef[]>;
1060
1063
  isAdmin(reqOrContext: import("backend-plus").Request | Context): boolean;
1061
1064
  canChangePass(): Promise<boolean>;
1062
- inDbClient<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbClient: (client: import("pg-promise-strict").Client) => Promise<T_1>): Promise<T_1>;
1063
- inTransaction<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbTransaction: (client: import("pg-promise-strict").Client) => Promise<T_1>): Promise<T_1>;
1065
+ inDbClient<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbClient: (client: pg.Client) => Promise<T_1>): Promise<T_1>;
1066
+ inTransaction<T_1>(req: import("backend-plus").RequestDb | null, doThisWithDbTransaction: (client: pg.Client) => Promise<T_1>): Promise<T_1>;
1064
1067
  inTransactionProcedureContext<T_1>(req: import("backend-plus").Request | null, coreFunction: (context: import("backend-plus").ProcedureContext) => Promise<T_1>): Promise<T_1>;
1065
1068
  procedureDefCompleter<T_1>(procedureDef: import("backend-plus").ProcedureDef): import("backend-plus").ProcedureDef<T_1>;
1066
1069
  tableDefAdapt(tableDef: import("backend-plus").TableDefinition, context: Context): import("backend-plus").TableDefinition;
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "node:fs", "node:path", "meta-enc", "procesamiento", "../server/app-dmencu"], factory);
7
+ define(["require", "exports", "node:fs", "node:path", "pg-promise-strict", "meta-enc", "procesamiento", "../server/app-dmencu"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -15,6 +15,7 @@
15
15
  exports.contextoDelRol = contextoDelRol;
16
16
  const fs = require("node:fs");
17
17
  const path = require("node:path");
18
+ const pg = require("pg-promise-strict");
18
19
  const meta_enc_1 = require("meta-enc");
19
20
  const procesamiento_1 = require("procesamiento");
20
21
  const app_dmencu_1 = require("../server/app-dmencu");
@@ -38,6 +39,11 @@
38
39
  allowedHosts: [],
39
40
  policy,
40
41
  };
42
+ // start() asigna el motor de base; las definiciones de tablas lo usan para citar identificadores
43
+ be.db = pg;
44
+ // igual que en server-dmencu.ts
45
+ procesamiento_1.OperativoGenerator.mainTD = 'viviendas';
46
+ procesamiento_1.OperativoGenerator.mainTDPK = 'vivienda';
41
47
  var permisos = permisosDeInstalacion();
42
48
  be.caches.permisosRol = permisos.permisosRol;
43
49
  be.caches.permisosRolSoloTrue = permisos.permisosRol;
@@ -92,4 +98,4 @@
92
98
  user, session: {}, username: user.usuario, machineId: 'test', navigator: 'test' });
93
99
  }
94
100
  });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXBhcmEtdGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9hcHAtcGFyYS10ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE4QkEsOENBc0JDO0lBNEJELHNEQWlCQztJQUdELHdDQVdDO0lBL0dELDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFFbEMsdUNBQThGO0lBQzlGLGlEQUFtSDtJQUVuSCxxREFBNkU7SUFHN0UsNkVBQTZFO0lBQzdFLGtEQUFrRDtJQUNyQyxRQUFBLGtCQUFrQixHQUFHLElBQUEsNEJBQWUsRUFDN0MsSUFBQSxzQ0FBc0IsRUFDbEIsSUFBQSxzQ0FBc0IsRUFDbEIsSUFBQSxpQ0FBaUIsRUFDYixJQUFBLDJCQUFnQixFQUNaLElBQUEsMEJBQWUsRUFDWCxJQUFBLCtCQUFlLEVBQ1gsSUFBQSw4QkFBbUIsRUFBQyxxQkFBVSxDQUFDLENBQ2xDLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUNKLENBQUM7SUFJRix3R0FBd0c7SUFDeEcsU0FBZ0IsaUJBQWlCLENBQUMsU0FBaUIsRUFBRTtRQUNqRCxJQUFJLEVBQUUsR0FBRyxJQUFJLDBCQUFrQixFQUFFLENBQUM7UUFDbEMsK0VBQStFO1FBQy9FLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ2YsVUFBVSxFQUFFLEVBQUU7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLGVBQWUsRUFBRSxRQUFRO1lBQ3pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixjQUFjLEVBQUUsRUFBRTtZQUNsQixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsWUFBWSxFQUFFLEVBQUU7WUFDaEIsTUFBTTtTQUNULENBQUM7UUFDRixJQUFJLFFBQVEsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZDLEVBQUUsQ0FBQyxN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LEdBQUcsQ0FBQyxTQUFTLElBQUksTUFBTTtnQkFDbEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQzlGLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87WUFDSCxXQUFXO1lBQ1gsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDaEQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDcEQsQ0FBQztJQUNOLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsU0FBZ0IsY0FBYyxDQUFDLEVBQWdCLEVBQUUsR0FBVyxFQUFFLFFBQWdCLE1BQU07UUFDaEYsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDakQsdUNBQ08sSUFBQSxpQ0FBb0IsRUFBQyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUN4QyxFQUFFO1lBQ0YsSUFBSSxFQUNKLE9BQU8sRUFBRSxFQUFFLEVBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQ3RCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLFNBQVMsRUFBRSxNQUFNLElBQ25CO0lBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgeyBBcHBCYWNrZW5kLCBlbWVyZ2VBcHBNZXRhRW5jLCBlbWVyZ2VBcHBPcGVyYXRpdm9zLCBlbWVyZ2VBcHBSZWxFbmMgfSBmcm9tICdtZXRhLWVuYyc7XG5pbXBvcnQgeyBlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzLCBlbWVyZ2VBcHBEYXRvc0V4dCwgZW1lcmdlQXBwUHJvY2VzYW1pZW50bywgZW1lcmdlQXBwVmFyQ2FsIH0gZnJvbSAncHJvY2VzYW1pZW50byc7XG5cbmltcG9ydCB7IGVtZXJnZUFwcERtRW5jdSwgcGVybWlzb3NTZWd1blVzdWFyaW8gfSBmcm9tICcuLi9zZXJ2ZXIvYXBwLWRtZW5jdSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQsIFBlcm1pc29zUm9sLCBQdWVkZSB9IGZyb20gJy4uL3NlcnZlci90eXBlcy1kbWVuY3UnO1xuXG4vLyBMYSBhcHAgY29tcHVlc3RhIGlndWFsIHF1ZSBlbiBzZXJ2ZXItZG1lbmN1LnRzLCBwZXJvIHNpbiBsbGFtYXIgYSBzdGFydCgpOlxuLy8gbm8gc2UgY29uZWN0YSBhIGxhIGJhc2UgbmkgbGV2YW50YSBlbCBzZXJ2aWRvci5cbmV4cG9ydCBjb25zdCBBcHBEbUVuY3VQYXJhVGVzdHMgPSBlbWVyZ2VBcHBEbUVuY3UoXG4gICAgZW1lcmdlQXBwUHJvY2VzYW1pZW50byhcbiAgICAgICAgZW1lcmdlQXBwQ29uc2lzdGVuY2lhcyhcbiAgICAgICAgICAgIGVtZXJnZUFwcERhdG9zRXh0KFxuICAgICAgICAgICAgICAgIGVtZXJnZUFwcE1ldGFFbmMoXG4gICAgICAgICAgICAgICAgICAgIGVtZXJnZUFwcFJlbEVuYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtZXJnZUFwcFZhckNhbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWVyZ2VBcHBPcGVyYXRpdm9zKEFwcEJhY2tlbmQpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICApXG4pO1xuXG5leHBvcnQgdHlwZSBBcHBQYXJhVGVzdHMgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIEFwcERtRW5jdVBhcmFUZXN0cz47XG5cbi8vIHBvbGljeSAnd2ViJyBlcyBlbCBtb2RvIFJFTEVWQU1JRU5UTyAoZGlzcG9zaXRpdm9zKSwgY3VhbHF1aWVyIG90cmEgZXMgR0FCSU5FVEUgKHZlciBnZXRNb2RvQnlQb2xpY3kpXG5leHBvcnQgZnVuY3Rpb24gY3JlYXJBcHBQYXJhVGVzdHMocG9saWN5OiBzdHJpbmcgPSAnJyk6IEFwcFBhcmFUZXN0cyB7XG4gICAgdmFyIGJlID0gbmV3IEFwcERtRW5jdVBhcmFUZXN0cygpO1xuICAgIC8vIGxhIGNvbmZpZ3VyYWNpw7NuIHNlIGNhcmdhIGVuIHN0YXJ0KCk7IHNlIGNvbXBsZXRhIHPDs2xvIGxhIHBhcnRlIGRlbCBzZXJ2aWRvclxuICAgIGJlLmNvbmZpZy5zZXJ2ZXIgPSB7XG4gICAgICAgICdiYXNlLXVybCc6ICcnLFxuICAgICAgICBwb3J0OiAzMDAwLFxuICAgICAgICAnc2Vzc2lvbi1zdG9yZSc6ICdtZW1vcnknLFxuICAgICAgICAnaXAtcmVwbGFjZXInOiAnJyxcbiAgICAgICAgJ3NpbGVudC1zdGFydHVwJzogdHJ1ZSxcbiAgICAgICAgJ2tpbGwtOSc6ICcnLFxuICAgICAgICBiaXRhY29yYVNjaGVtYTogJycsXG4gICAgICAgIGJpdGFjb3JhVGFibGVOYW1lOiAnJyxcbiAgICAgICAgdXNlQ29yczogZmFsc2UsXG4gICAgICAgIGFsbG93ZWRIb3N0czogW10sXG4gICAgICAgIHBvbGljeSxcbiAgICB9O1xuICAgIHZhciBwZXJtaXNvcyA9IHBlcm1pc29zRGVJbnN0YWxhY2lvbigpO1xuICAgIGJlLmNhY2hlcy5wZXJtaXNvc1JvbCA9IHBlcm1pc29zLnBlcm1pc29zUm9sO1xuICAgIGJlLmNhY2hlcy5wZXJtaXNvc1JvbFNvbG9UcnVlID0gcGVybWlzb3MucGVybWlzb3NSb2w7XG4gICAgYmUuY2FjaGVzLnBlcm1pc29zU3VwZXJ1c2VyID0gcGVybWlzb3MucGVybWlzb3NTdXBlcnVzZXI7XG4gICAgYmUuY2FjaGVzLnBlcm1pc29zUGFyYU5hZGllID0gcGVybWlzb3MucGVybWlzb3NQYXJhTmFkaWU7XG4gICAgcmV0dXJuIGJlO1xufVxuXG50eXBlIEZpbGFUYWIgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5mdW5jdGlvbiBsZWVyVGFiKG5vbWJyZUFyY2hpdm86IHN0cmluZyk6IEZpbGFUYWJbXSB7XG4gICAgLy8gbG9zIHRlc3RzIGNvcnJlbiBkZXNkZSBkaXN0L3Rlc3RcbiAgICB2YXIgY29udGVuaWRvID0gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi9pbnN0YWxsJywgbm9tYnJlQXJjaGl2byksICd1dGY4Jyk7XG4gICAgdmFyIFtlbmNhYmV6YWRvLCAuLi5saW5lYXNdID0gY29udGVuaWRvLnNwbGl0KC9cXHI/XFxuLykuZmlsdGVyKGxpbmVhID0+IGxpbmVhLnRyaW0oKSAhPSAnJyk7XG4gICAgdmFyIGNvbHVtbmFzID0gZW5jYWJlemFkby5zcGxpdCgnfCcpLm1hcChjb2x1bW5hID0+IGNvbHVtbmEudHJpbSgpKTtcbiAgICByZXR1cm4gbGluZWFzLm1hcChsaW5lYSA9PiB7XG4gICAgICAgIHZhciB2YWxvcmVzID0gbGluZWEuc3BsaXQoJ3wnKS5tYXAodmFsb3IgPT4gdmFsb3IudHJpbSgpKTtcbiAgICAgICAgdmFyIGZpbGE6IEZpbGFUYWIgPSB7fTtcbiAgICAgICAgY29sdW1uYXMuZm9yRWFjaCgoY29sdW1uYSwgaSkgPT4geyBmaWxhW2NvbHVtbmFdID0gdmFsb3Jlc1tpXTsgfSk7XG4gICAgICAgIHJldHVybiBmaWxhO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBwdWVkZURlKGZpbGFzOiBGaWxhVGFiW10sIGhhYmlsaXRhZG86IChmaWxhOiBGaWxhVGFiKSA9PiBib29sZWFuKTogUHVlZGUge1xuICAgIHZhciBwdWVkZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4+ID0ge307XG4gICAgZmlsYXMuZm9yRWFjaChmaWxhID0+IHtcbiAgICAgICAgcHVlZGVbZmlsYS5wZXJtaXNvXSA9IHB1ZWRlW2ZpbGEucGVybWlzb10gfHwge307XG4gICAgICAgIHB1ZWRlW2ZpbGEucGVybWlzb11bZmlsYS5hY2Npb25dID0gaGFiaWxpdGFkbyhmaWxhKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcHVlZGU7XG59XG5cbi8vIEFybWEgbG9zIHBlcm1pc29zIGNvbW8gbG8gaGFjZSBwb3N0Q29uZmlnIGVuIGFwcC1kbWVuY3UudHMgKHF1ZSBsb3MgbGVlIGRlIGxhIGJhc2UpLFxuLy8gYSBwYXJ0aXIgZGUgbG9zIC50YWIgY29uIHF1ZSBzZSBpbnN0YWxhIGxhIGJhc2VcbmV4cG9ydCBmdW5jdGlvbiBwZXJtaXNvc0RlSW5zdGFsYWNpb24oKTogeyBwZXJtaXNvc1JvbDogUGVybWlzb3NSb2wsIHBlcm1pc29zU3VwZXJ1c2VyOiBQdWVkZSwgcGVybWlzb3NQYXJhTmFkaWU6IFB1ZWRlIH0ge1xuICAgIHZhciByb2xlcyA9IGxlZXJUYWIoJ3JvbGVzLnRhYicpO1xuICAgIHZhciByb2xlc1Blcm1pc29zID0gbGVlclRhYigncm9sZXNfcGVybWlzb3MudGFiJyk7XG4gICAgdmFyIHBlcm1pc29zID0gbGVlclRhYigncGVybWlzb3MudGFiJyk7XG4gICAgdmFyIHBlcm1pc29zUm9sOiBQZXJtaXNvc1JvbCA9IHt9O1xuICAgIHJvbGVzLmZvckVhY2gocm9sID0+IHtcbiAgICAgICAgdmFyIGZpbGFzRGVsUm9sID0gcm9sZXNQZXJtaXNvcy5maWx0ZXIocnAgPT4gcnAucm9sID09IHJvbC5yb2wpO1xuICAgICAgICBwZXJtaXNvc1JvbFtyb2wucm9sXSA9IHtcbiAgICAgICAgICAgIHN1cGVydXNlcjogcm9sLnN1cGVydXNlciA9PSAndHJ1ZScsXG4gICAgICAgICAgICBwdWVkZTogZmlsYXNEZWxSb2wubGVuZ3RoID8gcHVlZGVEZShmaWxhc0RlbFJvbCwgcnAgPT4gcnAuaGFiaWxpdGFkbyA9PSAndHJ1ZScpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHBlcm1pc29zUm9sLFxuICAgICAgICBwZXJtaXNvc1N1cGVydXNlcjogcHVlZGVEZShwZXJtaXNvcywgKCkgPT4gdHJ1ZSksXG4gICAgICAgIHBlcm1pc29zUGFyYU5hZGllOiBwdWVkZURlKHBlcm1pc29zLCAoKSA9PiBmYWxzZSksXG4gICAgfTtcbn1cblxuLy8gY29udGV4dG8gY29tbyBlbCBxdWUgYXJtYSBnZXRDb250ZXh0IHBhcmEgdW4gdXN1YXJpbyBjb24gZXNlIHJvbFxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRleHRvRGVsUm9sKGJlOiBBcHBQYXJhVGVzdHMsIHJvbDogc3RyaW5nLCBpZHBlcjogc3RyaW5nID0gJ1BFUjEnKTogQ29udGV4dCB7XG4gICAgdmFyIHVzZXIgPSB7IHJvbCwgaWRwZXIsIHVzdWFyaW86ICd1c3VfJyArIHJvbCB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLnBlcm1pc29zU2VndW5Vc3VhcmlvKGJlLmNhY2hlcywgdXNlciksXG4gICAgICAgIGJlLFxuICAgICAgICB1c2VyLFxuICAgICAgICBzZXNzaW9uOiB7fSxcbiAgICAgICAgdXNlcm5hbWU6IHVzZXIudXN1YXJpbyxcbiAgICAgICAgbWFjaGluZUlkOiAndGVzdCcsXG4gICAgICAgIG5hdmlnYXRvcjogJ3Rlc3QnLFxuICAgIH07XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXBhcmEtdGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9hcHAtcGFyYS10ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUErQkEsOENBMkJDO0lBNEJELHNEQWlCQztJQUdELHdDQVdDO0lBckhELDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFFbEMsd0NBQXdDO0lBQ3hDLHVDQUE4RjtJQUM5RixpREFBdUk7SUFFdkkscURBQTZFO0lBRzdFLDZFQUE2RTtJQUM3RSxrREFBa0Q7SUFDckMsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLDRCQUFlLEVBQzdDLElBQUEsc0NBQXNCLEVBQ2xCLElBQUEsc0NBQXNCLEVBQ2xCLElBQUEsaUNBQWlCLEVBQ2IsSUFBQSwyQkFBZ0IsRUFDWixJQUFBLDBCQUFlLEVBQ1gsSUFBQSwrQkFBZSxFQUNYLElBQUEsOEJBQW1CLEVBQUMscUJBQVUsQ0FBQyxDQUNsQyxDQUNKLENBQ0osQ0FDSixDQUNKLENBQ0osQ0FDSixDQUFDO0lBSUYsd0dBQXdHO0lBQ3hHLFNBQWdCLGlCQUFpQixDQUFDLFNBQWlCLEVBQUU7UUFDakQsSUFBSSxFQUFFLEdBQUcsSUFBSSwwQkFBa0IsRUFBRSxDQUFDO1FBQ2xDLCtFQUErRTtRQUMvRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNmLFVBQVUsRUFBRSxFQUFFO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixlQUFlLEVBQUUsUUFBUTtZQUN6QixhQUFhLEVBQUUsRUFBRTtZQUNqQixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osY0FBYyxFQUFFLEVBQUU7WUFDbEIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSxFQUFFO1lBQ2hCLE1BQU07U0FDVCxDQUFDO1FBQ0YsaUdBQWlHO1FBQ2pHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFB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b3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgKiBhcyBwZyBmcm9tICdwZy1wcm9taXNlLXN0cmljdCc7XG5pbXBvcnQgeyBBcHBCYWNrZW5kLCBlbWVyZ2VBcHBNZXRhRW5jLCBlbWVyZ2VBcHBPcGVyYXRpdm9zLCBlbWVyZ2VBcHBSZWxFbmMgfSBmcm9tICdtZXRhLWVuYyc7XG5pbXBvcnQgeyBlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzLCBlbWVyZ2VBcHBEYXRvc0V4dCwgZW1lcmdlQXBwUHJvY2VzYW1pZW50bywgZW1lcmdlQXBwVmFyQ2FsLCBPcGVyYXRpdm9HZW5lcmF0b3IgfSBmcm9tICdwcm9jZXNhbWllbnRvJztcblxuaW1wb3J0IHsgZW1lcmdlQXBwRG1FbmN1LCBwZXJtaXNvc1NlZ3VuVXN1YXJpbyB9IGZyb20gJy4uL3NlcnZlci9hcHAtZG1lbmN1JztcbmltcG9ydCB0eXBlIHsgQ29udGV4dCwgUGVybWlzb3NSb2wsIFB1ZWRlIH0gZnJvbSAnLi4vc2VydmVyL3R5cGVzLWRtZW5jdSc7XG5cbi8vIExhIGFwcCBjb21wdWVzdGEgaWd1YWwgcXVlIGVuIHNlcnZlci1kbWVuY3UudHMsIHBlcm8gc2luIGxsYW1hciBhIHN0YXJ0KCk6XG4vLyBubyBzZSBjb25lY3RhIGEgbGEgYmFzZSBuaSBsZXZhbnRhIGVsIHNlcnZpZG9yLlxuZXhwb3J0IGNvbnN0IEFwcERtRW5jdVBhcmFUZXN0cyA9IGVtZXJnZUFwcERtRW5jdShcbiAgICBlbWVyZ2VBcHBQcm9jZXNhbWllbnRvKFxuICAgICAgICBlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzKFxuICAgICAgICAgICAgZW1lcmdlQXBwRGF0b3NFeHQoXG4gICAgICAgICAgICAgICAgZW1lcmdlQXBwTWV0YUVuYyhcbiAgICAgICAgICAgICAgICAgICAgZW1lcmdlQXBwUmVsRW5jKFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1lcmdlQXBwVmFyQ2FsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtZXJnZUFwcE9wZXJhdGl2b3MoQXBwQmFja2VuZClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgIClcbik7XG5cbmV4cG9ydCB0eXBlIEFwcFBhcmFUZXN0cyA9IEluc3RhbmNlVHlwZTx0eXBlb2YgQXBwRG1FbmN1UGFyYVRlc3RzPjtcblxuLy8gcG9saWN5ICd3ZWInIGVzIGVsIG1vZG8gUkVMRVZBTUlFTlRPIChkaXNwb3NpdGl2b3MpLCBjdWFscXVpZXIgb3RyYSBlcyBHQUJJTkVURSAodmVyIGdldE1vZG9CeVBvbGljeSlcbmV4cG9ydCBmdW5jdGlvbiBjcmVhckFwcFBhcmFUZXN0cyhwb2xpY3k6IHN0cmluZyA9ICcnKTogQXBwUGFyYVRlc3RzIHtcbiAgICB2YXIgYmUgPSBuZXcgQXBwRG1FbmN1UGFyYVRlc3RzKCk7XG4gICAgLy8gbGEgY29uZmlndXJhY2nDs24gc2UgY2FyZ2EgZW4gc3RhcnQoKTsgc2UgY29tcGxldGEgc8OzbG8gbGEgcGFydGUgZGVsIHNlcnZpZG9yXG4gICAgYmUuY29uZmlnLnNlcnZlciA9IHtcbiAgICAgICAgJ2Jhc2UtdXJsJzogJycsXG4gICAgICAgIHBvcnQ6IDMwMDAsXG4gICAgICAgICdzZXNzaW9uLXN0b3JlJzogJ21lbW9yeScsXG4gICAgICAgICdpcC1yZXBsYWNlcic6ICcnLFxuICAgICAgICAnc2lsZW50LXN0YXJ0dXAnOiB0cnVlLFxuICAgICAgICAna2lsbC05JzogJycsXG4gICAgICAgIGJpdGFjb3JhU2NoZW1hOiAnJyxcbiAgICAgICAgYml0YWNvcmFUYWJsZU5hbWU6ICcnLFxuICAgICAgICB1c2VDb3JzOiBmYWxzZSxcbiAgICAgICAgYWxsb3dlZEhvc3RzOiBbXSxcbiAgICAgICAgcG9saWN5LFxuICAgIH07XG4gICAgLy8gc3RhcnQoKSBhc2lnbmEgZWwgbW90b3IgZGUgYmFzZTsgbGFzIGRlZmluaWNpb25lcyBkZSB0YWJsYXMgbG8gdXNhbiBwYXJhIGNpdGFyIGlkZW50aWZpY2Fkb3Jlc1xuICAgIGJlLmRiID0gcGc7XG4gICAgLy8gaWd1YWwgcXVlIGVuIHNlcnZlci1kbWVuY3UudHNcbiAgICBPcGVyYXRpdm9HZW5lcmF0b3IubWFpblREID0gJ3ZpdmllbmRhcyc7XG4gICAgT3BlcmF0aXZvR2VuZXJhdG9yLm1haW5URFBLID0gJ3ZpdmllbmRhJztcbiAgICB2YXIgcGVybWlzb3MgPSBwZXJtaXNvc0RlSW5zdGFsYWNpb24oKTtcbiAgICBiZS5jYWNoZXMucGVybWlzb3NSb2wgPSBwZXJtaXNvcy5wZXJtaXNvc1JvbDtcbiAgICBiZS5jYWNoZXMucGVybWlzb3NSb2xTb2xvVHJ1ZSA9IHBlcm1pc29zLnBlcm1pc29zUm9sO1xuICAgIGJlLmNhY2hlcy5wZXJtaXNvc1N1cGVydXNlciA9IHBlcm1pc29zLnBlcm1pc29zU3VwZXJ1c2VyO1xuICAgIGJlLmNhY2hlcy5wZXJtaXNvc1BhcmFOYWRpZSA9IHBlcm1pc29zLnBlcm1pc29zUGFyYU5hZGllO1xuICAgIHJldHVybiBiZTtcbn1cblxudHlwZSBGaWxhVGFiID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZnVuY3Rpb24gbGVlclRhYihub21icmVBcmNoaXZvOiBzdHJpbmcpOiBGaWxhVGFiW10ge1xuICAgIC8vIGxvcyB0ZXN0cyBjb3JyZW4gZGVzZGUgZGlzdC90ZXN0XG4gICAgdmFyIGNvbnRlbmlkbyA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vaW5zdGFsbCcsIG5vbWJyZUFyY2hpdm8pLCAndXRmOCcpO1xuICAgIHZhciBbZW5jYWJlemFkbywgLi4ubGluZWFzXSA9IGNvbnRlbmlkby5zcGxpdCgvXFxyP1xcbi8pLmZpbHRlcihsaW5lYSA9PiBsaW5lYS50cmltKCkgIT0gJycpO1xuICAgIHZhciBjb2x1bW5hcyA9IGVuY2FiZXphZG8uc3BsaXQoJ3wnKS5tYXAoY29sdW1uYSA9PiBjb2x1bW5hLnRyaW0oKSk7XG4gICAgcmV0dXJuIGxpbmVhcy5tYXAobGluZWEgPT4ge1xuICAgICAgICB2YXIgdmFsb3JlcyA9IGxpbmVhLnNwbGl0KCd8JykubWFwKHZhbG9yID0+IHZhbG9yLnRyaW0oKSk7XG4gICAgICAgIHZhciBmaWxhOiBGaWxhVGFiID0ge307XG4gICAgICAgIGNvbHVtbmFzLmZvckVhY2goKGNvbHVtbmEsIGkpID0+IHsgZmlsYVtjb2x1bW5hXSA9IHZhbG9yZXNbaV07IH0pO1xuICAgICAgICByZXR1cm4gZmlsYTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gcHVlZGVEZShmaWxhczogRmlsYVRhYltdLCBoYWJpbGl0YWRvOiAoZmlsYTogRmlsYVRhYikgPT4gYm9vbGVhbik6IFB1ZWRlIHtcbiAgICB2YXIgcHVlZGU6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiA9IHt9O1xuICAgIGZpbGFzLmZvckVhY2goZmlsYSA9PiB7XG4gICAgICAgIHB1ZWRlW2ZpbGEucGVybWlzb10gPSBwdWVkZVtmaWxhLnBlcm1pc29dIHx8IHt9O1xuICAgICAgICBwdWVkZVtmaWxhLnBlcm1pc29dW2ZpbGEuYWNjaW9uXSA9IGhhYmlsaXRhZG8oZmlsYSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHB1ZWRlO1xufVxuXG4vLyBBcm1hIGxvcyBwZXJtaXNvcyBjb21vIGxvIGhhY2UgcG9zdENvbmZpZyBlbiBhcHAtZG1lbmN1LnRzIChxdWUgbG9zIGxlZSBkZSBsYSBiYXNlKSxcbi8vIGEgcGFydGlyIGRlIGxvcyAudGFiIGNvbiBxdWUgc2UgaW5zdGFsYSBsYSBiYXNlXG5leHBvcnQgZnVuY3Rpb24gcGVybWlzb3NEZUluc3RhbGFjaW9uKCk6IHsgcGVybWlzb3NSb2w6IFBlcm1pc29zUm9sLCBwZXJtaXNvc1N1cGVydXNlcjogUHVlZGUsIHBlcm1pc29zUGFyYU5hZGllOiBQdWVkZSB9IHtcbiAgICB2YXIgcm9sZXMgPSBsZWVyVGFiKCdyb2xlcy50YWInKTtcbiAgICB2YXIgcm9sZXNQZXJtaXNvcyA9IGxlZXJUYWIoJ3JvbGVzX3Blcm1pc29zLnRhYicpO1xuICAgIHZhciBwZXJtaXNvcyA9IGxlZXJUYWIoJ3Blcm1pc29zLnRhYicpO1xuICAgIHZhciBwZXJtaXNvc1JvbDogUGVybWlzb3NSb2wgPSB7fTtcbiAgICByb2xlcy5mb3JFYWNoKHJvbCA9PiB7XG4gICAgICAgIHZhciBmaWxhc0RlbFJvbCA9IHJvbGVzUGVybWlzb3MuZmlsdGVyKHJwID0+IHJwLnJvbCA9PSByb2wucm9sKTtcbiAgICAgICAgcGVybWlzb3NSb2xbcm9sLnJvbF0gPSB7XG4gICAgICAgICAgICBzdXBlcnVzZXI6IHJvbC5zdXBlcnVzZXIgPT0gJ3RydWUnLFxuICAgICAgICAgICAgcHVlZGU6IGZpbGFzRGVsUm9sLmxlbmd0aCA/IHB1ZWRlRGUoZmlsYXNEZWxSb2wsIHJwID0+IHJwLmhhYmlsaXRhZG8gPT0gJ3RydWUnKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBwZXJtaXNvc1JvbCxcbiAgICAgICAgcGVybWlzb3NTdXBlcnVzZXI6IHB1ZWRlRGUocGVybWlzb3MsICgpID0+IHRydWUpLFxuICAgICAgICBwZXJtaXNvc1BhcmFOYWRpZTogcHVlZGVEZShwZXJtaXNvcywgKCkgPT4gZmFsc2UpLFxuICAgIH07XG59XG5cbi8vIGNvbnRleHRvIGNvbW8gZWwgcXVlIGFybWEgZ2V0Q29udGV4dCBwYXJhIHVuIHVzdWFyaW8gY29uIGVzZSByb2xcbmV4cG9ydCBmdW5jdGlvbiBjb250ZXh0b0RlbFJvbChiZTogQXBwUGFyYVRlc3RzLCByb2w6IHN0cmluZywgaWRwZXI6IHN0cmluZyA9ICdQRVIxJyk6IENvbnRleHQge1xuICAgIHZhciB1c2VyID0geyByb2wsIGlkcGVyLCB1c3VhcmlvOiAndXN1XycgKyByb2wgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5wZXJtaXNvc1NlZ3VuVXN1YXJpbyhiZS5jYWNoZXMsIHVzZXIpLFxuICAgICAgICBiZSxcbiAgICAgICAgdXNlcixcbiAgICAgICAgc2Vzc2lvbjoge30sXG4gICAgICAgIHVzZXJuYW1lOiB1c2VyLnVzdWFyaW8sXG4gICAgICAgIG1hY2hpbmVJZDogJ3Rlc3QnLFxuICAgICAgICBuYXZpZ2F0b3I6ICd0ZXN0JyxcbiAgICB9O1xufVxuIl19
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,183 @@
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", "mocha", "node:assert", "node:fs", "node:os", "node:path", "../server/app-dmencu", "../server/ayuda", "./app-para-tests"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("mocha");
13
+ const assert = require("node:assert");
14
+ const fs = require("node:fs");
15
+ const os = require("node:os");
16
+ const path = require("node:path");
17
+ const app_dmencu_1 = require("../server/app-dmencu");
18
+ const ayuda_1 = require("../server/ayuda");
19
+ const app_para_tests_1 = require("./app-para-tests");
20
+ const GABINETE = '';
21
+ const RELEVAMIENTO = 'web';
22
+ function appConAyuda(policy) {
23
+ var be = (0, app_para_tests_1.crearAppParaTests)(policy);
24
+ be.caches.ayuda = (0, ayuda_1.cargarAyuda)(be.getAyudaFuentes());
25
+ return be;
26
+ }
27
+ function idsVisibles(be, rol) {
28
+ return (0, ayuda_1.temasVisibles)(be.caches.ayuda, (0, app_dmencu_1.quienConsultaAyuda)((0, app_para_tests_1.contextoDelRol)(be, rol))).map(tema => tema.id);
29
+ }
30
+ function tema(contenido, origen = 'test') {
31
+ return (0, ayuda_1.parsearTemaDeAyuda)(contenido, 'tema.md', origen);
32
+ }
33
+ (0, mocha_1.describe)('dmencu - ayuda en línea', () => {
34
+ (0, mocha_1.describe)('formato de los archivos', () => {
35
+ (0, mocha_1.it)('lee el encabezado y convierte el markdown a html', () => {
36
+ var leido = tema('---\nid: uno\ntitulo: Uno\npermisos: [campo.editar]\nmenu: asignacion\n---\nTexto **fuerte** y [otro](ayuda:dos)\n');
37
+ assert.strictEqual(leido.id, 'uno');
38
+ assert.strictEqual(leido.titulo, 'Uno');
39
+ assert.deepStrictEqual(leido.permisos, ['campo.editar']);
40
+ assert.deepStrictEqual(leido.menu, ['asignacion']);
41
+ assert.deepStrictEqual(leido.roles, []);
42
+ assert.strictEqual(leido.modo, null);
43
+ assert.strictEqual(leido.html, '<p>Texto <strong>fuerte</strong> y <a href="ayuda:dos">otro</a></p>\n');
44
+ });
45
+ (0, mocha_1.it)('no deja pasar html crudo', () => {
46
+ assert.ok(!tema('---\nid: uno\ntitulo: Uno\n---\n<script>alert(1)</script>\n').html.includes('<script>'));
47
+ });
48
+ (0, mocha_1.it)('acepta archivos con BOM y fin de línea de Windows', () => {
49
+ assert.strictEqual(tema('---\r\nid: uno\r\ntitulo: Uno\r\n---\r\nhola\r\n').html, '<p>hola</p>\n');
50
+ });
51
+ (0, mocha_1.it)('rechaza un archivo sin encabezado', () => {
52
+ assert.throws(() => tema('# Hola\n'), /falta el encabezado/);
53
+ });
54
+ (0, mocha_1.it)('rechaza campos desconocidos (para detectar errores de tipeo)', () => {
55
+ assert.throws(() => tema('---\nid: uno\ntitulo: Uno\npermiso: campo.editar\n---\n'), /campo desconocido "permiso"/);
56
+ });
57
+ (0, mocha_1.it)('rechaza un modo que no existe', () => {
58
+ assert.throws(() => tema('---\nid: uno\ntitulo: Uno\nmodo: OFICINA\n---\n'), /modo debe ser/);
59
+ });
60
+ (0, mocha_1.it)('rechaza permisos sin acción', () => {
61
+ assert.throws(() => tema('---\nid: uno\ntitulo: Uno\npermisos: [campo]\n---\n'), /permiso.accion/);
62
+ });
63
+ (0, mocha_1.it)('exige título salvo para ocultar', () => {
64
+ assert.throws(() => tema('---\nid: uno\n---\n'), /titulo/);
65
+ assert.strictEqual(tema('---\nid: uno\nocultar: true\n---\n').ocultar, true);
66
+ });
67
+ });
68
+ (0, mocha_1.describe)('fuentes: cómo las apps finales agregan, reemplazan y ocultan temas', () => {
69
+ var dmencu = [
70
+ tema('---\nid: a\ntitulo: A de dmencu\norden: 1\n---\n', 'dmencu'),
71
+ tema('---\nid: b\ntitulo: B\norden: 2\n---\n', 'dmencu'),
72
+ tema('---\nid: c\ntitulo: C\norden: 3\n---\n', 'dmencu'),
73
+ ];
74
+ var app = [
75
+ tema('---\nid: a\ntitulo: A de la app\norden: 1\n---\n', 'app'),
76
+ tema('---\nid: b\nocultar: true\n---\n', 'app'),
77
+ tema('---\nid: d\ntitulo: D\norden: 0\n---\n', 'app'),
78
+ ];
79
+ (0, mocha_1.it)('un id repetido reemplaza al anterior, ocultar lo quita y los nuevos se agregan según orden', () => {
80
+ var combinados = (0, ayuda_1.combinarTemasDeAyuda)([dmencu, app]);
81
+ assert.deepStrictEqual(combinados.map(t => [t.id, t.origen]), [['d', 'app'], ['a', 'app'], ['c', 'dmencu']]);
82
+ });
83
+ (0, mocha_1.it)('rechaza ids repetidos dentro de una misma carpeta', () => {
84
+ var carpeta = fs.mkdtempSync(path.join(os.tmpdir(), 'ayuda-'));
85
+ try {
86
+ fs.writeFileSync(path.join(carpeta, '1.md'), '---\nid: a\ntitulo: A\n---\n');
87
+ fs.writeFileSync(path.join(carpeta, '2.md'), '---\nid: a\ntitulo: Otra A\n---\n');
88
+ assert.throws(() => (0, ayuda_1.leerFuenteDeAyuda)({ origen: 'test', carpeta }), /ya está en/);
89
+ }
90
+ finally {
91
+ fs.rmSync(carpeta, { recursive: true });
92
+ }
93
+ });
94
+ (0, mocha_1.it)('avisa si la carpeta no existe', () => {
95
+ assert.throws(() => (0, ayuda_1.leerFuenteDeAyuda)({ origen: 'test', carpeta: path.join(os.tmpdir(), 'no-existe-ayuda') }), /no existe la carpeta/);
96
+ });
97
+ (0, mocha_1.it)('la carpeta de dmencu se encuentra desde el js compilado', () => {
98
+ assert.ok(fs.existsSync(path.join((0, ayuda_1.carpetaDelPaquete)(__dirname), 'ayuda')));
99
+ });
100
+ });
101
+ (0, mocha_1.describe)('los temas de dmencu', () => {
102
+ (0, mocha_1.it)('no tienen problemas en GABINETE (permisos, roles y opciones de menú existen)', () => {
103
+ assert.deepStrictEqual(appConAyuda(GABINETE).problemasDeAyuda(), []);
104
+ });
105
+ (0, mocha_1.it)('no tienen problemas en RELEVAMIENTO', () => {
106
+ assert.deepStrictEqual(appConAyuda(RELEVAMIENTO).problemasDeAyuda(), []);
107
+ });
108
+ (0, mocha_1.it)('cada opción del menú de admin en GABINETE tiene un tema que la explica, directa o a través de su menú padre', () => {
109
+ var be = appConAyuda(GABINETE);
110
+ var context = (0, app_para_tests_1.contextoDelRol)(be, 'admin');
111
+ var opciones = (0, ayuda_1.menuConAyuda)(be.getMenu(context).menu, be.caches.ayuda);
112
+ var sinAyuda = opciones.filter(opcion => opcion.tema == null && opcion.ruta != 'configurar' && opcion.ruta != 'carto').map(opcion => opcion.ruta);
113
+ assert.deepStrictEqual(sinAyuda, []);
114
+ });
115
+ });
116
+ (0, mocha_1.describe)('qué ve cada perfil', () => {
117
+ (0, mocha_1.it)('en RELEVAMIENTO quien releva ve la ayuda del dispositivo', () => {
118
+ var be = appConAyuda(RELEVAMIENTO);
119
+ assert.deepStrictEqual(idsVisibles(be, 'encuestador'), ['dm-relevamiento', 'dm-sincronizar', 'dm-cambiar-modo']);
120
+ assert.deepStrictEqual(idsVisibles(be, 'supervisor'), ['dm-relevamiento', 'dm-sincronizar', 'dm-cambiar-modo']);
121
+ });
122
+ (0, mocha_1.it)('en RELEVAMIENTO quien no releva no ve ayuda ni la opción del menú', () => {
123
+ var be = appConAyuda(RELEVAMIENTO);
124
+ assert.deepStrictEqual(idsVisibles(be, 'coor_campo'), []);
125
+ assert.deepStrictEqual(be.getMenu((0, app_para_tests_1.contextoDelRol)(be, 'coor_campo')).menu, []);
126
+ });
127
+ (0, mocha_1.it)('en GABINETE el encuestador no ve la ayuda del dispositivo', () => {
128
+ var be = appConAyuda(GABINETE);
129
+ assert.deepStrictEqual(idsVisibles(be, 'encuestador'), []);
130
+ assert.deepStrictEqual(be.getMenu((0, app_para_tests_1.contextoDelRol)(be, 'encuestador')).menu, []);
131
+ });
132
+ (0, mocha_1.it)('en GABINETE el ingresador ve lo de campo pero no lo de administración ni procesamiento', () => {
133
+ var ids = idsVisibles(appConAyuda(GABINETE), 'ingresador');
134
+ assert.deepStrictEqual(ids, ['circuito-encuesta', 'asignacion', 'recepcion', 'supervision', 'varios']);
135
+ });
136
+ (0, mocha_1.it)('diseño conceptual ve la ayuda de metadatos', () => {
137
+ var ids = idsVisibles(appConAyuda(GABINETE), 'dis_conceptual');
138
+ assert.deepStrictEqual(ids, ['circuito-encuesta', 'metadatos']);
139
+ });
140
+ (0, mocha_1.it)('admin (superuser) ve todos los temas del modo', () => {
141
+ var be = appConAyuda(GABINETE);
142
+ var deGabinete = be.caches.ayuda.filter(t => t.modo != 'RELEVAMIENTO').map(t => t.id);
143
+ assert.deepStrictEqual(idsVisibles(be, 'admin'), deGabinete);
144
+ });
145
+ (0, mocha_1.it)('un tema por rol se muestra a ese rol aunque no tenga el permiso', () => {
146
+ var porRol = tema('---\nid: x\ntitulo: X\nroles: [auxiliar]\n---\n');
147
+ var be = (0, app_para_tests_1.crearAppParaTests)(GABINETE);
148
+ assert.deepStrictEqual((0, ayuda_1.temasVisibles)([porRol], (0, app_dmencu_1.quienConsultaAyuda)((0, app_para_tests_1.contextoDelRol)(be, 'auxiliar'))).map(t => t.id), ['x']);
149
+ assert.deepStrictEqual((0, ayuda_1.temasVisibles)([porRol], (0, app_dmencu_1.quienConsultaAyuda)((0, app_para_tests_1.contextoDelRol)(be, 'ingresador'))), []);
150
+ });
151
+ (0, mocha_1.it)('la opción ayuda va al final del menú de quien tiene temas', () => {
152
+ var be = appConAyuda(RELEVAMIENTO);
153
+ var menu = be.getMenu((0, app_para_tests_1.contextoDelRol)(be, 'encuestador')).menu;
154
+ assert.deepStrictEqual(menu.map(opcion => opcion.name), ['relevamiento', 'sincronizar', 'cambiar_modo', 'ayuda']);
155
+ });
156
+ });
157
+ (0, mocha_1.describe)('menú con ayuda (lo que muestra "Qué puedo hacer")', () => {
158
+ (0, mocha_1.it)('liga cada opción del menú del usuario con su tema y no incluye la opción ayuda', () => {
159
+ var be = appConAyuda(RELEVAMIENTO);
160
+ var context = (0, app_para_tests_1.contextoDelRol)(be, 'encuestador');
161
+ var temas = (0, ayuda_1.temasVisibles)(be.caches.ayuda, (0, app_dmencu_1.quienConsultaAyuda)(context));
162
+ assert.deepStrictEqual((0, ayuda_1.menuConAyuda)(be.getMenu(context).menu, temas), [
163
+ { ruta: 'relevamiento', label: 'relevamiento', tema: 'dm-relevamiento', opciones: [] },
164
+ { ruta: 'sincronizar', label: 'sincronizar', tema: 'dm-sincronizar', opciones: [] },
165
+ { ruta: 'cambiar_modo', label: 'cambiar modo', tema: 'dm-cambiar-modo', opciones: [] },
166
+ ]);
167
+ });
168
+ (0, mocha_1.it)('recorre los submenús con rutas separadas por /', () => {
169
+ var be = appConAyuda(GABINETE);
170
+ var context = (0, app_para_tests_1.contextoDelRol)(be, 'ingresador');
171
+ var temas = (0, ayuda_1.temasVisibles)(be.caches.ayuda, (0, app_dmencu_1.quienConsultaAyuda)(context));
172
+ var asignacion = (0, ayuda_1.menuConAyuda)(be.getMenu(context).menu, temas).find(opcion => opcion.ruta == 'asignacion');
173
+ assert.ok(asignacion);
174
+ assert.deepStrictEqual(asignacion.opciones.map(opcion => [opcion.ruta, opcion.tema]), [
175
+ ['asignacion/encuestador', 'asignacion'],
176
+ ['asignacion/ingresador', 'asignacion'],
177
+ ['asignacion/recuperador', 'asignacion'],
178
+ ]);
179
+ });
180
+ });
181
+ });
182
+ });
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1heXVkYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3QtYXl1ZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBQSxpQ0FBcUM7SUFFckMsc0NBQXVDO0lBQ3ZDLDhCQUE4QjtJQUM5Qiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBRWxDLHFEQUEwRDtJQUMxRCwyQ0FFeUI7SUFFekIscURBQW1GO0lBRW5GLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUM7SUFFM0IsU0FBUyxXQUFXLENBQUMsTUFBYztRQUMvQixJQUFJLEVBQUUsR0FBRyxJQUFBLGtDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUEsbUJBQVcsRUFBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTLFdBQVcsQ0FBQyxFQUFnQixFQUFFLEdBQVc7UUFDOUMsT0FBTyxJQUFBLHFCQUFhLEVBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBQSwrQkFBa0IsRUFBQyxJQUFBLCtCQUFjLEVBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELFNBQVMsSUFBSSxDQUFDLFNBQWlCLEVBQUUsU0FBaUIsTUFBTTtRQUNwRCxPQUFPLElBQUEsMEJBQWtCLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBQSxnQkFBUSxFQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtRQUVyQyxJQUFBLGdCQUFRLEVBQUMseUJBQXlC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QUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxDQUFDO2dCQUMzRyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN0QixNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUNsRixDQUFDLHdCQUF3QixFQUFFLFlBQVksQ0FBQztvQkFDeEMsQ0FBQyx1QkFBdUIsRUFBRSxZQUFZLENBQUM7b0JBQ3ZDLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDO2lCQUMzQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgaXQgfSBmcm9tICdtb2NoYSc7XG5cbmltcG9ydCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdub2RlOm9zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHsgcXVpZW5Db25zdWx0YUF5dWRhIH0gZnJvbSAnLi4vc2VydmVyL2FwcC1kbWVuY3UnO1xuaW1wb3J0IHtcbiAgICBjYXJnYXJBeXVkYSwgY2FycGV0YURlbFBhcXVldGUsIGNvbWJpbmFyVGVtYXNEZUF5dWRhLCBsZWVyRnVlbnRlRGVBeXVkYSwgbWVudUNvbkF5dWRhLCBwYXJzZWFyVGVtYURlQXl1ZGEsIHRlbWFzVmlzaWJsZXNcbn0gZnJvbSAnLi4vc2VydmVyL2F5dWRhJztcbmltcG9ydCB0eXBlIHsgQXl1ZGFUZW1hLCBNZW51SW5mb0Jhc2UgfSBmcm9tICcuLi9zZXJ2ZXIvdHlwZXMtZG1lbmN1JztcbmltcG9ydCB7IEFwcFBhcmFUZXN0cywgY29udGV4dG9EZWxSb2wsIGNyZWFyQXBwUGFyYVRlc3RzIH0gZnJvbSAnLi9hcHAtcGFyYS10ZXN0cyc7XG5cbmNvbnN0IEdBQklORVRFID0gJyc7XG5jb25zdCBSRUxFVkFNSUVOVE8gPSAnd2ViJztcblxuZnVuY3Rpb24gYXBwQ29uQXl1ZGEocG9saWN5OiBzdHJpbmcpOiBBcHBQYXJhVGVzdHMge1xuICAgIHZhciBiZSA9IGNyZWFyQXBwUGFyYVRlc3RzKHBvbGljeSk7XG4gICAgYmUuY2FjaGVzLmF5dWRhID0gY2FyZ2FyQXl1ZGEoYmUuZ2V0QXl1ZGFGdWVudGVzKCkpO1xuICAgIHJldHVybiBiZTtcbn1cblxuZnVuY3Rpb24gaWRzVmlzaWJsZXMoYmU6IEFwcFBhcmFUZXN0cywgcm9sOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRlbWFzVmlzaWJsZXMoYmUuY2FjaGVzLmF5dWRhLCBxdWllbkNvbnN1bHRhQXl1ZGEoY29udGV4dG9EZWxSb2woYmUsIHJvbCkpKS5tYXAodGVtYSA9PiB0ZW1hLmlkKTtcbn1cblxuZnVuY3Rpb24gdGVtYShjb250ZW5pZG86IHN0cmluZywgb3JpZ2VuOiBzdHJpbmcgPSAndGVzdCcpOiBBeXVkYVRlbWEge1xuICAgIHJldHVybiBwYXJzZWFyVGVtYURlQXl1ZGEoY29udGVuaWRvLCAndGVtYS5tZCcsIG9yaWdlbik7XG59XG5cbmRlc2NyaWJlKCdkbWVuY3UgLSBheXVkYSBlbiBsw61uZWEnLCAoKSA9PiB7XG5cbiAgICBkZXNjcmliZSgnZm9ybWF0byBkZSBsb3MgYXJjaGl2b3MnLCAoKSA9PiB7XG4gICAgICAgIGl0KCdsZWUgZWwgZW5jYWJlemFkbyB5IGNvbnZpZXJ0ZSBlbCBtYXJrZG93biBhIGh0bWwnLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgbGVpZG8gPSB0ZW1hKCctLS1cXG5pZDogdW5vXFxudGl0dWxvOiBVbm9cXG5wZXJtaXNvczogW2NhbXBvLmVkaXRhcl1cXG5tZW51OiBhc2lnbmFjaW9uXFxuLS0tXFxuVGV4dG8gKipmdWVydGUqKiB5IFtvdHJvXShheXVkYTpkb3MpXFxuJyk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGVpZG8uaWQsICd1bm8nKTtcbiAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChsZWlkby50aXR1bG8sICdVbm8nKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobGVpZG8ucGVybWlzb3MsIFsnY2FtcG8uZWRpdGFyJ10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChsZWlkby5tZW51LCBbJ2FzaWduYWNpb24nXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGxlaWRvLnJvbGVzLCBbXSk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGVpZG8ubW9kbywgbnVsbCk7XG4gICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGVpZG8uaHRtbCwgJzxwPlRleHRvIDxzdHJvbmc+ZnVlcnRlPC9zdHJvbmc+IHkgPGEgaHJlZj1cImF5dWRhOmRvc1wiPm90cm88L2E+PC9wPlxcbicpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ25vIGRlamEgcGFzYXIgaHRtbCBjcnVkbycsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC5vayghdGVtYSgnLS0tXFxuaWQ6IHVub1xcbnRpdHVsbzogVW5vXFxuLS0tXFxuPHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0PlxcbicpLmh0bWwuaW5jbHVkZXMoJzxzY3JpcHQ+JykpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2FjZXB0YSBhcmNoaXZvcyBjb24gQk9NIHkgZmluIGRlIGzDrW5lYSBkZSBXaW5kb3dzJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlbWEoJ++7vy0tLVxcclxcbmlkOiB1bm9cXHJcXG50aXR1bG86IFVub1xcclxcbi0tLVxcclxcbmhvbGFcXHJcXG4nKS5odG1sLCAnPHA+aG9sYTwvcD5cXG4nKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdyZWNoYXphIHVuIGFyY2hpdm8gc2luIGVuY2FiZXphZG8nLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHRlbWEoJyMgSG9sYVxcbicpLCAvZmFsdGEgZWwgZW5jYWJlemFkby8pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3JlY2hhemEgY2FtcG9zIGRlc2Nvbm9jaWRvcyAocGFyYSBkZXRlY3RhciBlcnJvcmVzIGRlIHRpcGVvKScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdGVtYSgnLS0tXFxuaWQ6IHVub1xcbnRpdHVsbzogVW5vXFxucGVybWlzbzogY2FtcG8uZWRpdGFyXFxuLS0tXFxuJyksIC9jYW1wbyBkZXNjb25vY2lkbyBcInBlcm1pc29cIi8pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ3JlY2hhemEgdW4gbW9kbyBxdWUgbm8gZXhpc3RlJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0ZW1hKCctLS1cXG5pZDogdW5vXFxudGl0dWxvOiBVbm9cXG5tb2RvOiBPRklDSU5BXFxuLS0tXFxuJyksIC9tb2RvIGRlYmUgc2VyLyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgncmVjaGF6YSBwZXJtaXNvcyBzaW4gYWNjacOzbicsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdGVtYSgnLS0tXFxuaWQ6IHVub1xcbnRpdHVsbzogVW5vXFxucGVybWlzb3M6IFtjYW1wb11cXG4tLS1cXG4nKSwgL3Blcm1pc28uYWNjaW9uLyk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZXhpZ2UgdMOtdHVsbyBzYWx2byBwYXJhIG9jdWx0YXInLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHRlbWEoJy0tLVxcbmlkOiB1bm9cXG4tLS1cXG4nKSwgL3RpdHVsby8pO1xuICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlbWEoJy0tLVxcbmlkOiB1bm9cXG5vY3VsdGFyOiB0cnVlXFxuLS0tXFxuJykub2N1bHRhciwgdHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2Z1ZW50ZXM6IGPDs21vIGxhcyBhcHBzIGZpbmFsZXMgYWdyZWdhbiwgcmVlbXBsYXphbiB5IG9jdWx0YW4gdGVtYXMnLCAoKSA9PiB7XG4gICAgICAgIHZhciBkbWVuY3UgPSBbXG4gICAgICAgICAgICB0ZW1hKCctLS1cXG5pZDogYVxcbnRpdHVsbzogQSBkZSBkbWVuY3VcXG5vcmRlbjogMVxcbi0tLVxcbicsICdkbWVuY3UnKSxcbiAgICAgICAgICAgIHRlbWEoJy0tLVxcbmlkOiBiXFxudGl0dWxvOiBCXFxub3JkZW46IDJcXG4tLS1cXG4nLCAnZG1lbmN1JyksXG4gICAgICAgICAgICB0ZW1hKCctLS1cXG5pZDogY1xcbnRpdHVsbzogQ1xcbm9yZGVuOiAzXFxuLS0tXFxuJywgJ2RtZW5jdScpLFxuICAgICAgICBdO1xuICAgICAgICB2YXIgYXBwID0gW1xuICAgICAgICAgICAgdGVtYSgnLS0tXFxuaWQ6IGFcXG50aXR1bG86IEEgZGUgbGEgYXBwXFxub3JkZW46IDFcXG4tLS1cXG4nLCAnYXBwJyksXG4gICAgICAgICAgICB0ZW1hKCctLS1cXG5pZDogYlxcbm9jdWx0YXI6IHRydWVcXG4tLS1cXG4nLCAnYXBwJyksXG4gICAgICAgICAgICB0ZW1hKCctLS1cXG5pZDogZFxcbnRpdHVsbzogRFxcbm9yZGVuOiAwXFxuLS0tXFxuJywgJ2FwcCcpLFxuICAgICAgICBdO1xuICAgICAgICBpdCgndW4gaWQgcmVwZXRpZG8gcmVlbXBsYXphIGFsIGFudGVyaW9yLCBvY3VsdGFyIGxvIHF1aXRhIHkgbG9zIG51ZXZvcyBzZSBhZ3JlZ2FuIHNlZ8O6biBvcmRlbicsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBjb21iaW5hZG9zID0gY29tYmluYXJUZW1hc0RlQXl1ZGEoW2RtZW5jdSwgYXBwXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbWJpbmFkb3MubWFwKHQgPT4gW3QuaWQsIHQub3JpZ2VuXSksIFtbJ2QnLCAnYXBwJ10sIFsnYScsICdhcHAnXSwgWydjJywgJ2RtZW5jdSddXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgncmVjaGF6YSBpZHMgcmVwZXRpZG9zIGRlbnRybyBkZSB1bmEgbWlzbWEgY2FycGV0YScsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBjYXJwZXRhID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnYXl1ZGEtJykpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihjYXJwZXRhLCAnMS5tZCcpLCAnLS0tXFxuaWQ6IGFcXG50aXR1bG86IEFcXG4tLS1cXG4nKTtcbiAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihjYXJwZXRhLCAnMi5tZCcpLCAnLS0tXFxuaWQ6IGFcXG50aXR1bG86IE90cmEgQVxcbi0tLVxcbicpO1xuICAgICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbGVlckZ1ZW50ZURlQXl1ZGEoeyBvcmlnZW46ICd0ZXN0JywgY2FycGV0YSB9KSwgL3lhIGVzdMOhIGVuLyk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGZzLnJtU3luYyhjYXJwZXRhLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdhdmlzYSBzaSBsYSBjYXJwZXRhIG5vIGV4aXN0ZScsICgpID0+IHtcbiAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbGVlckZ1ZW50ZURlQXl1ZGEoeyBvcmlnZW46ICd0ZXN0JywgY2FycGV0YTogcGF0aC5qb2luKG9zLnRtcGRpcigpLCAnbm8tZXhpc3RlLWF5dWRhJykgfSksIC9ubyBleGlzdGUgbGEgY2FycGV0YS8pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2xhIGNhcnBldGEgZGUgZG1lbmN1IHNlIGVuY3VlbnRyYSBkZXNkZSBlbCBqcyBjb21waWxhZG8nLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQub2soZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oY2FycGV0YURlbFBhcXVldGUoX19kaXJuYW1lKSwgJ2F5dWRhJykpKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnbG9zIHRlbWFzIGRlIGRtZW5jdScsICgpID0+IHtcbiAgICAgICAgaXQoJ25vIHRpZW5lbiBwcm9ibGVtYXMgZW4gR0FCSU5FVEUgKHBlcm1pc29zLCByb2xlcyB5IG9wY2lvbmVzIGRlIG1lbsO6IGV4aXN0ZW4pJywgKCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhcHBDb25BeXVkYShHQUJJTkVURSkucHJvYmxlbWFzRGVBeXVkYSgpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnbm8gdGllbmVuIHByb2JsZW1hcyBlbiBSRUxFVkFNSUVOVE8nLCAoKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGFwcENvbkF5dWRhKFJFTEVWQU1JRU5UTykucHJvYmxlbWFzRGVBeXVkYSgpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnY2FkYSBvcGNpw7NuIGRlbCBtZW7DuiBkZSBhZG1pbiBlbiBHQUJJTkVURSB0aWVuZSB1biB0ZW1hIHF1ZSBsYSBleHBsaWNhLCBkaXJlY3RhIG8gYSB0cmF2w6lzIGRlIHN1IG1lbsO6IHBhZHJlJywgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIGJlID0gYXBwQ29uQXl1ZGEoR0FCSU5FVEUpO1xuICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBjb250ZXh0b0RlbFJvbChiZSwgJ2FkbWluJyk7XG4gICAgICAgICAgICB2YXIgb3BjaW9uZXMgPSBtZW51Q29uQXl1ZGEoYmUuZ2V0TWVudShjb250ZXh0KS5tZW51LCBiZS5jYWNoZXMuYXl1ZGEpO1xuICAgICAgICAgICAgdmFyIHNpbkF5dWRhID0gb3BjaW9uZXMuZmlsdGVyKG9wY2lvbiA9PiBvcGNpb24udGVtYSA9PSBudWxsICYmIG9wY2lvbi5ydXRhICE9ICdjb25maWd1cmFyJyAmJiBvcGNpb24ucnV0YSAhPSAnY2FydG8nKS5tYXAob3BjaW9uID0+IG9wY2lvbi5ydXRhKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2luQXl1ZGEsIFtdKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgncXXDqSB2ZSBjYWRhIHBlcmZpbCcsICgpID0+IHtcbiAgICAgICAgaXQoJ2VuIFJFTEVWQU1JRU5UTyBxdWllbiByZWxldmEgdmUgbGEgYXl1ZGEgZGVsIGRpc3Bvc2l0aXZvJywgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIGJlID0gYXBwQ29uQXl1ZGEoUkVMRVZBTUlFTlRPKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoaWRzVmlzaWJsZXMoYmUsICdlbmN1ZXN0YWRvcicpLCBbJ2RtLXJlbGV2YW1pZW50bycsICdkbS1zaW5jcm9uaXphcicsICdkbS1jYW1iaWFyLW1vZG8nXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlkc1Zpc2libGVzKGJlLCAnc3VwZXJ2aXNvcicpLCBbJ2RtLXJlbGV2YW1pZW50bycsICdkbS1zaW5jcm9uaXphcicsICdkbS1jYW1iaWFyLW1vZG8nXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZW4gUkVMRVZBTUlFTlRPIHF1aWVuIG5vIHJlbGV2YSBubyB2ZSBheXVkYSBuaSBsYSBvcGNpw7NuIGRlbCBtZW7DuicsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBiZSA9IGFwcENvbkF5dWRhKFJFTEVWQU1JRU5UTyk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlkc1Zpc2libGVzKGJlLCAnY29vcl9jYW1wbycpLCBbXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGJlLmdldE1lbnUoY29udGV4dG9EZWxSb2woYmUsICdjb29yX2NhbXBvJykpLm1lbnUsIFtdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdlbiBHQUJJTkVURSBlbCBlbmN1ZXN0YWRvciBubyB2ZSBsYSBheXVkYSBkZWwgZGlzcG9zaXRpdm8nLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgYmUgPSBhcHBDb25BeXVkYShHQUJJTkVURSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlkc1Zpc2libGVzKGJlLCAnZW5jdWVzdGFkb3InKSwgW10pO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChiZS5nZXRNZW51KGNvbnRleHRvRGVsUm9sKGJlLCAnZW5jdWVzdGFkb3InKSkubWVudSwgW10pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2VuIEdBQklORVRFIGVsIGluZ3Jlc2Fkb3IgdmUgbG8gZGUgY2FtcG8gcGVybyBubyBsbyBkZSBhZG1pbmlzdHJhY2nDs24gbmkgcHJvY2VzYW1pZW50bycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBpZHMgPSBpZHNWaXNpYmxlcyhhcHBDb25BeXVkYShHQUJJTkVURSksICdpbmdyZXNhZG9yJyk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlkcywgWydjaXJjdWl0by1lbmN1ZXN0YScsICdhc2lnbmFjaW9uJywgJ3JlY2VwY2lvbicsICdzdXBlcnZpc2lvbicsICd2YXJpb3MnXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnZGlzZcOxbyBjb25jZXB0dWFsIHZlIGxhIGF5dWRhIGRlIG1ldGFkYXRvcycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBpZHMgPSBpZHNWaXNpYmxlcyhhcHBDb25BeXVkYShHQUJJTkVURSksICdkaXNfY29uY2VwdHVhbCcpO1xuICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpZHMsIFsnY2lyY3VpdG8tZW5jdWVzdGEnLCAnbWV0YWRhdG9zJ10pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXQoJ2FkbWluIChzdXBlcnVzZXIpIHZlIHRvZG9zIGxvcyB0ZW1hcyBkZWwgbW9kbycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBiZSA9IGFwcENvbkF5dWRhKEdBQklORVRFKTtcbiAgICAgICAgICAgIHZhciBkZUdhYmluZXRlID0gYmUuY2FjaGVzLmF5dWRhLmZpbHRlcih0ID0+IHQubW9kbyAhPSAnUkVMRVZBTUlFTlRPJykubWFwKHQgPT4gdC5pZCk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlkc1Zpc2libGVzKGJlLCAnYWRtaW4nKSwgZGVHYWJpbmV0ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgndW4gdGVtYSBwb3Igcm9sIHNlIG11ZXN0cmEgYSBlc2Ugcm9sIGF1bnF1ZSBubyB0ZW5nYSBlbCBwZXJtaXNvJywgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIHBvclJvbCA9IHRlbWEoJy0tLVxcbmlkOiB4XFxudGl0dWxvOiBYXFxucm9sZXM6IFthdXhpbGlhcl1cXG4tLS1cXG4nKTtcbiAgICAgICAgICAgIHZhciBiZSA9IGNyZWFyQXBwUGFyYVRlc3RzKEdBQklORVRFKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGVtYXNWaXNpYmxlcyhbcG9yUm9sXSwgcXVpZW5Db25zdWx0YUF5dWRhKGNvbnRleHRvRGVsUm9sKGJlLCAnYXV4aWxpYXInKSkpLm1hcCh0ID0+IHQuaWQpLCBbJ3gnXSk7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRlbWFzVmlzaWJsZXMoW3BvclJvbF0sIHF1aWVuQ29uc3VsdGFBeXVkYShjb250ZXh0b0RlbFJvbChiZSwgJ2luZ3Jlc2Fkb3InKSkpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdCgnbGEgb3BjacOzbiBheXVkYSB2YSBhbCBmaW5hbCBkZWwgbWVuw7ogZGUgcXVpZW4gdGllbmUgdGVtYXMnLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgYmUgPSBhcHBDb25BeXVkYShSRUxFVkFNSUVOVE8pO1xuICAgICAgICAgICAgdmFyIG1lbnU6IE1lbnVJbmZvQmFzZVtdID0gYmUuZ2V0TWVudShjb250ZXh0b0RlbFJvbChiZSwgJ2VuY3Vlc3RhZG9yJykpLm1lbnU7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1lbnUubWFwKG9wY2lvbiA9PiBvcGNpb24ubmFtZSksIFsncmVsZXZhbWllbnRvJywgJ3NpbmNyb25pemFyJywgJ2NhbWJpYXJfbW9kbycsICdheXVkYSddKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnbWVuw7ogY29uIGF5dWRhIChsbyBxdWUgbXVlc3RyYSBcIlF1w6kgcHVlZG8gaGFjZXJcIiknLCAoKSA9PiB7XG4gICAgICAgIGl0KCdsaWdhIGNhZGEgb3BjacOzbiBkZWwgbWVuw7ogZGVsIHVzdWFyaW8gY29uIHN1IHRlbWEgeSBubyBpbmNsdXllIGxhIG9wY2nDs24gYXl1ZGEnLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgYmUgPSBhcHBDb25BeXVkYShSRUxFVkFNSUVOVE8pO1xuICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBjb250ZXh0b0RlbFJvbChiZSwgJ2VuY3Vlc3RhZG9yJyk7XG4gICAgICAgICAgICB2YXIgdGVtYXMgPSB0ZW1hc1Zpc2libGVzKGJlLmNhY2hlcy5heXVkYSwgcXVpZW5Db25zdWx0YUF5dWRhKGNvbnRleHQpKTtcbiAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobWVudUNvbkF5dWRhKGJlLmdldE1lbnUoY29udGV4dCkubWVudSwgdGVtYXMpLCBbXG4gICAgICAgICAgICAgICAgeyBydXRhOiAncmVsZXZhbWllbnRvJywgbGFiZWw6ICdyZWxldmFtaWVudG8nLCB0ZW1hOiAnZG0tcmVsZXZhbWllbnRvJywgb3BjaW9uZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgeyBydXRhOiAnc2luY3Jvbml6YXInLCBsYWJlbDogJ3NpbmNyb25pemFyJywgdGVtYTogJ2RtLXNpbmNyb25pemFyJywgb3BjaW9uZXM6IFtdIH0sXG4gICAgICAgICAgICAgICAgeyBydXRhOiAnY2FtYmlhcl9tb2RvJywgbGFiZWw6ICdjYW1iaWFyIG1vZG8nLCB0ZW1hOiAnZG0tY2FtYmlhci1tb2RvJywgb3BjaW9uZXM6IFtdIH0sXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdyZWNvcnJlIGxvcyBzdWJtZW7DunMgY29uIHJ1dGFzIHNlcGFyYWRhcyBwb3IgLycsICgpID0+IHtcbiAgICAgICAgICAgIHZhciBiZSA9IGFwcENvbkF5dWRhKEdBQklORVRFKTtcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY29udGV4dG9EZWxSb2woYmUsICdpbmdyZXNhZG9yJyk7XG4gICAgICAgICAgICB2YXIgdGVtYXMgPSB0ZW1hc1Zpc2libGVzKGJlLmNhY2hlcy5heXVkYSwgcXVpZW5Db25zdWx0YUF5dWRhKGNvbnRleHQpKTtcbiAgICAgICAgICAgIHZhciBhc2lnbmFjaW9uID0gbWVudUNvbkF5dWRhKGJlLmdldE1lbnUoY29udGV4dCkubWVudSwgdGVtYXMpLmZpbmQob3BjaW9uID0+IG9wY2lvbi5ydXRhID09ICdhc2lnbmFjaW9uJyk7XG4gICAgICAgICAgICBhc3NlcnQub2soYXNpZ25hY2lvbik7XG4gICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGFzaWduYWNpb24ub3BjaW9uZXMubWFwKG9wY2lvbiA9PiBbb3BjaW9uLnJ1dGEsIG9wY2lvbi50ZW1hXSksIFtcbiAgICAgICAgICAgICAgICBbJ2FzaWduYWNpb24vZW5jdWVzdGFkb3InLCAnYXNpZ25hY2lvbiddLFxuICAgICAgICAgICAgICAgIFsnYXNpZ25hY2lvbi9pbmdyZXNhZG9yJywgJ2FzaWduYWNpb24nXSxcbiAgICAgICAgICAgICAgICBbJ2FzaWduYWNpb24vcmVjdXBlcmFkb3InLCAnYXNpZ25hY2lvbiddLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};