dmencu 0.1.34 → 0.1.36

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.
@@ -72,6 +72,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
72
72
  desplegarFormularioActual({ operativo, modoDemo: false, forPkRaiz });
73
73
  })
74
74
  };
75
+ myOwn.wScreens.obtener_telefono = {
76
+ parameters: [],
77
+ autoproced: true,
78
+ mainAction: (_params) => __awaiter(void 0, void 0, void 0, function* () {
79
+ // antes: abrirDirecto
80
+ var { operativo, tarea } = { operativo: OPERATIVO_DEFAULT, tarea: TAREA_DEFAULT };
81
+ let encuesta = parseInt(yield my.ajax.get_random_free_case({ operativo }));
82
+ yield myOwn.wScreens.abrir_encuesta.mainAction({ operativo, encuesta, tarea });
83
+ })
84
+ };
75
85
  myOwn.wScreens.consistir_encuesta = {
76
86
  parameters: [
77
87
  { name: 'operativo', typeName: 'text', defaultValue: OPERATIVO_DEFAULT, references: 'operativos' },
@@ -383,4 +393,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
383
393
  return [].concat.apply([], arrays);
384
394
  }
385
395
  });
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsMkNBQWdDO0lBQ2hDLG1FQUE2RDtJQUk3RCxrQ0FBa0M7SUFDbEMscUVBQW9GO0lBQ3BGLG1FQUF5STtJQUd6SSxrQkFBa0I7SUFFbEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0lBQzdCLElBQUksaUJBQWlCLEdBQUUsSUFBSSxDQUFDO0lBRTVCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBUSxFQUFFO1FBQ3BDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLElBQUc7WUFDQyxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQUEsT0FBTSxHQUFHLEVBQUM7WUFDUCxpQkFBaUIsR0FBQyxJQUFJLENBQUM7U0FDMUI7UUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsR0FBQztZQUMxQixVQUFVLEVBQUM7Z0JBQ1AsRUFBQyxJQUFJLEVBQUMsV0FBVyxFQUFHLFFBQVEsRUFBQyxNQUFNLEVBQUUsWUFBWSxFQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBQyxZQUFZLEVBQUM7Z0JBQzdGLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBTyxRQUFRLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQztnQkFDdEYsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFJLFFBQVEsRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sRUFBQzthQUMvRDtZQUNELFVBQVUsRUFBQyxJQUFJO1lBQ2YsVUFBVSxFQUFDLENBQU8sTUFBTSxFQUFDLEVBQUU7O2dCQUN2QixzQkFBc0I7Z0JBQ3RCLElBQUksRUFBQyxTQUFTLEVB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LGtCQUFrQixDQUFDO2dCQUM1QyxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTO2dCQUM5QixPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHO2FBQ3pCLENBQUMsQ0FBQSxDQUFDLENBQUMsWUFBWSxDQUFDLDREQUE0RCxDQUFDLENBQUM7UUFDbkYsQ0FBQztLQUNKLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFDLFVBQWUsV0FBVzs7WUFDMUMsOENBQThDO1lBQzlDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxFQUFDLFFBQVEsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FBQSxDQUFBO0lBRUQsU0FBUyxTQUFTLENBQUksTUFBWTtRQUM5QixPQUFRLEVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtodG1sfSBmcm9tIFwianMtdG8taHRtbFwiO1xyXG5pbXBvcnQge3RyYWVyRXN0cnVjdHVyYX0gZnJvbSBcIi4uL3VubG9nZ2VkL3JlZHV4LWZvcm11bGFyaW9cIjtcclxuaW1wb3J0IHsgQ2Fzb1N0YXRlLCAgXHJcbiAgICBJZEZvcm11bGFyaW8sIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzLCBJZEVuYywgSWRPcGVyYXRpdm8sIElkVGFyZWEsXHJcbn0gZnJvbSBcIi4uL3VubG9nZ2VkL3RpcG9zXCI7XHJcbmltcG9ydCAqIGFzIGxpa2VBciBmcm9tIFwibGlrZS1hclwiO1xyXG5pbXBvcnQge2dldEVzdHJ1Y3R1cmEsIHNldFBlcnNpc3RpckRhdG9zQnlQYXNzfSBmcm9tIFwiLi4vdW5sb2dnZWQvYnlwYXNzLWZvcm11bGFyaW9cIlxyXG5pbXBvcnQge2NhcmdhckVzdHJ1Y3R1cmEsIGNhcmdhckhvamFEZVJ1dGEsIEdMT1ZBUl9EQVRPU0JZUEFTUywgR0xPVkFSX0VTVFJVQ1RVUkEsIEdMT1ZBUl9NT0RPQllQQVNTfSBmcm9tIFwiLi4vdW5sb2dnZWQvYWJyaXItZm9ybXVsYXJpb1wiXHJcbmltcG9ydCB7IE9wZXJhdGl2byB9IGZyb20gXCJtZXRhLWVuY1wiO1xyXG5cclxuLy9UT0RPIEdFTkVSQUxJWkFSXHJcblxyXG5jb25zdCBUQVJFQV9ERUZBVUxUID0gJ2VuY3UnO1xyXG52YXIgT1BFUkFUSVZPX0RFRkFVTFQ9IG51bGw7XHJcblxyXG5teU93bi5hdXRvU2V0dXBGdW5jdGlvbnMucHVzaChhc3luYyAoKT0+e1xyXG4gICAgdmFyIG15ID0gbXlPd247ICAgIFxyXG4gICAgdHJ5e1xyXG4gICAgICAgIE9QRVJBVElWT19ERUZBVUxUID0gYXdhaXQgbXkuYWpheC5vcGVyYXRpdm9fZ2V0KHt9KTtcclxuICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgIE9QRVJBVElWT19ERUZBVUxUPW51bGw7XHJcbiAgICB9XHJcbiAgICBteU93bi53U2NyZWVucy5hYnJpcl9lbmN1ZXN0YT17XHJcbiAgICAgICAgcGFyYW1ldGVyczpbXHJcbiAgICAgICAgICAgIHtuYW1lOidvcGVyYXRpdm8nICwgdHlwZU5hbWU6J3RleHQnLCBkZWZhdWx0VmFsdWU6T1BFUkFUSVZPX0RFRkFVTFQsIHJlZmVyZW5jZXM6J29wZXJhdGl2b3MnfSxcclxuICAgICAgICAgICAge25hbWU6J3RhcmVhJyAgICAgLCB0eXBlTmFtZTondGV4dCcsIGRlZmF1bHRWYWx1ZTpUQVJFQV9ERUZBVUxULCByZWZlcmVuY2VzOiAndGFyZWFzJ30sXHJcbiAgICAgICAgICAgIHtuYW1lOidlbmN1ZXN0YScgICwgdHlwZU5hbWU6J2ludGVnZXInLCBkZWZhdWx0VmFsdWU6MTMwMDMxfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXV0b3Byb2NlZDp0cnVlLFxyXG4gICAgICAgIG1haW5BY3Rpb246YXN5bmMgKHBhcmFtcyk9PntcclxuICAgICAgICAgICAgLy8gYW50ZXM6IGFicmlyRGlyZWN0b1xyXG4gICAgICAgICAgICB2YXIge29wZXJhdGl2bywgZW5jdWVzdGEsIHRhcmVhfSA9IHBhcmFtcztcclxuICAgICAgICAgICAgdmFyIGVzdHJ1Y3R1cmEgPSBnZXRFc3RydWN0dXJhKCk7XHJcbiAgICAgICAgICAgIHZhciBjYXJnYSA9IGF3YWl0IG15LmFqYXguZG1fZm9ycGtyYWl6X2Nhcmdhcih7b3BlcmF0aXZvLCB2aXZpZW5kYTplbmN1ZXN0YSwgdGFyZWF9KSBhcyBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcztcclxuICAgICAgICAgICAgaWYoIWVzdHJ1Y3R1cmEgfHwgKGVzdHJ1Y3R1cmEudGltZXN0YW1wPz8wKSA8IGNhcmdhLnRpbWVzdGFtcEVzdHJ1Y3R1cmEhIHx8IGVzdHJ1Y3R1cmEub3BlcmF0aXZvICE9IG9wZXJhdGl2byB8fCBteS5jb25maWcuY29uZmlnLmRldmVsKXtcclxuICAgICAgICAgICAgICAgIGVzdHJ1Y3R1cmEgPSBhd2FpdCB0cmFlckVzdHJ1Y3R1cmEoe29wZXJhdGl2b30pXHJcbiAgICAgICAgICAgICAgICBjYXJnYXJFc3RydWN0dXJhKGVzdHJ1Y3R1cmEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB2YXIgc3RhdGU6Q2Fzb1N0YXRlID0ge31cclxuICAgICAgICAgICAgaW5pY2lhbGl6YXJTdGF0ZShzdGF0ZSk7XHJcbiAgICAgICAgICAgIHZhciBmb3JQa1JhaXogPSB7Zm9ybXVsYXJpbzpjYXJnYS5pbmZvcm1hY2lvbkhkcltlbmN1ZXN0YSBhcyBJZEVuY10udGFyZWEubWFpbl9mb3JtLCB2aXZpZW5kYTplbmN1ZXN0YX07XHJcbiAgICAgICAgICAgIHNldFBlcnNpc3RpckRhdG9zQnlQYXNzKFxyXG4gICAgICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcGVyc2lzdGlyRGF0b3NCeVBhc3NFbkJhc2VEZURhdG9zKHBlcnNpc3RlbnRlczpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocGVyc2lzdGVudGVzLnNvbG9MZWN0dXJhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXN0w6EgaW50ZW50YW5kbyBtb2RpZmljYXIgdW5hIGVuY3Vlc3RhIGFiaWVydGEgY29tbyBzb2xvIGxlY3R1cmEsIG5vIHNlIGd1YXJkYXJvbiBsb3MgY2FtYmlvc1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBteS5hamF4LmRtX2ZvcnBrcmFpel9kZXNjYXJnYXIoe29wZXJhdGl2bywgcGVyc2lzdGVudGVzfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgaWYoIWNhcmdhLnJlc3B1ZXN0YXMudml2aWVuZGFzW2ZvclBrUmFpei52aXZpZW5kYSFdKXtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc2UgZW5jdWVudHJhIGxhIHZpdmllbmRhICR7Zm9yUGtSYWl6LnZpdmllbmRhIX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXJnYXJIb2phRGVSdXRhKHsuLi5jYXJnYSwgbW9kb0FsbWFjZW5hbWllbnRvOidzZXNzaW9uJ30pO1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwoe29wZXJhdGl2bywgbW9kb0RlbW86ZmFsc2UsIGZvclBrUmFpen0pO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBteU93bi53U2NyZWVucy5jb25zaXN0aXJfZW5jdWVzdGE9e1xyXG4gICAgICAgIHBhcmFtZXRlcnM6W1xyXG4gICAgICAgICAgICB7bmFtZTonb3BlcmF0aXZvJyAsIHR5cGVOYW1lOid0ZXh0JywgZGVmYXVsdFZhbHVlOk9QRVJBVElWT19ERUZBVUxULCByZWZlcmVuY2VzOidvcGVyYXRpdm9zJ30sXHJcbiAgICAgICAgICAgIHtuYW1lOid0YXJlYScgICAgICwgdHlwZU5hbWU6J3RleHQnfSxcclxuICAgICAgICAgICAge25hbWU6J2VuY3Vlc3RhJyAgLCB0eXBlTmFtZTonaW50ZWdlcid9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBhdXRvcHJvY2VkOnRydWUsXHJcbiAgICAgICAgbWFpbkFjdGlvbjphc3luYyAocGFyYW1zKT0+e1xyXG4gICAgICAgICAgICB2YXIge29wZXJhdGl2bywgdGFyZWEsIGVuY3Vlc3RhIH0gPSBwYXJhbXM7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBteU93bi5hamF4LmNvbnNpc3Rpcl9lbmN1ZXN0YSh7XHJcbiAgICAgICAgICAgICAgICBvcGVyYXRpdm86IG9wZXJhdGl2byxcclxuICAgICAgICAgICAgICAgIGlkX2Nhc286IGVuY3Vlc3RhXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZihyZXN1bHQub2spe1xyXG4gICAgICAgICAgICAgICAgdmFyIGZpeGVkRmllbGRzID0gW107XHJcbiAgICAgICAgICAgICAgICBmaXhlZEZpZWxkcy5wdXNoKHtmaWVsZE5hbWU6ICdvcGVyYXRpdm8nLCB2YWx1ZTogb3BlcmF0aXZvfSk7XHJcbiAgICAgICAgICAgICAgICBmaXhlZEZpZWxkcy5wdXNoKHtmaWVsZE5hbWU6ICd2aXZpZW5kYScsIHZhbHVlOiBlbmN1ZXN0YX0pO1xyXG4gICAgICAgICAgICAgICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGl2R3JpbGxhID0gaHRtbC5kaXYoe2lkOidpbmNvbnNpc3RlbmNpYXMnfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICBtYWluTGF5b3V0Lmluc2VydEJlZm9yZShkaXZHcmlsbGEsIG1haW5MYXlvdXQuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgICAgICBtYWluTGF5b3V0Lmluc2VydEJlZm9yZShcclxuICAgICAgICAgICAgICAgICAgICBjcmVhckJvdG9uVmVyQWJyaXJFbmN1ZXN0YShcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aXZvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJlYSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW5jdWVzdGEsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgaXIgYSBlbmN1ZXN0YSAke2VuY3Vlc3RhfWBcclxuICAgICAgICAgICAgICAgICAgICApLCBcclxuICAgICAgICAgICAgICAgICAgICBtYWluTGF5b3V0LmZpcnN0Q2hpbGRcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBteS50YWJsZUdyaWQoXCJpbmNvbnNpc3RlbmNpYXNcIiwgZGl2R3JpbGxhLHt0YWJsZURlZjp7fSxmaXhlZEZpZWxkczogZml4ZWRGaWVsZHN9KTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KTtcclxuXHJcblxyXG4vL3F1aXRhIGJvb3RzdHJhcCBkZWwgaGVhZCBwYXJhIHF1ZSBubyByb21wYSBsb3MgZXN0aWxvcyBkZSBCRVBsdXMgKHNvbG8gc2UgdXNhIGJvb3RzdHJhcCBlbiBlbCBmb3JtKVxyXG52YXIgbGlua05vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaHJlZj1cImNzcy9ib290c3RyYXAubWluLmNzc1wiXScpO1xyXG5saW5rTm9kZVswXT8ucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobGlua05vZGVbMF0pO1xyXG5cclxuZnVuY3Rpb24gY29uc2lzdGlyX2ZpbHRybyh0YXJlYSwgcmVhX3RlbSwgcmVhKXtcclxuICAgIHJldHVybiB0YXJlYT9yZWFfdGVtOnJlYTtcclxufTtcclxuXHJcbnZhciB0YXJlYXM6YW55ID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIGh0bWxOdW1lcm8obnVtOm51bWJlcil7XHJcbiAgICByZXR1cm4gaHRtbC5zcGFuKHtjbGFzczonbnVtZXJvJ30sJycrKG51bT8/JycpKVxyXG59XHJcblxyXG52YXIgcGVyc2lzdGlyRW5NZW1vcmlhID0gYXN5bmMgKHBlcnNpc3RlbnRlczpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcykgPT4ge1xyXG4gICAgdmFyIHttb2RvQWxtYWNlbmFtaWVudG99ID0gcGVyc2lzdGVudGVzXHJcbiAgICAgICAgaWYobW9kb0FsbWFjZW5hbWllbnRvPT0nbG9jYWwnKXtcclxuICAgICAgICAgICAgbXkuc2V0TG9jYWxWYXIoR0xPVkFSX0RBVE9TQllQQVNTLCBwZXJzaXN0ZW50ZXMpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIG15LnNldFNlc3Npb25WYXIoR0xPVkFSX0RBVE9TQllQQVNTLCBwZXJzaXN0ZW50ZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG15LnNldFNlc3Npb25WYXIoR0xPVkFSX01PRE9CWVBBU1MsIG1vZG9BbG1hY2VuYW1pZW50bylcclxufVxyXG5cclxuYXN5bmMgZnVuY3Rpb24gc2luY3Jvbml6YXJEYXRvcyhwZXJzaXN0ZW50ZXM6RGF0b3NCeVBhc3NQZXJzaXN0aWJsZXN8bnVsbCl7XHJcbiAgICB2YXIgZGF0b3MgPSBhd2FpdCBteS5hamF4LmRtX3NpbmNyb25pemFyKHtwZXJzaXN0ZW50ZXN9KTtcclxuICAgIHZhciBvcGVyYXRpdm8gPSBkYXRvcy5vcGVyYXRpdm87XHJcbiAgICBwZXJzaXN0aXJFbk1lbW9yaWEoey4uLmRhdG9zLCBtb2RvQWxtYWNlbmFtaWVudG86J2xvY2FsJ30pO1xyXG4gICAgdmFyIGVzdHJ1Y3R1cmEgPSBhd2FpdCB0cmFlckVzdHJ1Y3R1cmEoe29wZXJhdGl2b30pXHJcbiAgICBteS5zZXRMb2NhbFZhcihHTE9WQVJfRVNUUlVDVFVSQSwgZXN0cnVjdHVyYSk7XHJcbiAgICByZXR1cm4gZGF0b3M7XHJcbn1cclxuXHJcblxyXG5cclxudmFyIG1vc3RyYXJJbmZvTG9jYWwgPSAoZGl2QXZpc29TaW5jcm86SFRNTERpdkVsZW1lbnQsIHRpdHVsbzpzdHJpbmcsIG5yb1NpbmNybzpudW1iZXJ8bnVsbCwgbW9zdHJhckxpbmtIZHI6IGJvb2xlYW4pPT57XHJcbiAgICBsZXQgZGF0b3NCeVBhc3MgPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpO1xyXG4gICAgaWYoZGF0b3NCeVBhc3Mpe1xyXG4gICAgICAgIGRpdkF2aXNvU2luY3JvLmFwcGVuZChodG1sLmRpdih7aWQ6J2F2aXNvLXNpbmNybyd9LCBbXHJcbiAgICAgICAgICAgIG5yb1NpbmNybz9odG1sLnAoW1wiTsO6bWVybyBkZSBzaW5jcm9uaXphY2nDs246IFwiLCBodG1sLmIoXCJcIitucm9TaW5jcm8udG9TdHJpbmcoKSldKTpudWxsLFxyXG4gICAgICAgICAgICBodG1sLmg0KHRpdHVsbyksXHJcbiAgICAgICAgICAgIGh0bWwucChbaHRtbE51bWVybyhsaWtlQXIoZGF0b3NCeVBhc3MuY2FyZ2FzKS5hcnJheSgpLmxlbmd0aCksJyBhcmVhczogJyxsaWtlQXIoZGF0b3NCeVBhc3MuY2FyZ2FzKS5rZXlzKCkuam9pbignLCAnKV0pLFxyXG4gICAgICAgICAgICBodG1sLnAoW2h0bWxOdW1lcm8obGlrZUFyKGRhdG9zQnlQYXNzLnJlc3B1ZXN0YXMudml2aWVuZGFzKS5hcnJheSgpLmxlbmd0aCksJyB2aXZpZW5kYXMnXSksXHJcbiAgICAgICAgICAgIG1vc3RyYXJMaW5rSGRyP2h0bWwuYSh7aHJlZjonLi9jYW1wbyd9LFtodG1sLmIoJ0lSIEEgTEEgSE9KQSBERSBSVVRBJyldKTpudWxsXHJcbiAgICAgICAgXSkuY3JlYXRlKCkpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgZGl2QXZpc29TaW5jcm8uYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2NsYXNzOidhdmlzbyd9LFtcclxuICAgICAgICAgICAgaHRtbC5oNCgnU2lzdGVtYSB2YWPDrW8nKSxcclxuICAgICAgICAgICAgaHRtbC5wKCdObyBoYXkgaW5mb3JtYWNpw7NuIGRlIGZvcm11bGFyaW9zJyksXHJcbiAgICAgICAgICAgIGh0bWwucCgnTm8gaGF5IGluZm9ybWFjacOzbiBkZSB2aXZpZW5kYXMnKVxyXG4gICAgICAgIF0pLmNyZWF0ZSgpKTtcclxuICAgIH1cclxufVxyXG52YXIgcHJvY2VkZXJTaW5jcm9GdW4gPSBhc3luYyAoYnV0dG9uOkhUTUxCdXR0b25FbGVtZW50LCBkaXZBdmlzb1NpbmNybzpIVE1MRGl2RWxlbWVudCk9PntcclxuICAgIGJ1dHRvbi5kaXNhYmxlZD10cnVlO1xyXG4gICAgYnV0dG9uLmNsYXNzTmFtZT0nZG93bmxvYWQtZG0tYnV0dG9uJztcclxuICAgIGRpdkF2aXNvU2luY3JvLmlubmVySFRNTD0nJztcclxuICAgIHRyeXtcclxuICAgICAgICB2YXIgZGF0b3NCeVBhc3M6RGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpO1xyXG4gICAgICAgIHZhciBkYXRvcyA9IGF3YWl0IHNpbmNyb25pemFyRGF0b3MoZGF0b3NCeVBhc3MpO1xyXG4gICAgICAgIG1vc3RyYXJJbmZvTG9jYWwoZGl2QXZpc29TaW5jcm8sICdkYXRvcyByZWNpYmlkb3MnLCBkYXRvcy5udW1fc2luY3JvLCB0cnVlKVxyXG4gICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgYWxlcnRQcm9taXNlKGVyci5tZXNzYWdlKVxyXG4gICAgICAgIHRocm93IGVyclxyXG4gICAgfWZpbmFsbHl7XHJcbiAgICAgICAgYnV0dG9uLmRpc2FibGVkPWZhbHNlO1xyXG4gICAgICAgIGJ1dHRvbi5jbGFzc05hbWU9J2Rvd25sb2FkLWRtLWJ1dHRvbi1jb250JztcclxuICAgIH1cclxufVxyXG5teU93bi53U2NyZWVucy5zaW5jcm9uaXphcl9kbT1hc3luYyBmdW5jdGlvbigpe1xyXG4gICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICB2YXIgcHJvY2VkZXJCdXR0b24gPSBodG1sLmJ1dHRvbih7Y2xhc3M6J2Rvd25sb2FkLWRtLWJ1dHRvbi1jb250J30sJ3Byb2NlZGVyIOKHkicpLmNyZWF0ZSgpO1xyXG4gICAgdmFyIGRpdkF2aXNvU2luY3JvOkhUTUxEaXZFbGVtZW50PWh0bWwuZGl2KCkuY3JlYXRlKCk7XHJcbiAgICBtb3N0cmFySW5mb0xvY2FsKG1haW5MYXlvdXQgYXMgSFRNTERpdkVsZW1lbnQsICdpbmZvcm1hY2nDs24gYSB0cmFuc21pdGlyJywgbnVsbCwgZmFsc2UpXHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKHByb2NlZGVyQnV0dG9uKTtcclxuICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQoZGl2QXZpc29TaW5jcm8pO1xyXG4gICAgcHJvY2VkZXJCdXR0b24ub25jbGljayA9ICgpPT5wcm9jZWRlclNpbmNyb0Z1bihwcm9jZWRlckJ1dHRvbiwgZGl2QXZpc29TaW5jcm8pXHJcbn07XHJcblxyXG5mdW5jdGlvbiBpbmljaWFsaXphclN0YXRlKHN0YXRlOiBDYXNvU3RhdGUpIHtcclxuICAgIHN0YXRlLm1vZG8gPSB7XHJcbiAgICAgICAgZGVtbzogZmFsc2VcclxuICAgIH07XHJcbiAgICAvLyBPSk8gc3RhdGUub3BjaW9uZXMgc2UgbW9kaWZpY2EgYWPDoSB5IGVuIG90cm8gbGFkbyBjb24gZXN0ZSBtaXNtbyBjYXJ0ZWxcclxuICAgIHN0YXRlLm9wY2lvbmVzID0ge1xyXG4gICAgICAgIGJpZW52ZW5pZG86IHRydWUsXHJcbiAgICAgICAgZm9yUGs6IG51bGwsXHJcbiAgICAgICAgcGlsYUZvclBrOiBbXSxcclxuICAgICAgICBtb2RvRGVzcGxpZWd1ZTogXCJyZWxldmFtaWVudG9cIixcclxuICAgICAgICBtb2RvRGlyZWN0bzogZmFsc2UsXHJcbiAgICAgICAgbW9kb0JvcnJhclJlc3B1ZXN0YTogbnVsbCxcclxuICAgICAgICBjb25DYW1wb09wY2lvbmVzOiBmYWxzZSxcclxuICAgICAgICBzYWx0b0F1dG9tYXRpY286IHRydWUsXHJcbiAgICB9O1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICBzdGF0ZS5mZWVkYmFja1Jvd1ZhbGlkYXRvciA9IHt9O1xyXG59XHJcbi8qXHJcbmZ1bmN0aW9uIG1vc3RyYXJEYXRvc1BlcnNvbmEoaGF5RGF0b3M6Ym9vbGVhbiwgZGF0b3M6YW55LCBkaXZSZXN1bHQ6SFRNTERpdkVsZW1lbnQpe1xyXG4gICAgLy9UT0RPOiBFVkFMVUFSIFNJIENPTlZJRU5FIFRSQUVSTE8gREUgTEEgQkFTRVxyXG4gICAgdmFyIHRpcG9zRG9jdW1lbnRvID0gWydETkkgYXJnZW50aW5vJywgJ0RvY3VtZW50byBleHRyYW5qZXJvJywgJ05vIHRpZW5lIGRvY3VtZW50bycsICdPdHJvJ107XHJcbiAgICB2YXIgcGFpc0RvY3VtZW50byA9IFsnVXJ1Z3VheScsICdQYXJhZ3VheScsICdCcmFzaWwnLCAnQm9saXZpYScsICdDaGlsZScsICdQZXLDuicsICdWZW5lenVlbGEnLCAnT3RybyddO1xyXG4gICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKFxyXG4gICAgICAgIGhheURhdG9zP1xyXG4gICAgICAgICAgICBodG1sLmRpdih7Y2xhc3M6J2RhdG9zLXBlcnNvbmEtY2FyZ2FkYSd9LFtcclxuICAgICAgICAgICAgICAgIGh0bWwuaDIoXCJEYXRvcyBwZXJzb25hXCIpLFxyXG4gICAgICAgICAgICAgICAgaHRtbC5kaXYoe2NsYXNzOidmaWNoYS1wZXJzb25hJ30sW1xyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KFtodG1sLmxhYmVsKCdBcGVsbGlkbzogJyksIGRhdG9zLmFwZWxsaWRvXSksXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoW2h0bWwubGFiZWwoJ05vbWJyZXM6ICcpLCBkYXRvcy5ub21icmVzXSksXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MudGlwb0RvY3VtZW50bz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5sYWJlbCgnVGlwbyBkb2N1bWVudG86ICcpLCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpcG9zRG9jdW1lbnRvW2RhdG9zLnRpcG9Eb2N1bWVudG8tMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRvcy50aXBvRG9jdW1lbnRvPT00ICYmIGRhdG9zLnRpcG9Eb2N1bWVudG9Fc3BlY2lmaWNhZG8/JyAoJysgZGF0b3MudGlwb0RvY3VtZW50b0VzcGVjaWZpY2FkbysnKSc6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgICAgICAgICAgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy50aXBvRG9jdW1lbnRvPT0yICYmIGRhdG9zLnBhaXNEb2N1bWVudG8/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwubGFiZWwoJ1BhaXM6ICcpLCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXNEb2N1bWVudG9bZGF0b3MucGFpc0RvY3VtZW50by0xXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdG9zLnBhaXNEb2N1bWVudG89PTggJiYgZGF0b3MucGFpc0RvY3VtZW50b0VzcGVjaWZpY2Fkbz8nICgnK2RhdG9zLnBhaXNEb2N1bWVudG9Fc3BlY2lmaWNhZG8rJyknOicnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICAgICAgICAgIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MudGlwb0RvY3VtZW50byE9MyAmJiBkYXRvcy50aXBvRG9jdW1lbnRvP2h0bWwuZGl2KFtodG1sLmxhYmVsKCdOwrogRG9jdW1lbnRvOiAnKSwgZGF0b3MuZG9jdW1lbnRvXSk6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MuY2VsdWxhcj9odG1sLmRpdihbaHRtbC5sYWJlbCgnQ2VsLjogJyksIGRhdG9zLmNlbHVsYXJdKTonJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy5lbWFpbD9odG1sLmRpdihbaHRtbC5sYWJlbCgnRW1haWw6ICcpLCBkYXRvcy5lbWFpbF0pOicnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLnRlbGVmb25vQWx0ZXJuYXRpdm8/aHRtbC5kaXYoW2h0bWwubGFiZWwoJ1RlbC4gYWx0ZXJuYXRpdm86ICcpLCBkYXRvcy50ZWxlZm9ub0FsdGVybmF0aXZvXSk6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3Mub2JzZXJ2YWNpb25lcz9odG1sLmRpdihbaHRtbC5sYWJlbCgnT2JzZXJ2YWNpb25lczogJyksIGRhdG9zLm9ic2VydmFjaW9uZXNdKTonJyxcclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgIF0pLmNyZWF0ZSgpXHJcbiAgICAgICAgOlxyXG4gICAgICAgICAgICBodG1sLnAoXCJObyBzZSBlbmNvbnRyw7MgdW5hIGVuY3Vlc3RhIHBhcmEgbGEgZXRpcXVldGEgY2FyZ2FkYVwiKS5jcmVhdGUoKVxyXG4gICAgKVxyXG59XHJcbiovXHJcbm15T3duLmNsaWVudFNpZGVzLnRhcmVhc1RlbVJvdz17XHJcbiAgICB1cGRhdGU6KGRlcG90KT0+e1xyXG4gICAgICAgIHZhciB0YXJlYTonbmFkYSd8J3ByZWFzaWduYXInfCdjYXJnYXInfCdyZWFsaXphcid8J3ZlcmlmaWNhcic9J25hZGEnO1xyXG4gICAgICAgIHZhciByb3c9ZGVwb3Qucm93O1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICB2YXIgaWRwZXI9bXkuY29uZmlnLmlkcGVyO1xyXG4gICAgICAgIHZhciBlc3BlcmFyOmJvb2xlYW49ZmFsc2U7XHJcbiAgICAgICAgaWYocm93LmhhYmlsaXRhZGEpe1xyXG4gICAgICAgICAgICBpZighcm93LmFzaWduYW50ZSAmJiAhcm93LmFzaWduYWRvKXtcclxuICAgICAgICAgICAgICAgIHRhcmVhPSdwcmVhc2lnbmFyJztcclxuICAgICAgICAgICAgICAgIGVzcGVyYXI9dHJ1ZTtcclxuICAgICAgICAgICAgfWVsc2UgaWYoIXJvdy5hc2lnbmFkbyB8fCAhcm93LmZlY2hhX2FzaWduYWNpb24gfHwgIXJvdy5vcGVyYWNpb24pe1xyXG4gICAgICAgICAgICAgICAgdGFyZWE9J2Nhcmdhcic7XHJcbiAgICAgICAgICAgICAgICBlc3BlcmFyPXJvdy5hc2lnbmFudGUhPWlkcGVyO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZighcm93LnJlYSl7XHJcbiAgICAgICAgICAgICAgICB0YXJlYT0ncmVhbGl6YXInO1xyXG4gICAgICAgICAgICAgICAgZXNwZXJhcj1yb3cuYXNpZ25hZG8hPWlkcGVyO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZighcm93LnZlcmlmaWNhZG8pe1xyXG4gICAgICAgICAgICAgICAgdGFyZWE9J3ZlcmlmaWNhcic7XHJcbiAgICAgICAgICAgICAgICBlc3BlcmFyPXJvdy5hc2lnbmFudGUhPWlkcGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBwb25lcj17XHJcbiAgICAgICAgICAgIGFzaWduYW50ZSAgICAgICAgICA6dGFyZWE9PSdwcmVhc2lnbmFyJyAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBhc2lnbmFkbyAgICAgICAgICAgOnRhcmVhPT0nY2FyZ2FyJyAgICAgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidub3JtYWwnKSxcclxuICAgICAgICAgICAgZmVjaGFfYXNpZ25hY2lvbiAgIDp0YXJlYT09J2NhcmdhcicgICAgICYmIChlc3BlcmFyPydlc3BlcmFyJzonbm9ybWFsJyksXHJcbiAgICAgICAgICAgIG9wZXJhY2lvbiAgICAgICAgICA6dGFyZWE9PSdjYXJnYXInICAgICAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBjYXJnYV9vYnNlcnZhY2lvbmVzOih0YXJlYT09J2NhcmdhcicgICAgIHx8IHRhcmVhPT0ncmVhbGl6YXInICYmICFyb3cuY2FyZ2FkbyAmJiAhcm93LnJlYSApICYmIHJvdy5hc2lnbmFudGU9PWlkcGVyICYmICdvcHRhdGl2bycsXHJcbiAgICAgICAgICAgIHZlcmlmaWNhZG8gICAgICAgICA6dGFyZWE9PSd2ZXJpZmljYXInICAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBvYnNfdmVyaWZpY2FkbyAgICAgOnRhcmVhPT0ndmVyaWZpY2FyJyAgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidvcHRhdGl2bycpLFxyXG4gICAgICAgIH1cclxuICAgICAgICBsaWtlQXIocG9uZXIpLmZvckVhY2goKHZhbG9yLCBjYW1wbyk9PntcclxuICAgICAgICAgICAgaWYoIXZhbG9yKXtcclxuICAgICAgICAgICAgICAgIGRlcG90LnJvd0NvbnRyb2xzW2NhbXBvXS5yZW1vdmVBdHRyaWJ1dGUoJ215LW1hbmRhdG9yeScpXHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgZGVwb3Qucm93Q29udHJvbHNbY2FtcG9dLnNldEF0dHJpYnV0ZSgnbXktbWFuZGF0b3J5Jyx2YWxvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuICAgIHByZXBhcmU6IGZ1bmN0aW9uKCl7fVxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvblZlckFicmlyRW5jdWVzdGEgPSAob3BlcmF0aXZvOklkT3BlcmF0aXZvLHRhcmVhOklkVGFyZWEsZW5jdWVzdGE6bnVtYmVyLCBsYWJlbDpzdHJpbmcpPT57XHJcbiAgICB2YXIgdXAgPSB7XHJcbiAgICAgICAgb3BlcmF0aXZvOm9wZXJhdGl2byxcclxuICAgICAgICB0YXJlYTp0YXJlYSxcclxuICAgICAgICBlbmN1ZXN0YTplbmN1ZXN0YVxyXG4gICAgfVxyXG4gICAgbGV0IHZlciA9IG15LmNyZWF0ZUZvcmtlYWJsZUJ1dHRvbih7dzonYWJyaXJfZW5jdWVzdGEnLHVwLCBhdXRvcHJvY2VkOnRydWUsIGxhYmVsfSx7fSk7XHJcbiAgICByZXR1cm4gdmVyXHJcbn1cclxuXHJcbnZhciBjcmVhckJvdG9uZXNWZXJBYnJpclRhcmVhcyA9IGFzeW5jIChkZXBvdDpteU93bi5EZXBvdCwgZmllbGROYW1lOnN0cmluZywgbGFiZWw6J2FicmlyJ3wndmVyJyk9PntcclxuICAgIHRhcmVhcyA9IHRhcmVhcz90YXJlYXM6KGF3YWl0IG15T3duLmFqYXgudGFibGVfZGF0YSh7dGFibGU6IGB0YXJlYXNgLCBmaXhlZEZpZWxkczpbXX0pKTtcclxuICAgIHZhciBtaXNUYXJlYXMgPSB0YXJlYXMuZmlsdGVyKCh0YXJlYSk9PiEhdGFyZWEubWFpbl9mb3JtICYmIHRhcmVhLm9wZXJhdGl2bz09ZGVwb3Qucm93Lm9wZXJhdGl2byk7XHJcbiAgICBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdLmlubmVySFRNTD0nJztcclxuICAgIG1pc1RhcmVhcy5mb3JFYWNoKCh0YXJlYTp7dGFyZWE6c3RyaW5nLCBub21icmU6c3RyaW5nLCBtYWluX2Zvcm06SWRGb3JtdWxhcmlvfSk9PntcclxuICAgICAgICBsZXQgYnV0dG9uTGFiZWwgPSBgJHtsYWJlbH0gJHt0YXJlYS50YXJlYX1gO1xyXG4gICAgICAgIGxldCB2ZXIgPSBjcmVhckJvdG9uVmVyQWJyaXJFbmN1ZXN0YShcclxuICAgICAgICAgICAgZGVwb3Qucm93Lm9wZXJhdGl2byBhcyBJZE9wZXJhdGl2byxcclxuICAgICAgICAgICAgdGFyZWEudGFyZWEgYXMgSWRUYXJlYSwgXHJcbiAgICAgICAgICAgIE51bWJlcihkZXBvdC5yb3cuZW5jKSxcclxuICAgICAgICAgICAgYnV0dG9uTGFiZWxcclxuICAgICAgICApO1xyXG4gICAgICAgIHZlci5zdHlsZT0nbWFyZ2luOjBweCAycHg7JztcclxuICAgICAgICBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdLmFwcGVuZENoaWxkKHZlcik7XHJcbiAgICB9KVxyXG59XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5hYnJpcj17XHJcbiAgICBwcmVwYXJlOiAoX2RlcG90LCBfZmllbGROYW1lKT0+e30sXHJcbiAgICB1cGRhdGU6IChkZXBvdCwgZmllbGROYW1lKT0+e1xyXG4gICAgICAgIHZhciBsYWJlbDondmVyJ3wnYWJyaXInID0gZGVwb3Qucm93LmNhcmdhZG9fZG0/J3Zlcic6J2FicmlyJztcclxuICAgICAgICBjcmVhckJvdG9uZXNWZXJBYnJpclRhcmVhcyhkZXBvdCxmaWVsZE5hbWUsbGFiZWwpOyAvL25vIGVzcGVybyBwcm9tZXNhIHBvcnF1ZSBubyBlcyBuZWNlc2FyaW9cclxuICAgIH1cclxufTtcclxuXHJcbm15T3duLmNsaWVudFNpZGVzLmFicmlyUmVjZXBjaW9uPXtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpPT57fSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpPT57XHJcbiAgICAgICAgdmFyIGxhYmVsOid2ZXInfCdhYnJpcicgPSBkZXBvdC5yb3cuY2FyZ2Fkbz8ndmVyJzonYWJyaXInO1xyXG4gICAgICAgIGNyZWFyQm90b25lc1ZlckFicmlyVGFyZWFzKGRlcG90LGZpZWxkTmFtZSxsYWJlbCk7IC8vbm8gZXNwZXJvIHByb21lc2EgcG9ycXVlIG5vIGVzIG5lY2VzYXJpb1xyXG4gICAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb24gYm90b25DbGllbnRTaWRlRW5HcmlsbGEob3B0czogeyBub21icmVCb3Rvbjogc3RyaW5nLCBsbGFtYWRhOiAoZGVwb3Q6IG15T3duLkRlcG90KSA9PiBQcm9taXNlPGFueT4gfSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwcmVwYXJlOiBmdW5jdGlvbiAoZGVwb3Q6IG15T3duLkRlcG90LCBmaWVsZE5hbWU6IHN0cmluZykge1xyXG4gICAgICAgICAgICB2YXIgdGQgPSBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdO1xyXG4gICAgICAgICAgICB2YXIgYm90b24gPSBodG1sLmJ1dHRvbihvcHRzLm5vbWJyZUJvdG9uKS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoYm90b24pO1xyXG4gICAgICAgICAgICB2YXIgcmVzdGF1cmFyQm90b24gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBib3Rvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYm90b24udGV4dENvbnRlbnQgPSBvcHRzLm5vbWJyZUJvdG9uO1xyXG4gICAgICAgICAgICAgICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJvdG9uLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBib3Rvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9ICdwcm9jZXNhbmRvLi4uJztcclxuICAgICAgICAgICAgICAgIG9wdHMubGxhbWFkYShkZXBvdCkudGhlbihhc3luYyBmdW5jdGlvbihyZXN1bHQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0JyAmJiAnb2snIGluIHJlc3VsdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlc3VsdC5vayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JpZD1kZXBvdC5tYW5hZ2VyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgZ3JpZC5yZXRyaWV2ZVJvd0FuZFJlZnJlc2goZGVwb3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcG90LmRldGFpbENvbnRyb2xzLmluY29uc2lzdGVuY2lhcyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwb3QuZGV0YWlsQ29udHJvbHMuaW5jb25zaXN0ZW5jaWFzLmZvcmNlRGlzcGxheURldGFpbEdyaWQoe30pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9ICByZXN1bHQubWVzc2FnZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uLnRpdGxlID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyM4RjgnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChyZXN0YXVyYXJCb3RvbiwgMjUwMCk7XHJcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90b24udGV4dENvbnRlbnQgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjRkY4JztcclxuICAgICAgICAgICAgICAgICAgICBhbGVydFByb21pc2UoZXJyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL2lmICgoZGVwb3Qucm93LmNvbnNpc3RpZG89PW51bGwgICYmIGRlcG90LnJvdy5yZWEhPW51bGwpIHx8IGRlcG90LnJvdy5tb2RpZmljYWRvIT1udWxsICYmIGRlcG90LnJvdy5jb25zaXN0aWRvIT1udWxsICYmIGRlcG90LnJvdy5tb2RpZmljYWRvID5kZXBvdC5yb3cuY29uc2lzdGlkbyl7XHJcbiAgICAgICAgICAgIC8vICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvcj0nIzhDRidcclxuICAgICAgICAgICAgLy99XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICB9O1xyXG59XHJcblxyXG5cclxubXlPd24uY2xpZW50U2lkZXMuY29uc2lzdGlyID0gYm90b25DbGllbnRTaWRlRW5HcmlsbGEoe1xyXG4gICAgbm9tYnJlQm90b246ICdjb25zaXN0aXInLFxyXG4gICAgbGxhbWFkYTogZnVuY3Rpb24gKGRlcG90OiBteU93bi5EZXBvdCkge1xyXG4gICAgICAgIHZhciBmaWx0cm9SZWE9Y29uc2lzdGlyX2ZpbHRybyhkZXBvdC5yb3cudGFyZWEsIGRlcG90LnJvdy51dGxfcmVhLCBkZXBvdC5yb3cucmVhKVxyXG4gICAgICAgIHJldHVybiBmaWx0cm9SZWE/IG15T3duLmFqYXguY29uc2lzdGlyX2VuY3Vlc3RhKHtcclxuICAgICAgICAgICAgb3BlcmF0aXZvOiBkZXBvdC5yb3cub3BlcmF0aXZvLFxyXG4gICAgICAgICAgICBpZF9jYXNvOiBkZXBvdC5yb3cuZW5jXHJcbiAgICAgICAgfSk6IGFsZXJ0UHJvbWlzZSgnTGEgZW5jdWVzdGEgZGViZSB0ZW5lciBkYXRvIGVuIHJlYSBwYXJhIHBvZGVyIGNvbnNpc3RpcmxhLicpO1xyXG4gICAgfVxyXG59KTtcclxuXHJcbm15T3duLndTY3JlZW5zLmRlbW89YXN5bmMgZnVuY3Rpb24oX2FkZHJQYXJhbXMpe1xyXG4gICAgLy8gQHRzLWlnbm9yZSBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsIGdsb2JhbFxyXG4gICAgd2luZG93LmRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwoe21vZG9EZW1vOnRydWV9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gYXJyYXlGbGF0PFQ+KGFycmF5czpUW11bXSk6VFtde1xyXG4gICAgcmV0dXJuIChbXSBhcyBUW10pLmNvbmNhdC5hcHBseShbXSwgYXJyYXlzKTtcclxufVxyXG4iXX0=
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsMkNBQWdDO0lBQ2hDLG1FQUE2RDtJQUk3RCxrQ0FBa0M7SUFDbEMscUVBQW9GO0lBQ3BGLG1FQUF5STtJQUd6SSxrQkFBa0I7SUFFbEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0lBQzdCLElBQUksaUJBQWlCLEdBQWMsSUFBSSxDQUFDO0lBRXhDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBUSxFQUFFO1FBQ3BDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLElBQUc7WUFDQyxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQUEsT0FBTSxHQUFHLEVBQUM7WUFDUCxpQkFBaUIsR0FBQyxJQUFJLENBQUM7U0FDMUI7UUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsR0FBQztZQUMxQixVQUFVLEVBQUM7Z0JBQ1AsRUFBQyxJQUFJLEVBQUMsV0FBVyxFQUFHLFFBQVEsRUFBQyxNQUFNLEVBQUUsWUFBWSxFQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBQyxZQUFZLEVBQUM7Z0JBQzdGLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBTyxRQUFRLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQztnQkFDdEYsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFJLFFBQVEsRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sRUFBQzthQUMvRDtZQUNELFVBQVUsRUFBQyxJQUFJO1lBQ2YsVUFBVSxFQUFDLENBQU8sTUFBTSxFQUFDLEVBQUU7O2dCQUN2QixzQkFBc0I7Z0JBQ3RCLElBQUksRUFBQyxTQUFTLEVB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b20gXCJqcy10by1odG1sXCI7XHJcbmltcG9ydCB7dHJhZXJFc3RydWN0dXJhfSBmcm9tIFwiLi4vdW5sb2dnZWQvcmVkdXgtZm9ybXVsYXJpb1wiO1xyXG5pbXBvcnQgeyBDYXNvU3RhdGUsICBcclxuICAgIElkRm9ybXVsYXJpbywgRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMsIElkRW5jLCBJZE9wZXJhdGl2bywgSWRUYXJlYSxcclxufSBmcm9tIFwiLi4vdW5sb2dnZWQvdGlwb3NcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcbmltcG9ydCB7Z2V0RXN0cnVjdHVyYSwgc2V0UGVyc2lzdGlyRGF0b3NCeVBhc3N9IGZyb20gXCIuLi91bmxvZ2dlZC9ieXBhc3MtZm9ybXVsYXJpb1wiXHJcbmltcG9ydCB7Y2FyZ2FyRXN0cnVjdHVyYSwgY2FyZ2FySG9qYURlUnV0YSwgR0xPVkFSX0RBVE9TQllQQVNTLCBHTE9WQVJfRVNUUlVDVFVSQSwgR0xPVkFSX01PRE9CWVBBU1N9IGZyb20gXCIuLi91bmxvZ2dlZC9hYnJpci1mb3JtdWxhcmlvXCJcclxuaW1wb3J0IHsgT3BlcmF0aXZvIH0gZnJvbSBcIm1ldGEtZW5jXCI7XHJcblxyXG4vL1RPRE8gR0VORVJBTElaQVJcclxuXHJcbmNvbnN0IFRBUkVBX0RFRkFVTFQgPSAnZW5jdSc7XHJcbnZhciBPUEVSQVRJVk9fREVGQVVMVDpzdHJpbmd8bnVsbD0gbnVsbDtcclxuXHJcbm15T3duLmF1dG9TZXR1cEZ1bmN0aW9ucy5wdXNoKGFzeW5jICgpPT57XHJcbiAgICB2YXIgbXkgPSBteU93bjsgICAgXHJcbiAgICB0cnl7XHJcbiAgICAgICAgT1BFUkFUSVZPX0RFRkFVTFQgPSBhd2FpdCBteS5hamF4Lm9wZXJhdGl2b19nZXQoe30pO1xyXG4gICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgT1BFUkFUSVZPX0RFRkFVTFQ9bnVsbDtcclxuICAgIH1cclxuICAgIG15T3duLndTY3JlZW5zLmFicmlyX2VuY3Vlc3RhPXtcclxuICAgICAgICBwYXJhbWV0ZXJzOltcclxuICAgICAgICAgICAge25hbWU6J29wZXJhdGl2bycgLCB0eXBlTmFtZTondGV4dCcsIGRlZmF1bHRWYWx1ZTpPUEVSQVRJVk9fREVGQVVMVCwgcmVmZXJlbmNlczonb3BlcmF0aXZvcyd9LFxyXG4gICAgICAgICAgICB7bmFtZTondGFyZWEnICAgICAsIHR5cGVOYW1lOid0ZXh0JywgZGVmYXVsdFZhbHVlOlRBUkVBX0RFRkFVTFQsIHJlZmVyZW5jZXM6ICd0YXJlYXMnfSxcclxuICAgICAgICAgICAge25hbWU6J2VuY3Vlc3RhJyAgLCB0eXBlTmFtZTonaW50ZWdlcicsIGRlZmF1bHRWYWx1ZToxMzAwMzF9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBhdXRvcHJvY2VkOnRydWUsXHJcbiAgICAgICAgbWFpbkFjdGlvbjphc3luYyAocGFyYW1zKT0+e1xyXG4gICAgICAgICAgICAvLyBhbnRlczogYWJyaXJEaXJlY3RvXHJcbiAgICAgICAgICAgIHZhciB7b3BlcmF0aXZvLCBlbmN1ZXN0YSwgdGFyZWF9ID0gcGFyYW1zO1xyXG4gICAgICAgICAgICB2YXIgZXN0cnVjdHVyYSA9IGdldEVzdHJ1Y3R1cmEoKTtcclxuICAgICAgICAgICAgdmFyIGNhcmdhID0gYXdhaXQgbXkuYWpheC5kbV9mb3Jwa3JhaXpfY2FyZ2FyKHtvcGVyYXRpdm8sIHZpdmllbmRhOmVuY3Vlc3RhLCB0YXJlYX0pIGFzIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzO1xyXG4gICAgICAgICAgICBpZighZXN0cnVjdHVyYSB8fCAoZXN0cnVjdHVyYS50aW1lc3RhbXA/PzApIDwgY2FyZ2EudGltZXN0YW1wRXN0cnVjdHVyYSEgfHwgZXN0cnVjdHVyYS5vcGVyYXRpdm8gIT0gb3BlcmF0aXZvIHx8IG15LmNvbmZpZy5jb25maWcuZGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgZXN0cnVjdHVyYSA9IGF3YWl0IHRyYWVyRXN0cnVjdHVyYSh7b3BlcmF0aXZvfSlcclxuICAgICAgICAgICAgICAgIGNhcmdhckVzdHJ1Y3R1cmEoZXN0cnVjdHVyYSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHZhciBzdGF0ZTpDYXNvU3RhdGUgPSB7fVxyXG4gICAgICAgICAgICBpbmljaWFsaXphclN0YXRlKHN0YXRlKTtcclxuICAgICAgICAgICAgdmFyIGZvclBrUmFpeiA9IHtmb3JtdWxhcmlvOmNhcmdhLmluZm9ybWFjaW9uSGRyW2VuY3Vlc3RhIGFzIElkRW5jXS50YXJlYS5tYWluX2Zvcm0sIHZpdmllbmRhOmVuY3Vlc3RhfTtcclxuICAgICAgICAgICAgc2V0UGVyc2lzdGlyRGF0b3NCeVBhc3MoXHJcbiAgICAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBwZXJzaXN0aXJEYXRvc0J5UGFzc0VuQmFzZURlRGF0b3MocGVyc2lzdGVudGVzOkRhdG9zQnlQYXNzUGVyc2lzdGlibGVzKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihwZXJzaXN0ZW50ZXMuc29sb0xlY3R1cmEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFc3TDoSBpbnRlbnRhbmRvIG1vZGlmaWNhciB1bmEgZW5jdWVzdGEgYWJpZXJ0YSBjb21vIHNvbG8gbGVjdHVyYSwgbm8gc2UgZ3VhcmRhcm9uIGxvcyBjYW1iaW9zXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IG15LmFqYXguZG1fZm9ycGtyYWl6X2Rlc2Nhcmdhcih7b3BlcmF0aXZvLCBwZXJzaXN0ZW50ZXN9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICBpZighY2FyZ2EucmVzcHVlc3Rhcy52aXZpZW5kYXNbZm9yUGtSYWl6LnZpdmllbmRhIV0pe1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzZSBlbmN1ZW50cmEgbGEgdml2aWVuZGEgJHtmb3JQa1JhaXoudml2aWVuZGEhfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhcmdhckhvamFEZVJ1dGEoey4uLmNhcmdhLCBtb2RvQWxtYWNlbmFtaWVudG86J3Nlc3Npb24nfSk7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgZGVzcGxlZ2FyRm9ybXVsYXJpb0FjdHVhbCh7b3BlcmF0aXZvLCBtb2RvRGVtbzpmYWxzZSwgZm9yUGtSYWl6fSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIG15T3duLndTY3JlZW5zLm9idGVuZXJfdGVsZWZvbm89e1xyXG4gICAgICAgIHBhcmFtZXRlcnM6W10sXHJcbiAgICAgICAgYXV0b3Byb2NlZDp0cnVlLFxyXG4gICAgICAgIG1haW5BY3Rpb246YXN5bmMgKF9wYXJhbXMpPT57XHJcbiAgICAgICAgICAgIC8vIGFudGVzOiBhYnJpckRpcmVjdG9cclxuICAgICAgICAgICAgdmFyIHtvcGVyYXRpdm8sIHRhcmVhfSA9IHtvcGVyYXRpdm86IE9QRVJBVElWT19ERUZBVUxULCB0YXJlYTogVEFSRUFfREVGQVVMVH07XHJcbiAgICAgICAgICAgIGxldCBlbmN1ZXN0YSA9IHBhcnNlSW50KGF3YWl0IG15LmFqYXguZ2V0X3JhbmRvbV9mcmVlX2Nhc2Uoe29wZXJhdGl2b30pKTsgXHJcbiAgICAgICAgICAgIGF3YWl0IG15T3duLndTY3JlZW5zLmFicmlyX2VuY3Vlc3RhLm1haW5BY3Rpb24oe29wZXJhdGl2bywgZW5jdWVzdGEsIHRhcmVhfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIG15T3duLndTY3JlZW5zLmNvbnNpc3Rpcl9lbmN1ZXN0YT17XHJcbiAgICAgICAgcGFyYW1ldGVyczpbXHJcbiAgICAgICAgICAgIHtuYW1lOidvcGVyYXRpdm8nICwgdHlwZU5hbWU6J3RleHQnLCBkZWZhdWx0VmFsdWU6T1BFUkFUSVZPX0RFRkFVTFQsIHJlZmVyZW5jZXM6J29wZXJhdGl2b3MnfSxcclxuICAgICAgICAgICAge25hbWU6J3RhcmVhJyAgICAgLCB0eXBlTmFtZTondGV4dCd9LFxyXG4gICAgICAgICAgICB7bmFtZTonZW5jdWVzdGEnICAsIHR5cGVOYW1lOidpbnRlZ2VyJ31cclxuICAgICAgICBdLFxyXG4gICAgICAgIGF1dG9wcm9jZWQ6dHJ1ZSxcclxuICAgICAgICBtYWluQWN0aW9uOmFzeW5jIChwYXJhbXMpPT57XHJcbiAgICAgICAgICAgIHZhciB7b3BlcmF0aXZvLCB0YXJlYSwgZW5jdWVzdGEgfSA9IHBhcmFtcztcclxuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IG15T3duLmFqYXguY29uc2lzdGlyX2VuY3Vlc3RhKHtcclxuICAgICAgICAgICAgICAgIG9wZXJhdGl2bzogb3BlcmF0aXZvLFxyXG4gICAgICAgICAgICAgICAgaWRfY2FzbzogZW5jdWVzdGFcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmKHJlc3VsdC5vayl7XHJcbiAgICAgICAgICAgICAgICB2YXIgZml4ZWRGaWVsZHMgPSBbXTtcclxuICAgICAgICAgICAgICAgIGZpeGVkRmllbGRzLnB1c2goe2ZpZWxkTmFtZTogJ29wZXJhdGl2bycsIHZhbHVlOiBvcGVyYXRpdm99KTtcclxuICAgICAgICAgICAgICAgIGZpeGVkRmllbGRzLnB1c2goe2ZpZWxkTmFtZTogJ3ZpdmllbmRhJywgdmFsdWU6IGVuY3Vlc3RhfSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgbWFpbkxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2xheW91dCcpITtcclxuICAgICAgICAgICAgICAgIHZhciBkaXZHcmlsbGEgPSBodG1sLmRpdih7aWQ6J2luY29uc2lzdGVuY2lhcyd9KS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgICAgIG1haW5MYXlvdXQuaW5zZXJ0QmVmb3JlKGRpdkdyaWxsYSwgbWFpbkxheW91dC5maXJzdENoaWxkKTtcclxuICAgICAgICAgICAgICAgIG1haW5MYXlvdXQuaW5zZXJ0QmVmb3JlKFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWFyQm90b25WZXJBYnJpckVuY3Vlc3RhKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpdm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmVhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmN1ZXN0YSwgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGBpciBhIGVuY3Vlc3RhICR7ZW5jdWVzdGF9YFxyXG4gICAgICAgICAgICAgICAgICAgICksIFxyXG4gICAgICAgICAgICAgICAgICAgIG1haW5MYXlvdXQuZmlyc3RDaGlsZFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIG15LnRhYmxlR3JpZChcImluY29uc2lzdGVuY2lhc1wiLCBkaXZHcmlsbGEse3RhYmxlRGVmOnt9LGZpeGVkRmllbGRzOiBmaXhlZEZpZWxkc30pO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0pO1xyXG5cclxuXHJcbi8vcXVpdGEgYm9vdHN0cmFwIGRlbCBoZWFkIHBhcmEgcXVlIG5vIHJvbXBhIGxvcyBlc3RpbG9zIGRlIEJFUGx1cyAoc29sbyBzZSB1c2EgYm9vdHN0cmFwIGVuIGVsIGZvcm0pXHJcbnZhciBsaW5rTm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tocmVmPVwiY3NzL2Jvb3RzdHJhcC5taW4uY3NzXCJdJyk7XHJcbmxpbmtOb2RlWzBdPy5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChsaW5rTm9kZVswXSk7XHJcblxyXG5mdW5jdGlvbiBjb25zaXN0aXJfZmlsdHJvKHRhcmVhLCByZWFfdGVtLCByZWEpe1xyXG4gICAgcmV0dXJuIHRhcmVhP3JlYV90ZW06cmVhO1xyXG59O1xyXG5cclxudmFyIHRhcmVhczphbnkgPSBudWxsO1xyXG5cclxuZnVuY3Rpb24gaHRtbE51bWVybyhudW06bnVtYmVyKXtcclxuICAgIHJldHVybiBodG1sLnNwYW4oe2NsYXNzOidudW1lcm8nfSwnJysobnVtPz8nJykpXHJcbn1cclxuXHJcbnZhciBwZXJzaXN0aXJFbk1lbW9yaWEgPSBhc3luYyAocGVyc2lzdGVudGVzOkRhdG9zQnlQYXNzUGVyc2lzdGlibGVzKSA9PiB7XHJcbiAgICB2YXIge21vZG9BbG1hY2VuYW1pZW50b30gPSBwZXJzaXN0ZW50ZXNcclxuICAgICAgICBpZihtb2RvQWxtYWNlbmFtaWVudG89PSdsb2NhbCcpe1xyXG4gICAgICAgICAgICBteS5zZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MsIHBlcnNpc3RlbnRlcylcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbXkuc2V0U2Vzc2lvblZhcihHTE9WQVJfREFUT1NCWVBBU1MsIHBlcnNpc3RlbnRlcylcclxuICAgICAgICB9XHJcbiAgICAgICAgbXkuc2V0U2Vzc2lvblZhcihHTE9WQVJfTU9ET0JZUEFTUywgbW9kb0FsbWFjZW5hbWllbnRvKVxyXG59XHJcblxyXG5hc3luYyBmdW5jdGlvbiBzaW5jcm9uaXphckRhdG9zKHBlcnNpc3RlbnRlczpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlc3xudWxsKXtcclxuICAgIHZhciBkYXRvcyA9IGF3YWl0IG15LmFqYXguZG1fc2luY3Jvbml6YXIoe3BlcnNpc3RlbnRlc30pO1xyXG4gICAgdmFyIG9wZXJhdGl2byA9IGRhdG9zLm9wZXJhdGl2bztcclxuICAgIHBlcnNpc3RpckVuTWVtb3JpYSh7Li4uZGF0b3MsIG1vZG9BbG1hY2VuYW1pZW50bzonbG9jYWwnfSk7XHJcbiAgICB2YXIgZXN0cnVjdHVyYSA9IGF3YWl0IHRyYWVyRXN0cnVjdHVyYSh7b3BlcmF0aXZvfSlcclxuICAgIG15LnNldExvY2FsVmFyKEdMT1ZBUl9FU1RSVUNUVVJBLCBlc3RydWN0dXJhKTtcclxuICAgIHJldHVybiBkYXRvcztcclxufVxyXG5cclxuXHJcblxyXG52YXIgbW9zdHJhckluZm9Mb2NhbCA9IChkaXZBdmlzb1NpbmNybzpIVE1MRGl2RWxlbWVudCwgdGl0dWxvOnN0cmluZywgbnJvU2luY3JvOm51bWJlcnxudWxsLCBtb3N0cmFyTGlua0hkcjogYm9vbGVhbik9PntcclxuICAgIGxldCBkYXRvc0J5UGFzcyA9IG15LmdldExvY2FsVmFyKEdMT1ZBUl9EQVRPU0JZUEFTUyk7XHJcbiAgICBpZihkYXRvc0J5UGFzcyl7XHJcbiAgICAgICAgZGl2QXZpc29TaW5jcm8uYXBwZW5kKGh0bWwuZGl2KHtpZDonYXZpc28tc2luY3JvJ30sIFtcclxuICAgICAgICAgICAgbnJvU2luY3JvP2h0bWwucChbXCJOw7ptZXJvIGRlIHNpbmNyb25pemFjacOzbjogXCIsIGh0bWwuYihcIlwiK25yb1NpbmNyby50b1N0cmluZygpKV0pOm51bGwsXHJcbiAgICAgICAgICAgIGh0bWwuaDQodGl0dWxvKSxcclxuICAgICAgICAgICAgaHRtbC5wKFtodG1sTnVtZXJvKGxpa2VBcihkYXRvc0J5UGFzcy5jYXJnYXMpLmFycmF5KCkubGVuZ3RoKSwnIGFyZWFzOiAnLGxpa2VBcihkYXRvc0J5UGFzcy5jYXJnYXMpLmtleXMoKS5qb2luKCcsICcpXSksXHJcbiAgICAgICAgICAgIGh0bWwucChbaHRtbE51bWVybyhsaWtlQXIoZGF0b3NCeVBhc3MucmVzcHVlc3Rhcy52aXZpZW5kYXMpLmFycmF5KCkubGVuZ3RoKSwnIHZpdmllbmRhcyddKSxcclxuICAgICAgICAgICAgbW9zdHJhckxpbmtIZHI/aHRtbC5hKHtocmVmOicuL2NhbXBvJ30sW2h0bWwuYignSVIgQSBMQSBIT0pBIERFIFJVVEEnKV0pOm51bGxcclxuICAgICAgICBdKS5jcmVhdGUoKSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBkaXZBdmlzb1NpbmNyby5hcHBlbmRDaGlsZChodG1sLmRpdih7Y2xhc3M6J2F2aXNvJ30sW1xyXG4gICAgICAgICAgICBodG1sLmg0KCdTaXN0ZW1hIHZhY8OtbycpLFxyXG4gICAgICAgICAgICBodG1sLnAoJ05vIGhheSBpbmZvcm1hY2nDs24gZGUgZm9ybXVsYXJpb3MnKSxcclxuICAgICAgICAgICAgaHRtbC5wKCdObyBoYXkgaW5mb3JtYWNpw7NuIGRlIHZpdmllbmRhcycpXHJcbiAgICAgICAgXSkuY3JlYXRlKCkpO1xyXG4gICAgfVxyXG59XHJcbnZhciBwcm9jZWRlclNpbmNyb0Z1biA9IGFzeW5jIChidXR0b246SFRNTEJ1dHRvbkVsZW1lbnQsIGRpdkF2aXNvU2luY3JvOkhUTUxEaXZFbGVtZW50KT0+e1xyXG4gICAgYnV0dG9uLmRpc2FibGVkPXRydWU7XHJcbiAgICBidXR0b24uY2xhc3NOYW1lPSdkb3dubG9hZC1kbS1idXR0b24nO1xyXG4gICAgZGl2QXZpc29TaW5jcm8uaW5uZXJIVE1MPScnO1xyXG4gICAgdHJ5e1xyXG4gICAgICAgIHZhciBkYXRvc0J5UGFzczpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyA9IG15LmdldExvY2FsVmFyKEdMT1ZBUl9EQVRPU0JZUEFTUyk7XHJcbiAgICAgICAgdmFyIGRhdG9zID0gYXdhaXQgc2luY3Jvbml6YXJEYXRvcyhkYXRvc0J5UGFzcyk7XHJcbiAgICAgICAgbW9zdHJhckluZm9Mb2NhbChkaXZBdmlzb1NpbmNybywgJ2RhdG9zIHJlY2liaWRvcycsIGRhdG9zLm51bV9zaW5jcm8sIHRydWUpXHJcbiAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICBhbGVydFByb21pc2UoZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgdGhyb3cgZXJyXHJcbiAgICB9ZmluYWxseXtcclxuICAgICAgICBidXR0b24uZGlzYWJsZWQ9ZmFsc2U7XHJcbiAgICAgICAgYnV0dG9uLmNsYXNzTmFtZT0nZG93bmxvYWQtZG0tYnV0dG9uLWNvbnQnO1xyXG4gICAgfVxyXG59XHJcbm15T3duLndTY3JlZW5zLnNpbmNyb25pemFyX2RtPWFzeW5jIGZ1bmN0aW9uKCl7XHJcbiAgICB2YXIgbWFpbkxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2xheW91dCcpITtcclxuICAgIHZhciBwcm9jZWRlckJ1dHRvbiA9IGh0bWwuYnV0dG9uKHtjbGFzczonZG93bmxvYWQtZG0tYnV0dG9uLWNvbnQnfSwncHJvY2VkZXIg4oeSJykuY3JlYXRlKCk7XHJcbiAgICB2YXIgZGl2QXZpc29TaW5jcm86SFRNTERpdkVsZW1lbnQ9aHRtbC5kaXYoKS5jcmVhdGUoKTtcclxuICAgIG1vc3RyYXJJbmZvTG9jYWwobWFpbkxheW91dCBhcyBIVE1MRGl2RWxlbWVudCwgJ2luZm9ybWFjacOzbiBhIHRyYW5zbWl0aXInLCBudWxsLCBmYWxzZSlcclxuICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQocHJvY2VkZXJCdXR0b24pO1xyXG4gICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChkaXZBdmlzb1NpbmNybyk7XHJcbiAgICBwcm9jZWRlckJ1dHRvbi5vbmNsaWNrID0gKCk9PnByb2NlZGVyU2luY3JvRnVuKHByb2NlZGVyQnV0dG9uLCBkaXZBdmlzb1NpbmNybylcclxufTtcclxuXHJcbmZ1bmN0aW9uIGluaWNpYWxpemFyU3RhdGUoc3RhdGU6IENhc29TdGF0ZSkge1xyXG4gICAgc3RhdGUubW9kbyA9IHtcclxuICAgICAgICBkZW1vOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIC8vIE9KTyBzdGF0ZS5vcGNpb25lcyBzZSBtb2RpZmljYSBhY8OhIHkgZW4gb3RybyBsYWRvIGNvbiBlc3RlIG1pc21vIGNhcnRlbFxyXG4gICAgc3RhdGUub3BjaW9uZXMgPSB7XHJcbiAgICAgICAgYmllbnZlbmlkbzogdHJ1ZSxcclxuICAgICAgICBmb3JQazogbnVsbCxcclxuICAgICAgICBwaWxhRm9yUGs6IFtdLFxyXG4gICAgICAgIG1vZG9EZXNwbGllZ3VlOiBcInJlbGV2YW1pZW50b1wiLFxyXG4gICAgICAgIG1vZG9EaXJlY3RvOiBmYWxzZSxcclxuICAgICAgICBtb2RvQm9ycmFyUmVzcHVlc3RhOiBudWxsLFxyXG4gICAgICAgIGNvbkNhbXBvT3BjaW9uZXM6IGZhbHNlLFxyXG4gICAgICAgIHNhbHRvQXV0b21hdGljbzogdHJ1ZSxcclxuICAgIH07XHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHN0YXRlLmZlZWRiYWNrUm93VmFsaWRhdG9yID0ge307XHJcbn1cclxuLypcclxuZnVuY3Rpb24gbW9zdHJhckRhdG9zUGVyc29uYShoYXlEYXRvczpib29sZWFuLCBkYXRvczphbnksIGRpdlJlc3VsdDpIVE1MRGl2RWxlbWVudCl7XHJcbiAgICAvL1RPRE86IEVWQUxVQVIgU0kgQ09OVklFTkUgVFJBRVJMTyBERSBMQSBCQVNFXHJcbiAgICB2YXIgdGlwb3NEb2N1bWVudG8gPSBbJ0ROSSBhcmdlbnRpbm8nLCAnRG9jdW1lbnRvIGV4dHJhbmplcm8nLCAnTm8gdGllbmUgZG9jdW1lbnRvJywgJ090cm8nXTtcclxuICAgIHZhciBwYWlzRG9jdW1lbnRvID0gWydVcnVndWF5JywgJ1BhcmFndWF5JywgJ0JyYXNpbCcsICdCb2xpdmlhJywgJ0NoaWxlJywgJ1BlcsO6JywgJ1ZlbmV6dWVsYScsICdPdHJvJ107XHJcbiAgICBkaXZSZXN1bHQuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgaGF5RGF0b3M/XHJcbiAgICAgICAgICAgIGh0bWwuZGl2KHtjbGFzczonZGF0b3MtcGVyc29uYS1jYXJnYWRhJ30sW1xyXG4gICAgICAgICAgICAgICAgaHRtbC5oMihcIkRhdG9zIHBlcnNvbmFcIiksXHJcbiAgICAgICAgICAgICAgICBodG1sLmRpdih7Y2xhc3M6J2ZpY2hhLXBlcnNvbmEnfSxbXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoW2h0bWwubGFiZWwoJ0FwZWxsaWRvOiAnKSwgZGF0b3MuYXBlbGxpZG9dKSxcclxuICAgICAgICAgICAgICAgICAgICBodG1sLmRpdihbaHRtbC5sYWJlbCgnTm9tYnJlczogJyksIGRhdG9zLm5vbWJyZXNdKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy50aXBvRG9jdW1lbnRvP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmRpdihbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sLmxhYmVsKCdUaXBvIGRvY3VtZW50bzogJyksIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlwb3NEb2N1bWVudG9bZGF0b3MudGlwb0RvY3VtZW50by0xXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdG9zLnRpcG9Eb2N1bWVudG89PTQgJiYgZGF0b3MudGlwb0RvY3VtZW50b0VzcGVjaWZpY2Fkbz8nICgnKyBkYXRvcy50aXBvRG9jdW1lbnRvRXNwZWNpZmljYWRvKycpJzonJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXSlcclxuICAgICAgICAgICAgICAgICAgICA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLnRpcG9Eb2N1bWVudG89PTIgJiYgZGF0b3MucGFpc0RvY3VtZW50bz9cclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5sYWJlbCgnUGFpczogJyksIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpc0RvY3VtZW50b1tkYXRvcy5wYWlzRG9jdW1lbnRvLTFdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0b3MucGFpc0RvY3VtZW50bz09OCAmJiBkYXRvcy5wYWlzRG9jdW1lbnRvRXNwZWNpZmljYWRvPycgKCcrZGF0b3MucGFpc0RvY3VtZW50b0VzcGVjaWZpY2FkbysnKSc6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgICAgICAgICAgICAgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy50aXBvRG9jdW1lbnRvIT0zICYmIGRhdG9zLnRpcG9Eb2N1bWVudG8/aHRtbC5kaXYoW2h0bWwubGFiZWwoJ07CuiBEb2N1bWVudG86ICcpLCBkYXRvcy5kb2N1bWVudG9dKTonJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy5jZWx1bGFyP2h0bWwuZGl2KFtodG1sLmxhYmVsKCdDZWwuOiAnKSwgZGF0b3MuY2VsdWxhcl0pOicnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdG9zLmVtYWlsP2h0bWwuZGl2KFtodG1sLmxhYmVsKCdFbWFpbDogJyksIGRhdG9zLmVtYWlsXSk6JycsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0b3MudGVsZWZvbm9BbHRlcm5hdGl2bz9odG1sLmRpdihbaHRtbC5sYWJlbCgnVGVsLiBhbHRlcm5hdGl2bzogJyksIGRhdG9zLnRlbGVmb25vQWx0ZXJuYXRpdm9dKTonJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRvcy5vYnNlcnZhY2lvbmVzP2h0bWwuZGl2KFtodG1sLmxhYmVsKCdPYnNlcnZhY2lvbmVzOiAnKSwgZGF0b3Mub2JzZXJ2YWNpb25lc10pOicnLFxyXG4gICAgICAgICAgICAgICAgXSlcclxuICAgICAgICAgICAgXSkuY3JlYXRlKClcclxuICAgICAgICA6XHJcbiAgICAgICAgICAgIGh0bWwucChcIk5vIHNlIGVuY29udHLDsyB1bmEgZW5jdWVzdGEgcGFyYSBsYSBldGlxdWV0YSBjYXJnYWRhXCIpLmNyZWF0ZSgpXHJcbiAgICApXHJcbn1cclxuKi9cclxubXlPd24uY2xpZW50U2lkZXMudGFyZWFzVGVtUm93PXtcclxuICAgIHVwZGF0ZTooZGVwb3QpPT57XHJcbiAgICAgICAgdmFyIHRhcmVhOiduYWRhJ3wncHJlYXNpZ25hcid8J2Nhcmdhcid8J3JlYWxpemFyJ3wndmVyaWZpY2FyJz0nbmFkYSc7XHJcbiAgICAgICAgdmFyIHJvdz1kZXBvdC5yb3c7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHZhciBpZHBlcj1teS5jb25maWcuaWRwZXI7XHJcbiAgICAgICAgdmFyIGVzcGVyYXI6Ym9vbGVhbj1mYWxzZTtcclxuICAgICAgICBpZihyb3cuaGFiaWxpdGFkYSl7XHJcbiAgICAgICAgICAgIGlmKCFyb3cuYXNpZ25hbnRlICYmICFyb3cuYXNpZ25hZG8pe1xyXG4gICAgICAgICAgICAgICAgdGFyZWE9J3ByZWFzaWduYXInO1xyXG4gICAgICAgICAgICAgICAgZXNwZXJhcj10cnVlO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZighcm93LmFzaWduYWRvIHx8ICFyb3cuZmVjaGFfYXNpZ25hY2lvbiB8fCAhcm93Lm9wZXJhY2lvbil7XHJcbiAgICAgICAgICAgICAgICB0YXJlYT0nY2FyZ2FyJztcclxuICAgICAgICAgICAgICAgIGVzcGVyYXI9cm93LmFzaWduYW50ZSE9aWRwZXI7XHJcbiAgICAgICAgICAgIH1lbHNlIGlmKCFyb3cucmVhKXtcclxuICAgICAgICAgICAgICAgIHRhcmVhPSdyZWFsaXphcic7XHJcbiAgICAgICAgICAgICAgICBlc3BlcmFyPXJvdy5hc2lnbmFkbyE9aWRwZXI7XHJcbiAgICAgICAgICAgIH1lbHNlIGlmKCFyb3cudmVyaWZpY2Fkbyl7XHJcbiAgICAgICAgICAgICAgICB0YXJlYT0ndmVyaWZpY2FyJztcclxuICAgICAgICAgICAgICAgIGVzcGVyYXI9cm93LmFzaWduYW50ZSE9aWRwZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHBvbmVyPXtcclxuICAgICAgICAgICAgYXNpZ25hbnRlICAgICAgICAgIDp0YXJlYT09J3ByZWFzaWduYXInICYmIChlc3BlcmFyPydlc3BlcmFyJzonbm9ybWFsJyksXHJcbiAgICAgICAgICAgIGFzaWduYWRvICAgICAgICAgICA6dGFyZWE9PSdjYXJnYXInICAgICAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J25vcm1hbCcpLFxyXG4gICAgICAgICAgICBmZWNoYV9hc2lnbmFjaW9uICAgOnRhcmVhPT0nY2FyZ2FyJyAgICAgJiYgKGVzcGVyYXI/J2VzcGVyYXInOidub3JtYWwnKSxcclxuICAgICAgICAgICAgb3BlcmFjaW9uICAgICAgICAgIDp0YXJlYT09J2NhcmdhcicgICAgICYmIChlc3BlcmFyPydlc3BlcmFyJzonbm9ybWFsJyksXHJcbiAgICAgICAgICAgIGNhcmdhX29ic2VydmFjaW9uZXM6KHRhcmVhPT0nY2FyZ2FyJyAgICAgfHwgdGFyZWE9PSdyZWFsaXphcicgJiYgIXJvdy5jYXJnYWRvICYmICFyb3cucmVhICkgJiYgcm93LmFzaWduYW50ZT09aWRwZXIgJiYgJ29wdGF0aXZvJyxcclxuICAgICAgICAgICAgdmVyaWZpY2FkbyAgICAgICAgIDp0YXJlYT09J3ZlcmlmaWNhcicgICYmIChlc3BlcmFyPydlc3BlcmFyJzonbm9ybWFsJyksXHJcbiAgICAgICAgICAgIG9ic192ZXJpZmljYWRvICAgICA6dGFyZWE9PSd2ZXJpZmljYXInICAmJiAoZXNwZXJhcj8nZXNwZXJhcic6J29wdGF0aXZvJyksXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpa2VBcihwb25lcikuZm9yRWFjaCgodmFsb3IsIGNhbXBvKT0+e1xyXG4gICAgICAgICAgICBpZighdmFsb3Ipe1xyXG4gICAgICAgICAgICAgICAgZGVwb3Qucm93Q29udHJvbHNbY2FtcG9dLnJlbW92ZUF0dHJpYnV0ZSgnbXktbWFuZGF0b3J5JylcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBkZXBvdC5yb3dDb250cm9sc1tjYW1wb10uc2V0QXR0cmlidXRlKCdteS1tYW5kYXRvcnknLHZhbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgcHJlcGFyZTogZnVuY3Rpb24oKXt9XHJcbn1cclxuXHJcbnZhciBjcmVhckJvdG9uVmVyQWJyaXJFbmN1ZXN0YSA9IChvcGVyYXRpdm86SWRPcGVyYXRpdm8sdGFyZWE6SWRUYXJlYSxlbmN1ZXN0YTpudW1iZXIsIGxhYmVsOnN0cmluZyk9PntcclxuICAgIHZhciB1cCA9IHtcclxuICAgICAgICBvcGVyYXRpdm86b3BlcmF0aXZvLFxyXG4gICAgICAgIHRhcmVhOnRhcmVhLFxyXG4gICAgICAgIGVuY3Vlc3RhOmVuY3Vlc3RhXHJcbiAgICB9XHJcbiAgICBsZXQgdmVyID0gbXkuY3JlYXRlRm9ya2VhYmxlQnV0dG9uKHt3OidhYnJpcl9lbmN1ZXN0YScsdXAsIGF1dG9wcm9jZWQ6dHJ1ZSwgbGFiZWx9LHt9KTtcclxuICAgIHJldHVybiB2ZXJcclxufVxyXG5cclxudmFyIGNyZWFyQm90b25lc1ZlckFicmlyVGFyZWFzID0gYXN5bmMgKGRlcG90Om15T3duLkRlcG90LCBmaWVsZE5hbWU6c3RyaW5nLCBsYWJlbDonYWJyaXInfCd2ZXInKT0+e1xyXG4gICAgdGFyZWFzID0gdGFyZWFzP3RhcmVhczooYXdhaXQgbXlPd24uYWpheC50YWJsZV9kYXRhKHt0YWJsZTogYHRhcmVhc2AsIGZpeGVkRmllbGRzOltdfSkpO1xyXG4gICAgdmFyIG1pc1RhcmVhcyA9IHRhcmVhcy5maWx0ZXIoKHRhcmVhKT0+ISF0YXJlYS5tYWluX2Zvcm0gJiYgdGFyZWEub3BlcmF0aXZvPT1kZXBvdC5yb3cub3BlcmF0aXZvKTtcclxuICAgIGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV0uaW5uZXJIVE1MPScnO1xyXG4gICAgbWlzVGFyZWFzLmZvckVhY2goKHRhcmVhOnt0YXJlYTpzdHJpbmcsIG5vbWJyZTpzdHJpbmcsIG1haW5fZm9ybTpJZEZvcm11bGFyaW99KT0+e1xyXG4gICAgICAgIGxldCBidXR0b25MYWJlbCA9IGAke2xhYmVsfSAke3RhcmVhLnRhcmVhfWA7XHJcbiAgICAgICAgbGV0IHZlciA9IGNyZWFyQm90b25WZXJBYnJpckVuY3Vlc3RhKFxyXG4gICAgICAgICAgICBkZXBvdC5yb3cub3BlcmF0aXZvIGFzIElkT3BlcmF0aXZvLFxyXG4gICAgICAgICAgICB0YXJlYS50YXJlYSBhcyBJZFRhcmVhLCBcclxuICAgICAgICAgICAgTnVtYmVyKGRlcG90LnJvdy5lbmMpLFxyXG4gICAgICAgICAgICBidXR0b25MYWJlbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdmVyLnN0eWxlPSdtYXJnaW46MHB4IDJweDsnO1xyXG4gICAgICAgIGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV0uYXBwZW5kQ2hpbGQodmVyKTtcclxuICAgIH0pXHJcbn1cclxuXHJcbm15T3duLmNsaWVudFNpZGVzLmFicmlyPXtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpPT57fSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpPT57XHJcbiAgICAgICAgdmFyIGxhYmVsOid2ZXInfCdhYnJpcicgPSBkZXBvdC5yb3cuY2FyZ2Fkb19kbT8ndmVyJzonYWJyaXInO1xyXG4gICAgICAgIGNyZWFyQm90b25lc1ZlckFicmlyVGFyZWFzKGRlcG90LGZpZWxkTmFtZSxsYWJlbCk7IC8vbm8gZXNwZXJvIHByb21lc2EgcG9ycXVlIG5vIGVzIG5lY2VzYXJpb1xyXG4gICAgfVxyXG59O1xyXG5cclxubXlPd24uY2xpZW50U2lkZXMuYWJyaXJSZWNlcGNpb249e1xyXG4gICAgcHJlcGFyZTogKF9kZXBvdCwgX2ZpZWxkTmFtZSk9Pnt9LFxyXG4gICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSk9PntcclxuICAgICAgICB2YXIgbGFiZWw6J3Zlcid8J2FicmlyJyA9IGRlcG90LnJvdy5jYXJnYWRvPyd2ZXInOidhYnJpcic7XHJcbiAgICAgICAgY3JlYXJCb3RvbmVzVmVyQWJyaXJUYXJlYXMoZGVwb3QsZmllbGROYW1lLGxhYmVsKTsgLy9ubyBlc3Blcm8gcHJvbWVzYSBwb3JxdWUgbm8gZXMgbmVjZXNhcmlvXHJcbiAgICB9XHJcbn07XHJcblxyXG5mdW5jdGlvbiBib3RvbkNsaWVudFNpZGVFbkdyaWxsYShvcHRzOiB7IG5vbWJyZUJvdG9uOiBzdHJpbmcsIGxsYW1hZGE6IChkZXBvdDogbXlPd24uRGVwb3QpID0+IFByb21pc2U8YW55PiB9KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByZXBhcmU6IGZ1bmN0aW9uIChkZXBvdDogbXlPd24uRGVwb3QsIGZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgIHZhciBib3RvbiA9IGh0bWwuYnV0dG9uKG9wdHMubm9tYnJlQm90b24pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChib3Rvbik7XHJcbiAgICAgICAgICAgIHZhciByZXN0YXVyYXJCb3RvbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGJvdG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9IG9wdHMubm9tYnJlQm90b247XHJcbiAgICAgICAgICAgICAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnJztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYm90b24ub25jbGljayA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGJvdG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gJ3Byb2Nlc2FuZG8uLi4nO1xyXG4gICAgICAgICAgICAgICAgb3B0cy5sbGFtYWRhKGRlcG90KS50aGVuKGFzeW5jIGZ1bmN0aW9uKHJlc3VsdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYocmVzdWx0ICYmIHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnICYmICdvaycgaW4gcmVzdWx0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzdWx0Lm9rKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncmlkPWRlcG90Lm1hbmFnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBncmlkLnJldHJpZXZlUm93QW5kUmVmcmVzaChkZXBvdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVwb3QuZGV0YWlsQ29udHJvbHMuaW5jb25zaXN0ZW5jaWFzKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBvdC5kZXRhaWxDb250cm9scy5pbmNvbnNpc3RlbmNpYXMuZm9yY2VEaXNwbGF5RGV0YWlsR3JpZCh7fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gIHJlc3VsdC5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b24udGl0bGUgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzhGOCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlc3RhdXJhckJvdG9uLCAyNTAwKTtcclxuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNGRjgnO1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZShlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vaWYgKChkZXBvdC5yb3cuY29uc2lzdGlkbz09bnVsbCAgJiYgZGVwb3Qucm93LnJlYSE9bnVsbCkgfHwgZGVwb3Qucm93Lm1vZGlmaWNhZG8hPW51bGwgJiYgZGVwb3Qucm93LmNvbnNpc3RpZG8hPW51bGwgJiYgZGVwb3Qucm93Lm1vZGlmaWNhZG8gPmRlcG90LnJvdy5jb25zaXN0aWRvKXtcclxuICAgICAgICAgICAgLy8gICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yPScjOENGJ1xyXG4gICAgICAgICAgICAvL31cclxuICAgICAgICB9ICAgICAgICBcclxuICAgIH07XHJcbn1cclxuXHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5jb25zaXN0aXIgPSBib3RvbkNsaWVudFNpZGVFbkdyaWxsYSh7XHJcbiAgICBub21icmVCb3RvbjogJ2NvbnNpc3RpcicsXHJcbiAgICBsbGFtYWRhOiBmdW5jdGlvbiAoZGVwb3Q6IG15T3duLkRlcG90KSB7XHJcbiAgICAgICAgdmFyIGZpbHRyb1JlYT1jb25zaXN0aXJfZmlsdHJvKGRlcG90LnJvdy50YXJlYSwgZGVwb3Qucm93LnV0bF9yZWEsIGRlcG90LnJvdy5yZWEpXHJcbiAgICAgICAgcmV0dXJuIGZpbHRyb1JlYT8gbXlPd24uYWpheC5jb25zaXN0aXJfZW5jdWVzdGEoe1xyXG4gICAgICAgICAgICBvcGVyYXRpdm86IGRlcG90LnJvdy5vcGVyYXRpdm8sXHJcbiAgICAgICAgICAgIGlkX2Nhc286IGRlcG90LnJvdy5lbmNcclxuICAgICAgICB9KTogYWxlcnRQcm9taXNlKCdMYSBlbmN1ZXN0YSBkZWJlIHRlbmVyIGRhdG8gZW4gcmVhIHBhcmEgcG9kZXIgY29uc2lzdGlybGEuJyk7XHJcbiAgICB9XHJcbn0pO1xyXG5cclxubXlPd24ud1NjcmVlbnMuZGVtbz1hc3luYyBmdW5jdGlvbihfYWRkclBhcmFtcyl7XHJcbiAgICAvLyBAdHMtaWdub3JlIGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwgZ2xvYmFsXHJcbiAgICB3aW5kb3cuZGVzcGxlZ2FyRm9ybXVsYXJpb0FjdHVhbCh7bW9kb0RlbW86dHJ1ZX0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBhcnJheUZsYXQ8VD4oYXJyYXlzOlRbXVtdKTpUW117XHJcbiAgICByZXR1cm4gKFtdIGFzIFRbXSkuY29uY2F0LmFwcGx5KFtdLCBhcnJheXMpO1xyXG59XHJcbiJdfQ==
@@ -10,6 +10,12 @@ export declare function emergeAppDmEncu<T extends procesamiento.Constructor<proc
10
10
  getProcedures(): Promise<procesamiento.ProcedureDef[]>;
11
11
  checkDatabaseStructure(_client: Client): Promise<void>;
12
12
  addSchrödingerServices(mainApp: procesamiento.Express, baseUrl: string): void;
13
+ getColorsJson(): {
14
+ start_url: string;
15
+ display: string;
16
+ theme_color: string;
17
+ background_color: string;
18
+ };
13
19
  addLoggedServices(): void;
14
20
  postConfig(): Promise<void>;
15
21
  configStaticConfig(): void;
@@ -485,6 +491,12 @@ export declare var AppDmEncu: {
485
491
  getProcedures(): Promise<procesamiento.ProcedureDef[]>;
486
492
  checkDatabaseStructure(_client: Client): Promise<void>;
487
493
  addSchrödingerServices(mainApp: procesamiento.Express, baseUrl: string): void;
494
+ getColorsJson(): {
495
+ start_url: string;
496
+ display: string;
497
+ theme_color: string;
498
+ background_color: string;
499
+ };
488
500
  addLoggedServices(): void;
489
501
  postConfig(): Promise<void>;
490
502
  configStaticConfig(): void;