@projectcor/maia-components 2.11.39-0 → 2.11.39-2

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.
@@ -133,6 +133,12 @@ export var orchestrator = /*#__PURE__*/function () {
133
133
  };
134
134
  if (faqId) {
135
135
  headers['X-Faq-Id'] = faqId;
136
+ // eslint-disable-next-line no-console -- trazas staging header X-Faq-Id
137
+ console.info('[MaiaFaq:orchestrator]', 'step:stream-request', {
138
+ faqId: faqId,
139
+ inputLength: typeof input === 'string' ? input.length : 0,
140
+ path: path.split('&')[0]
141
+ });
136
142
  }
137
143
  if (agentSuggestionId) {
138
144
  headers['X-Agent-Suggestion'] = agentSuggestionId;
@@ -154,4 +160,4 @@ export var orchestrator = /*#__PURE__*/function () {
154
160
  return _ref2.apply(this, arguments);
155
161
  };
156
162
  }();
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMiLCJGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9GSUxFUyIsIk1BWF9GSUxFX1NJWkVfQllURVNfT0xEIiwiTUFYX0ZJTEVfU0laRV9CWVRFU19ORVciLCJNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPIiwiQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMiLCJ2YWxpZGF0ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJFcnJvciIsImNvbmNhdCIsImZvckVhY2giLCJhdHRhY2htZW50IiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jbHVkZXMiLCJqb2luIiwiZmlsZVNpemUiLCJzaXplIiwiTnVtYmVyIiwiY29udGludWVUaHJlYWQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJib2R5Iiwic2lnbmFsIiwidGhyZWFkSWRzIiwic2Vzc2lvbklkIiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiYWdlbnRJZCIsImxhbmciLCJyZXF1ZXN0Qm9keSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidGhyZWFkX2lkcyIsInNlc3Npb25faWQiLCJlZGl0ZWRfYWN0aW9ucyIsImFicnVwdCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwidG9TdHJpbmciLCJzdG9wIiwiX3giLCJfeDIiLCJhcHBseSIsImFyZ3VtZW50cyIsIm9yY2hlc3RyYXRvciIsIl9yZWYyIiwiX2NhbGxlZTIiLCJpbnB1dCIsInByb2plY3RJZCIsInVzZXJJZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiY2hhdElkIiwiY2xpZW50SWQiLCJjbGllbnROYW1lIiwiZmVlSWQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInByb2plY3ROYW1lIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImFnZW50RW50aXR5IiwiZm9ybURhdGEiLCJtZXRhZGF0YSIsIl9jb250ZXh0MiIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZmlsZVRvU2VuZCIsIm9yaWdpbmFsRmlsZSIsImZpbGUiLCJfb2JqZWN0U3ByZWFkIiwidXNlcl9pZCIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJmZWVfaWQiLCJjbGllbnRfaWQiLCJjbGllbnRfbmFtZSIsInByb2plY3RfaWQiLCJwcm9qZWN0X25hbWUiLCJzdWJkb21haW4iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhvc3RuYW1lIiwic3BsaXQiLCJKU09OIiwic3RyaW5naWZ5IiwiX3gzIiwiX3g0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvT3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBDaGF0SGlzdG9yeSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBBZ2VudEVudGl0eSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHtcbiAgRklMRV9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUyxcbiAgRklMRV9BVURJT19GT1JNQVRfRVhURU5TSU9OUyxcbiAgTUFYX0ZJTEVfU0laRV9NQl9PTEQsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfQVVESU8sXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuXG50eXBlIE9yY2hlc3RyYXRvclJlcXVlc3QgPSB7XG4gIGlucHV0OiBzdHJpbmdcbiAgcHJvamVjdElkPzogbnVtYmVyXG4gIGxhbmc6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBmaXJzdE5hbWU/OiBzdHJpbmdcbiAgbGFzdE5hbWU/OiBzdHJpbmdcbiAgY29tcGFueUlkOiBzdHJpbmdcbiAgY2hhdElkOiBzdHJpbmdcbiAgaGlzdG9yeTogQ2hhdEhpc3RvcnlbXVxuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlclxuICBjbGllbnROYW1lPzogc3RyaW5nXG4gIGZlZUlkPzogbnVtYmVyXG4gIGFnZW50TmFtZTogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBpc1dlYlNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgaXNEZWVwU2VhcmNoQWN0aXZlPzogYm9vbGVhblxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgZmFxSWQ/OiBzdHJpbmdcbiAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgYWdlbnRFbnRpdHk/OiBBZ2VudEVudGl0eVxufVxuXG5jb25zdCBNQVhfRklMRVMgPSA1XG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX09MRCA9IE1BWF9GSUxFX1NJWkVfTUJfT0xEICogMTAyNCAqIDEwMjRcbmNvbnN0IE1BWF9GSUxFX1NJWkVfQllURVNfTkVXID0gTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiAqIDEwMjQgKiAxMDI0XG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPID0gTUFYX0ZJTEVfU0laRV9NQl9BVURJTyAqIDEwMjQgKiAxMDI0XG5jb25zdCBBTExPV0VEX0ZJTEVfRVhURU5TSU9OUyA9IFtcbiAgJy50eHQnLFxuICAnLm1kJyxcbiAgJy5jc3YnLFxuICAnLmRvYycsXG4gICcuZG9jeCcsXG4gICcucG5nJyxcbiAgJy5qcGcnLFxuICAnLmpwZWcnLFxuICAnLnBkZicsXG4gICcueGxzeCcsXG4gICcueGxzJyxcbiAgJy5mbGFjJyxcbiAgJy5tNGEnLFxuICAnLm1wMycsXG4gICcubXA0JyxcbiAgJy5vZ2EnLFxuICAnLm9nZycsXG4gICcud2F2JyxcbiAgJy53ZWJtJyxcbl1cblxuY29uc3QgdmFsaWRhdGVBdHRhY2htZW50cyA9IChhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXSk6IHZvaWQgPT4ge1xuICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID4gTUFYX0ZJTEVTKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNw6F4aW1vICR7TUFYX0ZJTEVTfSBhcmNoaXZvcyBwZXJtaXRpZG9zYClcbiAgfVxuXG4gIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgLy8gVmFsaWRhciBleHRlbnNpw7NuIGRlbCBhcmNoaXZvXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGF0dGFjaG1lbnQubmFtZS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZyhhdHRhY2htZW50Lm5hbWUubGFzdEluZGV4T2YoJy4nKSlcbiAgICBpZiAoIUFMTE9XRURfRklMRV9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgbm8gdGllbmUgdW4gZm9ybWF0byBzb3BvcnRhZG8uIEZvcm1hdG9zIHBlcm1pdGlkb3M6ICR7QUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMuam9pbignLCAnKX1gXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVmFsaWRhciB0YW1hw7FvIGRlbCBhcmNoaXZvIHNlZ8O6biBlbCB0aXBvXG4gICAgY29uc3QgZmlsZVNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgaWYgKEZJTEVfRk9STUFUX0VYVEVOU0lPTlMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIGlmIChmaWxlU2l6ZSA+IE1BWF9GSUxFX1NJWkVfQllURVNfT0xEKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIGV4Y2VkZSBlbCB0YW1hw7FvIG3DoXhpbW8gZGUgJHtNQVhfRklMRV9TSVpFX01CX09MRH1NQmApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChGSUxFX01BSUFfVklTSU9OX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX05FVykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBleGNlZGUgZWwgdGFtYcOxbyBtw6F4aW1vIGRlICR7TUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTn1NQmApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIGV4Y2VkZSBlbCB0YW1hw7FvIG3DoXhpbW8gZGUgJHtNQVhfRklMRV9TSVpFX01CX0FVRElPfU1CYClcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbnR5cGUgQ29udGludWVUaHJlYWRSZXF1ZXN0ID0ge1xuICB0aHJlYWRJZHM6IHN0cmluZ1tdXG4gIHNlc3Npb25JZDogc3RyaW5nXG4gIGRlY2lzaW9uOiAnYXBwcm92ZScgfCAnZWRpdCcgfCAncmVqZWN0J1xuICBlZGl0ZWRBY3Rpb25zPzogQXJyYXk8eyB0b29sX25hbWU6IHN0cmluZzsgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfT5cbiAgYWdlbnRJZDogbnVtYmVyIHwgc3RyaW5nXG4gIGxhbmc6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgY29udGludWVUaHJlYWQgPSBhc3luYyAoYm9keTogQ29udGludWVUaHJlYWRSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3QgeyB0aHJlYWRJZHMsIHNlc3Npb25JZCwgZGVjaXNpb24sIGVkaXRlZEFjdGlvbnMsIGFnZW50SWQsIGxhbmcgfSA9IGJvZHlcblxuICBjb25zdCByZXF1ZXN0Qm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgdGhyZWFkX2lkczogdGhyZWFkSWRzLFxuICAgIHNlc3Npb25faWQ6IHNlc3Npb25JZCxcbiAgICBkZWNpc2lvbixcbiAgfVxuXG4gIGlmIChkZWNpc2lvbiA9PT0gJ2VkaXQnICYmIGVkaXRlZEFjdGlvbnMpIHtcbiAgICByZXF1ZXN0Qm9keS5lZGl0ZWRfYWN0aW9ucyA9IGVkaXRlZEFjdGlvbnNcbiAgfVxuXG4gIHJldHVybiBmZXRjaE1haWEoe1xuICAgIHBhdGg6ICdvcmNoZXN0cmF0b3IvY29udGludWUtdGhyZWFkP21vZGU9c3RyZWFtJyxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnWC1BZ2VudC1JZCc6IGFnZW50SWQudG9TdHJpbmcoKSxcbiAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBtYXBDT1JMYW5nKGxhbmcpLFxuICAgIH0sXG4gICAgYm9keTogcmVxdWVzdEJvZHksXG4gICAgc2lnbmFsLFxuICB9KVxufVxuXG5leHBvcnQgY29uc3Qgb3JjaGVzdHJhdG9yID0gYXN5bmMgKGJvZHk6IE9yY2hlc3RyYXRvclJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxSZXNwb25zZT4gPT4ge1xuICBjb25zdCB7XG4gICAgaW5wdXQsXG4gICAgcHJvamVjdElkLFxuICAgIGxhbmcsXG4gICAgdXNlcklkLFxuICAgIGZpcnN0TmFtZSxcbiAgICBsYXN0TmFtZSxcbiAgICBjaGF0SWQsXG4gICAgY2xpZW50SWQsXG4gICAgY2xpZW50TmFtZSxcbiAgICBmZWVJZCxcbiAgICBhZ2VudElkLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBhdHRhY2htZW50cyxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBmYXFJZCxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZCxcbiAgICBhZ2VudEVudGl0eSxcbiAgfSA9IGJvZHlcblxuICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpXG4gIGZvcm1EYXRhLmFwcGVuZCgnaW5wdXQnLCBpbnB1dClcbiAgZm9ybURhdGEuYXBwZW5kKCdzZXNzaW9uX2lkJywgY2hhdElkKVxuXG4gIGlmIChhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgdmFsaWRhdGVBdHRhY2htZW50cyhhdHRhY2htZW50cylcblxuICAgIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgICAvLyBVc2FyIGVsIGFyY2hpdm8gb3JpZ2luYWwgc2kgZXhpc3RlIChwYXJhIGltw6FnZW5lcyBwcm9jZXNhZGFzKSwgc2lubyB1c2FyIGVsIGFyY2hpdm8gbm9ybWFsXG4gICAgICBjb25zdCBmaWxlVG9TZW5kID0gYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgfHwgYXR0YWNobWVudC5maWxlXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVzJywgZmlsZVRvU2VuZClcbiAgICB9KVxuICB9XG5cbiAgbGV0IG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBpZiAoYWdlbnRFbnRpdHkgPT09ICdnbG9iYWwnKSB7XG4gICAgbWV0YWRhdGEgPSB7fVxuICB9IGVsc2Uge1xuICAgIG1ldGFkYXRhID0ge1xuICAgICAgbGFuZzogbWFwQ09STGFuZyhsYW5nKSxcbiAgICAgIC4uLih1c2VySWQgPyB7IHVzZXJfaWQ6IHVzZXJJZCB9IDoge30pLFxuICAgICAgLi4uKGZpcnN0TmFtZSA/IHsgZmlyc3RfbmFtZTogZmlyc3ROYW1lIH0gOiB7fSksXG4gICAgICAuLi4obGFzdE5hbWUgPyB7IGxhc3RfbmFtZTogbGFzdE5hbWUgfSA6IHt9KSxcbiAgICAgIC4uLihmZWVJZCAhPSBudWxsID8geyBmZWVfaWQ6IGZlZUlkIH0gOiB7fSksXG4gICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50X2lkOiBjbGllbnRJZCB9IDoge30pLFxuICAgICAgLi4uKGNsaWVudE5hbWUgPyB7IGNsaWVudF9uYW1lOiBjbGllbnROYW1lIH0gOiB7fSksXG4gICAgICAuLi4ocHJvamVjdElkID8geyBwcm9qZWN0X2lkOiBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgIC4uLihwcm9qZWN0TmFtZSA/IHsgcHJvamVjdF9uYW1lOiBwcm9qZWN0TmFtZSB9IDoge30pLFxuICAgICAgc3ViZG9tYWluOiB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoJy4nKVswXSxcbiAgICB9XG4gIH1cbiAgZm9ybURhdGEuYXBwZW5kKCdtZXRhZGF0YScsIEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhKSlcblxuICBsZXQgcGF0aCA9ICdvcmNoZXN0cmF0b3I/bW9kZT1zdHJlYW0nXG4gIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgIHBhdGggKz0gJyZzZWFyY2hfd2ViPXRydWUnXG4gIH1cbiAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgIHBhdGggKz0gJyZzZWFyY2hfd2ViPXRydWUmZGVwdGg9dHJ1ZSdcbiAgfVxuXG4gIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgJ1gtQWdlbnQtSWQnOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gIH1cblxuICBpZiAoZmFxSWQpIHtcbiAgICBoZWFkZXJzWydYLUZhcS1JZCddID0gZmFxSWRcbiAgfVxuXG4gIGlmIChhZ2VudFN1Z2dlc3Rpb25JZCkge1xuICAgIGhlYWRlcnNbJ1gtQWdlbnQtU3VnZ2VzdGlvbiddID0gYWdlbnRTdWdnZXN0aW9uSWRcbiAgfVxuXG4gIHJldHVybiBmZXRjaE1haWEoe1xuICAgIHBhdGgsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVycyxcbiAgICBib2R5OiBmb3JtRGF0YSxcbiAgICBzaWduYWwsXG4gIH0pXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTs7QUFFQSxTQUFTQSxVQUFVLFFBQVEscUJBQXFCO0FBR2hELFNBQVNDLFNBQVMsUUFBUSxXQUFXO0FBQ3JDLFNBQ0VDLHNCQUFzQixFQUN0QkMsa0NBQWtDLEVBQ2xDQyw0QkFBNEIsRUFDNUJDLG9CQUFvQixFQUNwQkMsNEJBQTRCLEVBQzVCQyxzQkFBc0IsUUFDakIscUNBQXFDO0FBMkI1QyxJQUFNQyxTQUFTLEdBQUcsQ0FBQztBQUNuQixJQUFNQyx1QkFBdUIsR0FBR0osb0JBQW9CLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFDbEUsSUFBTUssdUJBQXVCLEdBQUdKLDRCQUE0QixHQUFHLElBQUksR0FBRyxJQUFJO0FBQzFFLElBQU1LLHlCQUF5QixHQUFHSixzQkFB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
163
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBDT1JMYW5nIiwiZmV0Y2hNYWlhIiwiRklMRV9GT1JNQVRfRVhURU5TSU9OUyIsIkZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMiLCJGSUxFX0FVRElPX0ZPUk1BVF9FWFRFTlNJT05TIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9GSUxFUyIsIk1BWF9GSUxFX1NJWkVfQllURVNfT0xEIiwiTUFYX0ZJTEVfU0laRV9CWVRFU19ORVciLCJNQVhfRklMRV9TSVpFX0JZVEVTX0FVRElPIiwiQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMiLCJ2YWxpZGF0ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJFcnJvciIsImNvbmNhdCIsImZvckVhY2giLCJhdHRhY2htZW50IiwiZmlsZUV4dGVuc2lvbiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jbHVkZXMiLCJqb2luIiwiZmlsZVNpemUiLCJzaXplIiwiTnVtYmVyIiwiY29udGludWVUaHJlYWQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJib2R5Iiwic2lnbmFsIiwidGhyZWFkSWRzIiwic2Vzc2lvbklkIiwiZGVjaXNpb24iLCJlZGl0ZWRBY3Rpb25zIiwiYWdlbnRJZCIsImxhbmciLCJyZXF1ZXN0Qm9keSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwidGhyZWFkX2lkcyIsInNlc3Npb25faWQiLCJlZGl0ZWRfYWN0aW9ucyIsImFicnVwdCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwidG9TdHJpbmciLCJzdG9wIiwiX3giLCJfeDIiLCJhcHBseSIsImFyZ3VtZW50cyIsIm9yY2hlc3RyYXRvciIsIl9yZWYyIiwiX2NhbGxlZTIiLCJpbnB1dCIsInByb2plY3RJZCIsInVzZXJJZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiY2hhdElkIiwiY2xpZW50SWQiLCJjbGllbnROYW1lIiwiZmVlSWQiLCJpc1dlYlNlYXJjaEFjdGl2ZSIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsInByb2plY3ROYW1lIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImFnZW50RW50aXR5IiwiZm9ybURhdGEiLCJtZXRhZGF0YSIsIl9jb250ZXh0MiIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZmlsZVRvU2VuZCIsIm9yaWdpbmFsRmlsZSIsImZpbGUiLCJfb2JqZWN0U3ByZWFkIiwidXNlcl9pZCIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJmZWVfaWQiLCJjbGllbnRfaWQiLCJjbGllbnRfbmFtZSIsInByb2plY3RfaWQiLCJwcm9qZWN0X25hbWUiLCJzdWJkb21haW4iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhvc3RuYW1lIiwic3BsaXQiLCJKU09OIiwic3RyaW5naWZ5IiwiY29uc29sZSIsImluZm8iLCJpbnB1dExlbmd0aCIsIl94MyIsIl94NCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL09yY2hlc3RyYXRvci9vcmNoZXN0cmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgQ2hhdEhpc3RvcnkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgQWdlbnRFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7XG4gIEZJTEVfRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfTUFJQV9WSVNJT05fRk9STUFUX0VYVEVOU0lPTlMsXG4gIEZJTEVfQVVESU9fRk9STUFUX0VYVEVOU0lPTlMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OLFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvZm9ybWF0RXh0ZW5zaW9ucydcblxudHlwZSBPcmNoZXN0cmF0b3JSZXF1ZXN0ID0ge1xuICBpbnB1dDogc3RyaW5nXG4gIHByb2plY3RJZD86IG51bWJlclxuICBsYW5nOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgZmlyc3ROYW1lPzogc3RyaW5nXG4gIGxhc3ROYW1lPzogc3RyaW5nXG4gIGNvbXBhbnlJZDogc3RyaW5nXG4gIGNoYXRJZDogc3RyaW5nXG4gIGhpc3Rvcnk6IENoYXRIaXN0b3J5W11cbiAgbWVzc2FnZUlkOiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXJcbiAgY2xpZW50TmFtZT86IHN0cmluZ1xuICBmZWVJZD86IG51bWJlclxuICBhZ2VudE5hbWU6IHN0cmluZ1xuICBhZ2VudElkOiBudW1iZXIgfCBzdHJpbmdcbiAgaXNXZWJTZWFyY2hBY3RpdmU/OiBib29sZWFuXG4gIGlzRGVlcFNlYXJjaEFjdGl2ZT86IGJvb2xlYW5cbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGZhcUlkPzogc3RyaW5nXG4gIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gIGFnZW50RW50aXR5PzogQWdlbnRFbnRpdHlcbn1cblxuY29uc3QgTUFYX0ZJTEVTID0gNVxuY29uc3QgTUFYX0ZJTEVfU0laRV9CWVRFU19PTEQgPSBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0XG5jb25zdCBNQVhfRklMRV9TSVpFX0JZVEVTX05FVyA9IE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04gKiAxMDI0ICogMTAyNFxuY29uc3QgTUFYX0ZJTEVfU0laRV9CWVRFU19BVURJTyA9IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNFxuY29uc3QgQUxMT1dFRF9GSUxFX0VYVEVOU0lPTlMgPSBbXG4gICcudHh0JyxcbiAgJy5tZCcsXG4gICcuY3N2JyxcbiAgJy5kb2MnLFxuICAnLmRvY3gnLFxuICAnLnBuZycsXG4gICcuanBnJyxcbiAgJy5qcGVnJyxcbiAgJy5wZGYnLFxuICAnLnhsc3gnLFxuICAnLnhscycsXG4gICcuZmxhYycsXG4gICcubTRhJyxcbiAgJy5tcDMnLFxuICAnLm1wNCcsXG4gICcub2dhJyxcbiAgJy5vZ2cnLFxuICAnLndhdicsXG4gICcud2VibScsXG5dXG5cbmNvbnN0IHZhbGlkYXRlQXR0YWNobWVudHMgPSAoYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW10pOiB2b2lkID0+IHtcbiAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCA+IE1BWF9GSUxFUykge1xuICAgIHRocm93IG5ldyBFcnJvcihgTcOheGltbyAke01BWF9GSUxFU30gYXJjaGl2b3MgcGVybWl0aWRvc2ApXG4gIH1cblxuICBhdHRhY2htZW50cy5mb3JFYWNoKGF0dGFjaG1lbnQgPT4ge1xuICAgIC8vIFZhbGlkYXIgZXh0ZW5zacOzbiBkZWwgYXJjaGl2b1xuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBhdHRhY2htZW50Lm5hbWUudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoYXR0YWNobWVudC5uYW1lLmxhc3RJbmRleE9mKCcuJykpXG4gICAgaWYgKCFBTExPV0VEX0ZJTEVfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRWwgYXJjaGl2byBcIiR7YXR0YWNobWVudC5uYW1lfVwiIG5vIHRpZW5lIHVuIGZvcm1hdG8gc29wb3J0YWRvLiBGb3JtYXRvcyBwZXJtaXRpZG9zOiAke0FMTE9XRURfRklMRV9FWFRFTlNJT05TLmpvaW4oJywgJyl9YFxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXIgdGFtYcOxbyBkZWwgYXJjaGl2byBzZWfDum4gZWwgdGlwb1xuICAgIGNvbnN0IGZpbGVTaXplID0gdHlwZW9mIGF0dGFjaG1lbnQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHRhY2htZW50LnNpemUgOiBOdW1iZXIoYXR0YWNobWVudC5zaXplKVxuICAgIGlmIChGSUxFX0ZPUk1BVF9FWFRFTlNJT05TLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpZiAoZmlsZVNpemUgPiBNQVhfRklMRV9TSVpFX0JZVEVTX09MRCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBleGNlZGUgZWwgdGFtYcOxbyBtw6F4aW1vIGRlICR7TUFYX0ZJTEVfU0laRV9NQl9PTER9TUJgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoRklMRV9NQUlBX1ZJU0lPTl9GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgaWYgKGZpbGVTaXplID4gTUFYX0ZJTEVfU0laRV9CWVRFU19ORVcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbCBhcmNoaXZvIFwiJHthdHRhY2htZW50Lm5hbWV9XCIgZXhjZWRlIGVsIHRhbWHDsW8gbcOheGltbyBkZSAke01BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT059TUJgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoRklMRV9BVURJT19GT1JNQVRfRVhURU5TSU9OUy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgaWYgKGZpbGVTaXplID4gTUFYX0ZJTEVfU0laRV9CWVRFU19BVURJTykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVsIGFyY2hpdm8gXCIke2F0dGFjaG1lbnQubmFtZX1cIiBleGNlZGUgZWwgdGFtYcOxbyBtw6F4aW1vIGRlICR7TUFYX0ZJTEVfU0laRV9NQl9BVURJT31NQmApXG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuXG50eXBlIENvbnRpbnVlVGhyZWFkUmVxdWVzdCA9IHtcbiAgdGhyZWFkSWRzOiBzdHJpbmdbXVxuICBzZXNzaW9uSWQ6IHN0cmluZ1xuICBkZWNpc2lvbjogJ2FwcHJvdmUnIHwgJ2VkaXQnIHwgJ3JlamVjdCdcbiAgZWRpdGVkQWN0aW9ucz86IEFycmF5PHsgdG9vbF9uYW1lOiBzdHJpbmc7IGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0+XG4gIGFnZW50SWQ6IG51bWJlciB8IHN0cmluZ1xuICBsYW5nOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnRpbnVlVGhyZWFkID0gYXN5bmMgKGJvZHk6IENvbnRpbnVlVGhyZWFkUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHsgdGhyZWFkSWRzLCBzZXNzaW9uSWQsIGRlY2lzaW9uLCBlZGl0ZWRBY3Rpb25zLCBhZ2VudElkLCBsYW5nIH0gPSBib2R5XG5cbiAgY29uc3QgcmVxdWVzdEJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIHRocmVhZF9pZHM6IHRocmVhZElkcyxcbiAgICBzZXNzaW9uX2lkOiBzZXNzaW9uSWQsXG4gICAgZGVjaXNpb24sXG4gIH1cblxuICBpZiAoZGVjaXNpb24gPT09ICdlZGl0JyAmJiBlZGl0ZWRBY3Rpb25zKSB7XG4gICAgcmVxdWVzdEJvZHkuZWRpdGVkX2FjdGlvbnMgPSBlZGl0ZWRBY3Rpb25zXG4gIH1cblxuICByZXR1cm4gZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnb3JjaGVzdHJhdG9yL2NvbnRpbnVlLXRocmVhZD9tb2RlPXN0cmVhbScsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtQWdlbnQtSWQnOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gICAgICAnQWNjZXB0LUxhbmd1YWdlJzogbWFwQ09STGFuZyhsYW5nKSxcbiAgICB9LFxuICAgIGJvZHk6IHJlcXVlc3RCb2R5LFxuICAgIHNpZ25hbCxcbiAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IG9yY2hlc3RyYXRvciA9IGFzeW5jIChib2R5OiBPcmNoZXN0cmF0b3JSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8UmVzcG9uc2U+ID0+IHtcbiAgY29uc3Qge1xuICAgIGlucHV0LFxuICAgIHByb2plY3RJZCxcbiAgICBsYW5nLFxuICAgIHVzZXJJZCxcbiAgICBmaXJzdE5hbWUsXG4gICAgbGFzdE5hbWUsXG4gICAgY2hhdElkLFxuICAgIGNsaWVudElkLFxuICAgIGNsaWVudE5hbWUsXG4gICAgZmVlSWQsXG4gICAgYWdlbnRJZCxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgYXR0YWNobWVudHMsXG4gICAgcHJvamVjdE5hbWUsXG4gICAgZmFxSWQsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQsXG4gICAgYWdlbnRFbnRpdHksXG4gIH0gPSBib2R5XG5cbiAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKVxuICBmb3JtRGF0YS5hcHBlbmQoJ2lucHV0JywgaW5wdXQpXG4gIGZvcm1EYXRhLmFwcGVuZCgnc2Vzc2lvbl9pZCcsIGNoYXRJZClcblxuICBpZiAoYXR0YWNobWVudHM/Lmxlbmd0aCkge1xuICAgIHZhbGlkYXRlQXR0YWNobWVudHMoYXR0YWNobWVudHMpXG5cbiAgICBhdHRhY2htZW50cy5mb3JFYWNoKGF0dGFjaG1lbnQgPT4ge1xuICAgICAgLy8gVXNhciBlbCBhcmNoaXZvIG9yaWdpbmFsIHNpIGV4aXN0ZSAocGFyYSBpbcOhZ2VuZXMgcHJvY2VzYWRhcyksIHNpbm8gdXNhciBlbCBhcmNoaXZvIG5vcm1hbFxuICAgICAgY29uc3QgZmlsZVRvU2VuZCA9IGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIHx8IGF0dGFjaG1lbnQuZmlsZVxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGZpbGVUb1NlbmQpXG4gICAgfSlcbiAgfVxuXG4gIGxldCBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgaWYgKGFnZW50RW50aXR5ID09PSAnZ2xvYmFsJykge1xuICAgIG1ldGFkYXRhID0ge31cbiAgfSBlbHNlIHtcbiAgICBtZXRhZGF0YSA9IHtcbiAgICAgIGxhbmc6IG1hcENPUkxhbmcobGFuZyksXG4gICAgICAuLi4odXNlcklkID8geyB1c2VyX2lkOiB1c2VySWQgfSA6IHt9KSxcbiAgICAgIC4uLihmaXJzdE5hbWUgPyB7IGZpcnN0X25hbWU6IGZpcnN0TmFtZSB9IDoge30pLFxuICAgICAgLi4uKGxhc3ROYW1lID8geyBsYXN0X25hbWU6IGxhc3ROYW1lIH0gOiB7fSksXG4gICAgICAuLi4oZmVlSWQgIT0gbnVsbCA/IHsgZmVlX2lkOiBmZWVJZCB9IDoge30pLFxuICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudF9pZDogY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgIC4uLihjbGllbnROYW1lID8geyBjbGllbnRfbmFtZTogY2xpZW50TmFtZSB9IDoge30pLFxuICAgICAgLi4uKHByb2plY3RJZCA/IHsgcHJvamVjdF9pZDogcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAuLi4ocHJvamVjdE5hbWUgPyB7IHByb2plY3RfbmFtZTogcHJvamVjdE5hbWUgfSA6IHt9KSxcbiAgICAgIHN1YmRvbWFpbjogd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJylbMF0sXG4gICAgfVxuICB9XG4gIGZvcm1EYXRhLmFwcGVuZCgnbWV0YWRhdGEnLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpXG5cbiAgbGV0IHBhdGggPSAnb3JjaGVzdHJhdG9yP21vZGU9c3RyZWFtJ1xuICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJ1xuICB9XG4gIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUgPT09IHRydWUpIHtcbiAgICBwYXRoICs9ICcmc2VhcmNoX3dlYj10cnVlJmRlcHRoPXRydWUnXG4gIH1cblxuICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICdYLUFnZW50LUlkJzogYWdlbnRJZC50b1N0cmluZygpLFxuICB9XG5cbiAgaWYgKGZhcUlkKSB7XG4gICAgaGVhZGVyc1snWC1GYXEtSWQnXSA9IGZhcUlkXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGUgLS0gdHJhemFzIHN0YWdpbmcgaGVhZGVyIFgtRmFxLUlkXG4gICAgY29uc29sZS5pbmZvKCdbTWFpYUZhcTpvcmNoZXN0cmF0b3JdJywgJ3N0ZXA6c3RyZWFtLXJlcXVlc3QnLCB7XG4gICAgICBmYXFJZCxcbiAgICAgIGlucHV0TGVuZ3RoOiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnID8gaW5wdXQubGVuZ3RoIDogMCxcbiAgICAgIHBhdGg6IHBhdGguc3BsaXQoJyYnKVswXSxcbiAgICB9KVxuICB9XG5cbiAgaWYgKGFnZW50U3VnZ2VzdGlvbklkKSB7XG4gICAgaGVhZGVyc1snWC1BZ2VudC1TdWdnZXN0aW9uJ10gPSBhZ2VudFN1Z2dlc3Rpb25JZFxuICB9XG5cbiAgcmV0dXJuIGZldGNoTWFpYSh7XG4gICAgcGF0aCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzLFxuICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgIHNpZ25hbCxcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBOztBQUVBLFNBQVNBLFVBQVUsUUFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.39-0",
3
+ "version": "2.11.39-2",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {
@@ -1,269 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
3
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
- /* eslint-disable no-restricted-syntax */
6
- /* eslint-disable no-continue */
7
- /* eslint-disable no-void */
8
- /* eslint-disable prefer-destructuring */
9
- import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
10
- import { StyledMAIAInput } from './styles';
11
-
12
- /**
13
- * Líneas visuales con wrap de palabras al ancho dado (aprox. el navegador en LTR).
14
- */
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- function countVisualLinesWrapped(raw, contentWidthPx, measureTextWidth) {
17
- if (contentWidthPx <= 1) {
18
- return 1;
19
- }
20
- var paragraphs = raw.split('\n');
21
- var total = 0;
22
- var _iterator = _createForOfIteratorHelper(paragraphs),
23
- _step;
24
- try {
25
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
26
- var paragraph = _step.value;
27
- if (paragraph.length === 0) {
28
- total += 1;
29
- continue;
30
- }
31
- var words = paragraph.split(/\s+/).filter(function (w) {
32
- return w.length > 0;
33
- });
34
- var linesInParagraph = 1;
35
- var currentLineWidth = 0;
36
- for (var i = 0; i < words.length; i += 1) {
37
- var word = words[i];
38
- var wordWidth = measureTextWidth(word);
39
- var spaceWidth = i > 0 ? measureTextWidth(' ') : 0;
40
- if (wordWidth > contentWidthPx) {
41
- if (currentLineWidth > 0) {
42
- linesInParagraph += 1;
43
- currentLineWidth = 0;
44
- }
45
- linesInParagraph += Math.ceil(wordWidth / contentWidthPx) - 1;
46
- continue;
47
- }
48
- var candidateWidth = currentLineWidth === 0 ? wordWidth : currentLineWidth + spaceWidth + wordWidth;
49
- if (candidateWidth > contentWidthPx && currentLineWidth > 0) {
50
- linesInParagraph += 1;
51
- currentLineWidth = wordWidth;
52
- } else {
53
- currentLineWidth = candidateWidth;
54
- }
55
- }
56
- total += linesInParagraph;
57
- }
58
- } catch (err) {
59
- _iterator.e(err);
60
- } finally {
61
- _iterator.f();
62
- }
63
- return Math.max(1, total);
64
- }
65
- export var MAIAInputEditor = function MAIAInputEditor(_ref) {
66
- var inputRef = _ref.inputRef,
67
- disabled = _ref.disabled,
68
- placeholder = _ref.placeholder,
69
- alignButtons = _ref.alignButtons,
70
- compactSingleRowToolbar = _ref.compactSingleRowToolbar,
71
- setIsTextMultiline = _ref.setIsTextMultiline,
72
- chatId = _ref.chatId,
73
- newChatKey = _ref.newChatKey,
74
- clearSeq = _ref.clearSeq,
75
- sendDisabled = _ref.sendDisabled,
76
- onTypingPresenceChange = _ref.onTypingPresenceChange,
77
- onEnterSend = _ref.onEnterSend,
78
- onChangeProp = _ref.onChangeProp;
79
- var textareaMinContentWidthSeenRef = useRef(null);
80
- var presencePrevRef = useRef(false);
81
- /** Solo para re-agendar medición de alto sin guardar el string en el padre (aisla re-renders del toolbar). */
82
- var _useState = useState(0),
83
- _useState2 = _slicedToArray(_useState, 2),
84
- resizeEpoch = _useState2[0],
85
- setResizeEpoch = _useState2[1];
86
- var handleResize = useCallback(function () {
87
- var _textareaMinContentWi;
88
- var textarea = inputRef.current;
89
- if (!textarea) {
90
- return;
91
- }
92
-
93
- /** Coincide con StyledMAIAInput: line-height 20px sobre fuente 14px (~una línea de texto visible). */
94
- var minHeight = 20;
95
- var maxHeight = 120;
96
- var previousMinHeight = textarea.style.minHeight;
97
- var previousMaxHeight = textarea.style.maxHeight;
98
- textarea.style.height = 'auto';
99
- textarea.style.minHeight = '0px';
100
- textarea.style.maxHeight = 'none';
101
- void textarea.offsetHeight;
102
- var scrollHeight = textarea.scrollHeight;
103
- var computedStyle = window.getComputedStyle(textarea);
104
- var lineHeight = parseFloat(computedStyle.lineHeight) || 20;
105
- var paddingTop = parseFloat(computedStyle.paddingTop) || 0;
106
- var paddingBottom = parseFloat(computedStyle.paddingBottom) || 0;
107
- var borderTop = parseFloat(computedStyle.borderTopWidth) || 0;
108
- var borderBottom = parseFloat(computedStyle.borderBottomWidth) || 0;
109
- var singleLineHeight = lineHeight + paddingTop + paddingBottom + borderTop + borderBottom;
110
- var isEmpty = textarea.value.trim() === '';
111
- var paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
112
- var paddingRight = parseFloat(computedStyle.paddingRight) || 0;
113
- var borderLeft = parseFloat(computedStyle.borderLeftWidth) || 0;
114
- var borderRight = parseFloat(computedStyle.borderRightWidth) || 0;
115
- var textareaWidth = textarea.offsetWidth - paddingLeft - paddingRight - borderLeft - borderRight;
116
- if (!isEmpty) {
117
- textareaMinContentWidthSeenRef.current = textareaMinContentWidthSeenRef.current === null ? textareaWidth : Math.min(textareaMinContentWidthSeenRef.current, textareaWidth);
118
- }
119
- var wrapCheckWidth = (_textareaMinContentWi = textareaMinContentWidthSeenRef.current) !== null && _textareaMinContentWi !== void 0 ? _textareaMinContentWi : textareaWidth;
120
- var canvasMeasureIndicatesMultiline = false;
121
- var canvas = document.createElement('canvas');
122
- var canvasContext = canvas.getContext('2d');
123
- var text = textarea.value || '';
124
- var lines = text.split('\n');
125
- if (!canvasContext) {
126
- canvasMeasureIndicatesMultiline = scrollHeight > singleLineHeight * 2.05;
127
- } else {
128
- var textareaStyles = window.getComputedStyle(textarea);
129
- canvasContext.font = "".concat(textareaStyles.fontWeight, " ").concat(textareaStyles.fontSize, " ").concat(textareaStyles.fontFamily);
130
- if (lines.length > 1) {
131
- canvasMeasureIndicatesMultiline = true;
132
- } else {
133
- var _iterator2 = _createForOfIteratorHelper(lines),
134
- _step2;
135
- try {
136
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
137
- var line = _step2.value;
138
- if (line.trim() === '') continue;
139
- if (canvasContext.measureText(line).width > wrapCheckWidth) {
140
- canvasMeasureIndicatesMultiline = true;
141
- break;
142
- }
143
- }
144
- } catch (err) {
145
- _iterator2.e(err);
146
- } finally {
147
- _iterator2.f();
148
- }
149
- }
150
- }
151
- var hasMultipleVisualLines = canvasMeasureIndicatesMultiline;
152
- var nextMultiline = !isEmpty && hasMultipleVisualLines;
153
-
154
- /** Líneas según ancho estrecho (history min) — toolbar compacto y detección multiline */
155
- var visualLinesAtWrapWidth = 1;
156
- /** Líneas al ancho actual del textarea — en stacked suele ser mayor que wrapCheckWidth */
157
- var visualLinesAtCurrentWidth = 1;
158
- if (!isEmpty && canvasContext) {
159
- visualLinesAtWrapWidth = countVisualLinesWrapped(text, wrapCheckWidth, function (segment) {
160
- return canvasContext.measureText(segment).width;
161
- });
162
- visualLinesAtCurrentWidth = countVisualLinesWrapped(text, textareaWidth, function (segment) {
163
- return canvasContext.measureText(segment).width;
164
- });
165
- } else if (!isEmpty && !canvasContext) {
166
- visualLinesAtWrapWidth = scrollHeight > singleLineHeight * 1.85 ? Math.ceil(scrollHeight / singleLineHeight) : 1;
167
- visualLinesAtCurrentWidth = visualLinesAtWrapWidth;
168
- }
169
- var linesForHeight = !isEmpty && canvasContext ? visualLinesAtCurrentWidth : visualLinesAtWrapWidth;
170
- var newHeight;
171
- /** Una línea al ancho actual: altura fijada por tipografía (+ padding/borde), no scrollHeight — evita ~39px al pasar a stacked cuando el canvas ya cuenta 1 línea a ancho amplio pero scrollHeight aún viene de líneas viejas/wrap anterior. */
172
- var snappedSingleLineOuterHeight = Math.round(singleLineHeight);
173
- if (isEmpty) {
174
- newHeight = snappedSingleLineOuterHeight;
175
- } else if (!hasMultipleVisualLines) {
176
- newHeight = snappedSingleLineOuterHeight;
177
- } else if (linesForHeight <= 1) {
178
- newHeight = Math.min(Math.max(snappedSingleLineOuterHeight, minHeight), maxHeight);
179
- } else {
180
- var snappedHeight = paddingTop + paddingBottom + borderTop + borderBottom + linesForHeight * lineHeight;
181
- newHeight = Math.min(Math.max(Math.min(scrollHeight, snappedHeight), minHeight), maxHeight);
182
- }
183
- setIsTextMultiline(function (prev) {
184
- return prev === nextMultiline ? prev : nextMultiline;
185
- });
186
- textarea.style.minHeight = previousMinHeight || "".concat(minHeight, "px");
187
- textarea.style.maxHeight = previousMaxHeight || '120px';
188
- textarea.style.height = "".concat(newHeight, "px");
189
- }, [inputRef, setIsTextMultiline]);
190
-
191
- /** Compact↔stacked cambia el grid/CSS del textarea; medir en layout evita un frame con alto desincronizado (sobre todo compact→stacked). */
192
- useLayoutEffect(function () {
193
- handleResize();
194
- }, [compactSingleRowToolbar, handleResize]);
195
- useEffect(function () {
196
- var _inputRef$current;
197
- if (((_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value.trim()) === '') {
198
- textareaMinContentWidthSeenRef.current = null;
199
- }
200
- }, [resizeEpoch]);
201
- useEffect(function () {
202
- textareaMinContentWidthSeenRef.current = null;
203
- }, [chatId, newChatKey]);
204
- useEffect(function () {
205
- if (inputRef.current && !disabled) {
206
- inputRef.current.focus();
207
- requestAnimationFrame(function () {
208
- handleResize();
209
- });
210
- }
211
- }, [disabled, handleResize]);
212
- useEffect(function () {
213
- if (clearSeq === 0) {
214
- return;
215
- }
216
- textareaMinContentWidthSeenRef.current = null;
217
- presencePrevRef.current = false;
218
- requestAnimationFrame(function () {
219
- handleResize();
220
- });
221
- }, [clearSeq, handleResize]);
222
- useEffect(function () {
223
- var id = requestAnimationFrame(function () {
224
- handleResize();
225
- });
226
- return function () {
227
- return cancelAnimationFrame(id);
228
- };
229
- }, [resizeEpoch, handleResize]);
230
- var handleChange = function handleChange(e) {
231
- var hasTrim = e.target.value.trim().length > 0;
232
- if (hasTrim !== presencePrevRef.current) {
233
- presencePrevRef.current = hasTrim;
234
- onTypingPresenceChange(hasTrim);
235
- }
236
- setResizeEpoch(function (x) {
237
- return x + 1;
238
- });
239
- onChangeProp === null || onChangeProp === void 0 || onChangeProp();
240
- };
241
- var handleBlur = function handleBlur() {
242
- var _inputRef$current$val, _inputRef$current2;
243
- var v = (_inputRef$current$val = (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.value) !== null && _inputRef$current$val !== void 0 ? _inputRef$current$val : '';
244
- var hasTrim = v.trim().length > 0;
245
- if (hasTrim !== presencePrevRef.current) {
246
- presencePrevRef.current = hasTrim;
247
- onTypingPresenceChange(hasTrim);
248
- }
249
- };
250
- var handleKeyDown = function handleKeyDown(e) {
251
- if (e.key === 'Enter' && !e.shiftKey) {
252
- e.preventDefault();
253
- if (!sendDisabled && !disabled) {
254
- onEnterSend();
255
- }
256
- }
257
- };
258
- return /*#__PURE__*/_jsx(StyledMAIAInput, {
259
- ref: inputRef,
260
- disabled: disabled,
261
- onChange: handleChange,
262
- onKeyDown: handleKeyDown,
263
- placeholder: placeholder,
264
- alignButtons: alignButtons,
265
- $toolbarLayoutVariant: compactSingleRowToolbar ? 'compactRow' : 'stackedRows',
266
- onBlur: handleBlur
267
- });
268
- };
269
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiU3R5bGVkTUFJQUlucHV0IiwianN4IiwiX2pzeCIsImNvdW50VmlzdWFsTGluZXNXcmFwcGVkIiwicmF3IiwiY29udGVudFdpZHRoUHgiLCJtZWFzdXJlVGV4dFdpZHRoIiwicGFyYWdyYXBocyIsInNwbGl0IiwidG90YWwiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwicGFyYWdyYXBoIiwidmFsdWUiLCJsZW5ndGgiLCJ3b3JkcyIsImZpbHRlciIsInciLCJsaW5lc0luUGFyYWdyYXBoIiwiY3VycmVudExpbmVXaWR0aCIsImkiLCJ3b3JkIiwid29yZFdpZHRoIiwic3BhY2VXaWR0aCIsIk1hdGgiLCJjZWlsIiwiY2FuZGlkYXRlV2lkdGgiLCJlcnIiLCJlIiwiZiIsIm1heCIsIk1BSUFJbnB1dEVkaXRvciIsIl9yZWYiLCJpbnB1dFJlZiIsImRpc2FibGVkIiwicGxhY2Vob2xkZXIiLCJhbGlnbkJ1dHRvbnMiLCJjb21wYWN0U2luZ2xlUm93VG9vbGJhciIsInNldElzVGV4dE11bHRpbGluZSIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJjbGVhclNlcSIsInNlbmREaXNhYmxlZCIsIm9uVHlwaW5nUHJlc2VuY2VDaGFuZ2UiLCJvbkVudGVyU2VuZCIsIm9uQ2hhbmdlUHJvcCIsInRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZiIsInByZXNlbmNlUHJldlJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInJlc2l6ZUVwb2NoIiwic2V0UmVzaXplRXBvY2giLCJoYW5kbGVSZXNpemUiLCJfdGV4dGFyZWFNaW5Db250ZW50V2kiLCJ0ZXh0YXJlYSIsImN1cnJlbnQiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJwcmV2aW91c01pbkhlaWdodCIsInN0eWxlIiwicHJldmlvdXNNYXhIZWlnaHQiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjb21wdXRlZFN0eWxlIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImxpbmVIZWlnaHQiLCJwYXJzZUZsb2F0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJib3JkZXJUb3AiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbSIsImJvcmRlckJvdHRvbVdpZHRoIiwic2luZ2xlTGluZUhlaWdodCIsImlzRW1wdHkiLCJ0cmltIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwidGV4dGFyZWFXaWR0aCIsIm9mZnNldFdpZHRoIiwibWluIiwid3JhcENoZWNrV2lkdGgiLCJjYW52YXNNZWFzdXJlSW5kaWNhdGVzTXVsdGlsaW5lIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2FudmFzQ29udGV4dCIsImdldENvbnRleHQiLCJ0ZXh0IiwibGluZXMiLCJ0ZXh0YXJlYVN0eWxlcyIsImZvbnQiLCJjb25jYXQiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImxpbmUiLCJtZWFzdXJlVGV4dCIsIndpZHRoIiwiaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyIsIm5leHRNdWx0aWxpbmUiLCJ2aXN1YWxMaW5lc0F0V3JhcFdpZHRoIiwidmlzdWFsTGluZXNBdEN1cnJlbnRXaWR0aCIsInNlZ21lbnQiLCJsaW5lc0ZvckhlaWdodCIsIm5ld0hlaWdodCIsInNuYXBwZWRTaW5nbGVMaW5lT3V0ZXJIZWlnaHQiLCJyb3VuZCIsInNuYXBwZWRIZWlnaHQiLCJwcmV2IiwiX2lucHV0UmVmJGN1cnJlbnQiLCJmb2N1cyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlkIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJoYW5kbGVDaGFuZ2UiLCJoYXNUcmltIiwidGFyZ2V0IiwieCIsImhhbmRsZUJsdXIiLCJfaW5wdXRSZWYkY3VycmVudCR2YWwiLCJfaW5wdXRSZWYkY3VycmVudDIiLCJ2IiwiaGFuZGxlS2V5RG93biIsImtleSIsInNoaWZ0S2V5IiwicHJldmVudERlZmF1bHQiLCJyZWYiLCJvbkNoYW5nZSIsIm9uS2V5RG93biIsIiR0b29sYmFyTGF5b3V0VmFyaWFudCIsIm9uQmx1ciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9NQUlBSW5wdXRFZGl0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdm9pZCAqL1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWRlc3RydWN0dXJpbmcgKi9cbmltcG9ydCB7IENoYW5nZUV2ZW50LCBLZXlib2FyZEV2ZW50LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRGlzcGF0Y2gsIFJlZk9iamVjdCwgU2V0U3RhdGVBY3Rpb24gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgU3R5bGVkTUFJQUlucHV0IH0gZnJvbSAnLi9zdHlsZXMnXG5cbi8qKlxuICogTMOtbmVhcyB2aXN1YWxlcyBjb24gd3JhcCBkZSBwYWxhYnJhcyBhbCBhbmNobyBkYWRvIChhcHJveC4gZWwgbmF2ZWdhZG9yIGVuIExUUikuXG4gKi9cbmZ1bmN0aW9uIGNvdW50VmlzdWFsTGluZXNXcmFwcGVkKHJhdzogc3RyaW5nLCBjb250ZW50V2lkdGhQeDogbnVtYmVyLCBtZWFzdXJlVGV4dFdpZHRoOiAoczogc3RyaW5nKSA9PiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoY29udGVudFdpZHRoUHggPD0gMSkge1xuICAgIHJldHVybiAxXG4gIH1cbiAgY29uc3QgcGFyYWdyYXBocyA9IHJhdy5zcGxpdCgnXFxuJylcbiAgbGV0IHRvdGFsID0gMFxuICBmb3IgKGNvbnN0IHBhcmFncmFwaCBvZiBwYXJhZ3JhcGhzKSB7XG4gICAgaWYgKHBhcmFncmFwaC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRvdGFsICs9IDFcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHdvcmRzID0gcGFyYWdyYXBoLnNwbGl0KC9cXHMrLykuZmlsdGVyKHcgPT4gdy5sZW5ndGggPiAwKVxuICAgIGxldCBsaW5lc0luUGFyYWdyYXBoID0gMVxuICAgIGxldCBjdXJyZW50TGluZVdpZHRoID0gMFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IHdvcmQgPSB3b3Jkc1tpXVxuICAgICAgY29uc3Qgd29yZFdpZHRoID0gbWVhc3VyZVRleHRXaWR0aCh3b3JkKVxuICAgICAgY29uc3Qgc3BhY2VXaWR0aCA9IGkgPiAwID8gbWVhc3VyZVRleHRXaWR0aCgnICcpIDogMFxuXG4gICAgICBpZiAod29yZFdpZHRoID4gY29udGVudFdpZHRoUHgpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRMaW5lV2lkdGggPiAwKSB7XG4gICAgICAgICAgbGluZXNJblBhcmFncmFwaCArPSAxXG4gICAgICAgICAgY3VycmVudExpbmVXaWR0aCA9IDBcbiAgICAgICAgfVxuICAgICAgICBsaW5lc0luUGFyYWdyYXBoICs9IE1hdGguY2VpbCh3b3JkV2lkdGggLyBjb250ZW50V2lkdGhQeCkgLSAxXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbmRpZGF0ZVdpZHRoID0gY3VycmVudExpbmVXaWR0aCA9PT0gMCA/IHdvcmRXaWR0aCA6IGN1cnJlbnRMaW5lV2lkdGggKyBzcGFjZVdpZHRoICsgd29yZFdpZHRoXG4gICAgICBpZiAoY2FuZGlkYXRlV2lkdGggPiBjb250ZW50V2lkdGhQeCAmJiBjdXJyZW50TGluZVdpZHRoID4gMCkge1xuICAgICAgICBsaW5lc0luUGFyYWdyYXBoICs9IDFcbiAgICAgICAgY3VycmVudExpbmVXaWR0aCA9IHdvcmRXaWR0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudExpbmVXaWR0aCA9IGNhbmRpZGF0ZVdpZHRoXG4gICAgICB9XG4gICAgfVxuICAgIHRvdGFsICs9IGxpbmVzSW5QYXJhZ3JhcGhcbiAgfVxuICByZXR1cm4gTWF0aC5tYXgoMSwgdG90YWwpXG59XG5cbmV4cG9ydCB0eXBlIE1BSUFJbnB1dEVkaXRvclByb3BzID0ge1xuICBpbnB1dFJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBudWxsPlxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBjb21wYWN0U2luZ2xlUm93VG9vbGJhcjogYm9vbGVhblxuICBzZXRJc1RleHRNdWx0aWxpbmU6IERpc3BhdGNoPFNldFN0YXRlQWN0aW9uPGJvb2xlYW4+PlxuICBjaGF0SWQ/OiBzdHJpbmdcbiAgbmV3Q2hhdEtleT86IG51bWJlclxuICAvKiogSW5jcmVtZW50YXIgZGVzZGUgZWwgcGFkcmUgdHJhcyBlbnZpYXIgLyBjYW1iaWFyIHNlc2nDs24gcGFyYSBzaW5jcm9uaXphciBtZWRpY2nDs24gc2luIGVzdGFkbyBkZWwgdGV4dG8gZW4gZWwgcGFkcmUuICovXG4gIGNsZWFyU2VxOiBudW1iZXJcbiAgc2VuZERpc2FibGVkOiBib29sZWFuXG4gIG9uVHlwaW5nUHJlc2VuY2VDaGFuZ2U6IChoYXNUcmltbWVkVGV4dDogYm9vbGVhbikgPT4gdm9pZFxuICBvbkVudGVyU2VuZDogKCkgPT4gdm9pZFxuICBvbkNoYW5nZVByb3A/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBSW5wdXRFZGl0b3IgPSAoe1xuICBpbnB1dFJlZixcbiAgZGlzYWJsZWQsXG4gIHBsYWNlaG9sZGVyLFxuICBhbGlnbkJ1dHRvbnMsXG4gIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyLFxuICBzZXRJc1RleHRNdWx0aWxpbmUsXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgY2xlYXJTZXEsXG4gIHNlbmREaXNhYmxlZCxcbiAgb25UeXBpbmdQcmVzZW5jZUNoYW5nZSxcbiAgb25FbnRlclNlbmQsXG4gIG9uQ2hhbmdlUHJvcCxcbn06IE1BSUFJbnB1dEVkaXRvclByb3BzKSA9PiB7XG4gIGNvbnN0IHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZiA9IHVzZVJlZjxudW1iZXIgfCBudWxsPihudWxsKVxuICBjb25zdCBwcmVzZW5jZVByZXZSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIC8qKiBTb2xvIHBhcmEgcmUtYWdlbmRhciBtZWRpY2nDs24gZGUgYWx0byBzaW4gZ3VhcmRhciBlbCBzdHJpbmcgZW4gZWwgcGFkcmUgKGFpc2xhIHJlLXJlbmRlcnMgZGVsIHRvb2xiYXIpLiAqL1xuICBjb25zdCBbcmVzaXplRXBvY2gsIHNldFJlc2l6ZUVwb2NoXSA9IHVzZVN0YXRlKDApXG5cbiAgY29uc3QgaGFuZGxlUmVzaXplID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHRleHRhcmVhID0gaW5wdXRSZWYuY3VycmVudFxuICAgIGlmICghdGV4dGFyZWEpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8qKiBDb2luY2lkZSBjb24gU3R5bGVkTUFJQUlucHV0OiBsaW5lLWhlaWdodCAyMHB4IHNvYnJlIGZ1ZW50ZSAxNHB4ICh+dW5hIGzDrW5lYSBkZSB0ZXh0byB2aXNpYmxlKS4gKi9cbiAgICBjb25zdCBtaW5IZWlnaHQgPSAyMFxuICAgIGNvbnN0IG1heEhlaWdodCA9IDEyMFxuXG4gICAgY29uc3QgcHJldmlvdXNNaW5IZWlnaHQgPSB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHRcbiAgICBjb25zdCBwcmV2aW91c01heEhlaWdodCA9IHRleHRhcmVhLnN0eWxlLm1heEhlaWdodFxuXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gJzBweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSdcblxuICAgIHZvaWQgdGV4dGFyZWEub2Zmc2V0SGVpZ2h0XG5cbiAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHRcblxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSlcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpIHx8IDIwXG4gICAgY29uc3QgcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nVG9wKSB8fCAwXG4gICAgY29uc3QgcGFkZGluZ0JvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nQm90dG9tKSB8fCAwXG4gICAgY29uc3QgYm9yZGVyVG9wID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlclRvcFdpZHRoKSB8fCAwXG4gICAgY29uc3QgYm9yZGVyQm90dG9tID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKSB8fCAwXG5cbiAgICBjb25zdCBzaW5nbGVMaW5lSGVpZ2h0ID0gbGluZUhlaWdodCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyVG9wICsgYm9yZGVyQm90dG9tXG5cbiAgICBjb25zdCBpc0VtcHR5ID0gdGV4dGFyZWEudmFsdWUudHJpbSgpID09PSAnJ1xuXG4gICAgY29uc3QgcGFkZGluZ0xlZnQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ0xlZnQpIHx8IDBcbiAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ1JpZ2h0KSB8fCAwXG4gICAgY29uc3QgYm9yZGVyTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGgpIHx8IDBcbiAgICBjb25zdCBib3JkZXJSaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJSaWdodFdpZHRoKSB8fCAwXG4gICAgY29uc3QgdGV4dGFyZWFXaWR0aCA9IHRleHRhcmVhLm9mZnNldFdpZHRoIC0gcGFkZGluZ0xlZnQgLSBwYWRkaW5nUmlnaHQgLSBib3JkZXJMZWZ0IC0gYm9yZGVyUmlnaHRcblxuICAgIGlmICghaXNFbXB0eSkge1xuICAgICAgdGV4dGFyZWFNaW5Db250ZW50V2lkdGhTZWVuUmVmLmN1cnJlbnQgPVxuICAgICAgICB0ZXh0YXJlYU1pbkNvbnRlbnRXaWR0aFNlZW5SZWYuY3VycmVudCA9PT0gbnVsbFxuICAgICAgICAgID8gdGV4dGFyZWFXaWR0aFxuICAgICAgICAgIDogTWF0aC5taW4odGV4dGFyZWFNaW5Db250ZW50V2lkdGhTZWVuUmVmLmN1cnJlbnQsIHRleHRhcmVhV2lkdGgpXG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcENoZWNrV2lkdGggPSB0ZXh0YXJlYU1pbkNvbnRlbnRXaWR0aFNlZW5SZWYuY3VycmVudCA/PyB0ZXh0YXJlYVdpZHRoXG5cbiAgICBsZXQgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IGZhbHNlXG5cbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKVxuICAgIGNvbnN0IGNhbnZhc0NvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuICAgIGNvbnN0IHRleHQgPSB0ZXh0YXJlYS52YWx1ZSB8fCAnJ1xuICAgIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgnXFxuJylcblxuICAgIGlmICghY2FudmFzQ29udGV4dCkge1xuICAgICAgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IHNjcm9sbEhlaWdodCA+IHNpbmdsZUxpbmVIZWlnaHQgKiAyLjA1XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRleHRhcmVhU3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGV4dGFyZWEpXG4gICAgICBjYW52YXNDb250ZXh0LmZvbnQgPSBgJHt0ZXh0YXJlYVN0eWxlcy5mb250V2VpZ2h0fSAke3RleHRhcmVhU3R5bGVzLmZvbnRTaXplfSAke3RleHRhcmVhU3R5bGVzLmZvbnRGYW1pbHl9YFxuICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IHRydWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycpIGNvbnRpbnVlXG4gICAgICAgICAgaWYgKGNhbnZhc0NvbnRleHQubWVhc3VyZVRleHQobGluZSkud2lkdGggPiB3cmFwQ2hlY2tXaWR0aCkge1xuICAgICAgICAgICAgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IHRydWVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IGNhbnZhc01lYXN1cmVJbmRpY2F0ZXNNdWx0aWxpbmVcblxuICAgIGNvbnN0IG5leHRNdWx0aWxpbmUgPSAhaXNFbXB0eSAmJiBoYXNNdWx0aXBsZVZpc3VhbExpbmVzXG5cbiAgICAvKiogTMOtbmVhcyBzZWfDum4gYW5jaG8gZXN0cmVjaG8gKGhpc3RvcnkgbWluKSDigJQgdG9vbGJhciBjb21wYWN0byB5IGRldGVjY2nDs24gbXVsdGlsaW5lICovXG4gICAgbGV0IHZpc3VhbExpbmVzQXRXcmFwV2lkdGggPSAxXG4gICAgLyoqIEzDrW5lYXMgYWwgYW5jaG8gYWN0dWFsIGRlbCB0ZXh0YXJlYSDigJQgZW4gc3RhY2tlZCBzdWVsZSBzZXIgbWF5b3IgcXVlIHdyYXBDaGVja1dpZHRoICovXG4gICAgbGV0IHZpc3VhbExpbmVzQXRDdXJyZW50V2lkdGggPSAxXG4gICAgaWYgKCFpc0VtcHR5ICYmIGNhbnZhc0NvbnRleHQpIHtcbiAgICAgIHZpc3VhbExpbmVzQXRXcmFwV2lkdGggPSBjb3VudFZpc3VhbExpbmVzV3JhcHBlZChcbiAgICAgICAgdGV4dCxcbiAgICAgICAgd3JhcENoZWNrV2lkdGgsXG4gICAgICAgIHNlZ21lbnQgPT4gY2FudmFzQ29udGV4dC5tZWFzdXJlVGV4dChzZWdtZW50KS53aWR0aFxuICAgICAgKVxuICAgICAgdmlzdWFsTGluZXNBdEN1cnJlbnRXaWR0aCA9IGNvdW50VmlzdWFsTGluZXNXcmFwcGVkKFxuICAgICAgICB0ZXh0LFxuICAgICAgICB0ZXh0YXJlYVdpZHRoLFxuICAgICAgICBzZWdtZW50ID0+IGNhbnZhc0NvbnRleHQubWVhc3VyZVRleHQoc2VnbWVudCkud2lkdGhcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKCFpc0VtcHR5ICYmICFjYW52YXNDb250ZXh0KSB7XG4gICAgICB2aXN1YWxMaW5lc0F0V3JhcFdpZHRoID0gc2Nyb2xsSGVpZ2h0ID4gc2luZ2xlTGluZUhlaWdodCAqIDEuODUgPyBNYXRoLmNlaWwoc2Nyb2xsSGVpZ2h0IC8gc2luZ2xlTGluZUhlaWdodCkgOiAxXG4gICAgICB2aXN1YWxMaW5lc0F0Q3VycmVudFdpZHRoID0gdmlzdWFsTGluZXNBdFdyYXBXaWR0aFxuICAgIH1cblxuICAgIGNvbnN0IGxpbmVzRm9ySGVpZ2h0ID0gIWlzRW1wdHkgJiYgY2FudmFzQ29udGV4dCA/IHZpc3VhbExpbmVzQXRDdXJyZW50V2lkdGggOiB2aXN1YWxMaW5lc0F0V3JhcFdpZHRoXG5cbiAgICBsZXQgbmV3SGVpZ2h0OiBudW1iZXJcbiAgICAvKiogVW5hIGzDrW5lYSBhbCBhbmNobyBhY3R1YWw6IGFsdHVyYSBmaWphZGEgcG9yIHRpcG9ncmFmw61hICgrIHBhZGRpbmcvYm9yZGUpLCBubyBzY3JvbGxIZWlnaHQg4oCUIGV2aXRhIH4zOXB4IGFsIHBhc2FyIGEgc3RhY2tlZCBjdWFuZG8gZWwgY2FudmFzIHlhIGN1ZW50YSAxIGzDrW5lYSBhIGFuY2hvIGFtcGxpbyBwZXJvIHNjcm9sbEhlaWdodCBhw7puIHZpZW5lIGRlIGzDrW5lYXMgdmllamFzL3dyYXAgYW50ZXJpb3IuICovXG4gICAgY29uc3Qgc25hcHBlZFNpbmdsZUxpbmVPdXRlckhlaWdodCA9IE1hdGgucm91bmQoc2luZ2xlTGluZUhlaWdodClcbiAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgbmV3SGVpZ2h0ID0gc25hcHBlZFNpbmdsZUxpbmVPdXRlckhlaWdodFxuICAgIH0gZWxzZSBpZiAoIWhhc011bHRpcGxlVmlzdWFsTGluZXMpIHtcbiAgICAgIG5ld0hlaWdodCA9IHNuYXBwZWRTaW5nbGVMaW5lT3V0ZXJIZWlnaHRcbiAgICB9IGVsc2UgaWYgKGxpbmVzRm9ySGVpZ2h0IDw9IDEpIHtcbiAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KHNuYXBwZWRTaW5nbGVMaW5lT3V0ZXJIZWlnaHQsIG1pbkhlaWdodCksIG1heEhlaWdodClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc25hcHBlZEhlaWdodCA9IHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyVG9wICsgYm9yZGVyQm90dG9tICsgbGluZXNGb3JIZWlnaHQgKiBsaW5lSGVpZ2h0XG4gICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChNYXRoLm1pbihzY3JvbGxIZWlnaHQsIHNuYXBwZWRIZWlnaHQpLCBtaW5IZWlnaHQpLCBtYXhIZWlnaHQpXG4gICAgfVxuXG4gICAgc2V0SXNUZXh0TXVsdGlsaW5lKHByZXYgPT4gKHByZXYgPT09IG5leHRNdWx0aWxpbmUgPyBwcmV2IDogbmV4dE11bHRpbGluZSkpXG5cbiAgICB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHQgPSBwcmV2aW91c01pbkhlaWdodCB8fCBgJHttaW5IZWlnaHR9cHhgXG4gICAgdGV4dGFyZWEuc3R5bGUubWF4SGVpZ2h0ID0gcHJldmlvdXNNYXhIZWlnaHQgfHwgJzEyMHB4J1xuXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YFxuICB9LCBbaW5wdXRSZWYsIHNldElzVGV4dE11bHRpbGluZV0pXG5cbiAgLyoqIENvbXBhY3TihpRzdGFja2VkIGNhbWJpYSBlbCBncmlkL0NTUyBkZWwgdGV4dGFyZWE7IG1lZGlyIGVuIGxheW91dCBldml0YSB1biBmcmFtZSBjb24gYWx0byBkZXNpbmNyb25pemFkbyAoc29icmUgdG9kbyBjb21wYWN04oaSc3RhY2tlZCkuICovXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGFuZGxlUmVzaXplKClcbiAgfSwgW2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyLCBoYW5kbGVSZXNpemVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlucHV0UmVmLmN1cnJlbnQ/LnZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgfSwgW3Jlc2l6ZUVwb2NoXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbY2hhdElkLCBuZXdDaGF0S2V5XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbnB1dFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZCkge1xuICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNpemUoKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtkaXNhYmxlZCwgaGFuZGxlUmVzaXplXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjbGVhclNlcSA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZi5jdXJyZW50ID0gbnVsbFxuICAgIHByZXNlbmNlUHJldlJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9KVxuICB9LCBbY2xlYXJTZXEsIGhhbmRsZVJlc2l6ZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgIH0pXG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKGlkKVxuICB9LCBbcmVzaXplRXBvY2gsIGhhbmRsZVJlc2l6ZV0pXG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKGU6IENoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgaGFzVHJpbSA9IGUudGFyZ2V0LnZhbHVlLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgaWYgKGhhc1RyaW0gIT09IHByZXNlbmNlUHJldlJlZi5jdXJyZW50KSB7XG4gICAgICBwcmVzZW5jZVByZXZSZWYuY3VycmVudCA9IGhhc1RyaW1cbiAgICAgIG9uVHlwaW5nUHJlc2VuY2VDaGFuZ2UoaGFzVHJpbSlcbiAgICB9XG4gICAgc2V0UmVzaXplRXBvY2goeCA9PiB4ICsgMSlcbiAgICBvbkNoYW5nZVByb3A/LigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHYgPSBpbnB1dFJlZi5jdXJyZW50Py52YWx1ZSA/PyAnJ1xuICAgIGNvbnN0IGhhc1RyaW0gPSB2LnRyaW0oKS5sZW5ndGggPiAwXG4gICAgaWYgKGhhc1RyaW0gIT09IHByZXNlbmNlUHJldlJlZi5jdXJyZW50KSB7XG4gICAgICBwcmVzZW5jZVByZXZSZWYuY3VycmVudCA9IGhhc1RyaW1cbiAgICAgIG9uVHlwaW5nUHJlc2VuY2VDaGFuZ2UoaGFzVHJpbSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgaWYgKCFzZW5kRGlzYWJsZWQgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgIG9uRW50ZXJTZW5kKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRNQUlBSW5wdXRcbiAgICAgIHJlZj17aW5wdXRSZWYgYXMgUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+fVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGFsaWduQnV0dG9ucz17YWxpZ25CdXR0b25zfVxuICAgICAgJHRvb2xiYXJMYXlvdXRWYXJpYW50PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhciA/ICdjb21wYWN0Um93JyA6ICdzdGFja2VkUm93cyd9XG4gICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgLz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFxQ0EsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLGVBQWUsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEs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LGNBQWMsQ0FBQyxVQUFBMkUsQ0FBQztNQUFBLE9BQUlBLENBQUMsR0FBRyxDQUFDO0lBQUEsRUFBQztJQUMxQmxGLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUcsQ0FBQztFQUNsQixDQUFDO0VBRUQsSUFBTW1GLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxrQkFBQTtJQUN2QixJQUFNQyxDQUFDLElBQUFGLHFCQUFBLElBQUFDLGtCQUFBLEdBQUdqRyxRQUFRLENBQUN1QixPQUFPLGNBQUEwRSxrQkFBQSx1QkFBaEJBLGtCQUFBLENBQWtCckgsS0FBSyxjQUFBb0gscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxFQUFFO0lBQ3ZDLElBQU1KLE9BQU8sR0FBR00sQ0FBQyxDQUFDckQsSUFBSSxDQUFDLENBQUMsQ0FBQ2hFLE1BQU0sR0FBRyxDQUFDO0lBQ25DLElBQUkrRyxPQUFPLEtBQUs5RSxlQUFlLENBQUNTLE9BQU8sRUFBRTtNQUN2Q1QsZUFBZSxDQUFDUyxPQUFPLEdBQUdxRSxPQUFPO01BQ2pDbEYsc0JBQXNCLENBQUNrRixPQUFPLENBQUM7SUFDakM7RUFDRixDQUFDO0VBRUQsSUFBTU8sYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJeEcsQ0FBcUMsRUFBSztJQUMvRCxJQUFJQSxDQUFDLENBQUN5RyxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUN6RyxDQUFDLENBQUMwRyxRQUFRLEVBQUU7TUFDcEMxRyxDQUFDLENBQUMyRyxjQUFjLENBQUMsQ0FBQztNQUNsQixJQUFJLENBQUM3RixZQUFZLElBQUksQ0FBQ1IsUUFBUSxFQUFFO1FBQzlCVSxXQUFXLENBQUMsQ0FBQztNQUNmO0lBQ0Y7RUFDRixDQUFDO0VBRUQsb0JBQ0U5QyxJQUFBLENBQUNGLGVBQWU7SUFDZDRJLEdBQUcsRUFBRXZHLFFBQTJDO0lBQ2hEQyxRQUFRLEVBQUVBLFFBQVM7SUFDbkJ1RyxRQUFRLEVBQUViLFlBQWE7SUFDdkJjLFNBQVMsRUFBRU4sYUFBYztJQUN6QmpHLFdBQVcsRUFBRUEsV0FBWTtJQUN6QkMsWUFBWSxFQUFFQSxZQUFhO0lBQzNCdUcscUJBQXFCLEVBQUV0Ryx1QkFBdUIsR0FBRyxZQUFZLEdBQUcsYUFBYztJQUM5RXVHLE1BQU0sRUFBRVo7RUFBVyxDQUNwQixDQUFDO0FBRU4sQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==