botframework-webchat-api 4.15.4 → 4.15.5-main.20220927.f9dd67a
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.
- package/lib/hooks/Composer.d.ts +4 -4
- package/lib/hooks/Composer.d.ts.map +1 -1
- package/lib/hooks/Composer.js +1 -1
- package/lib/hooks/internal/WebChatAPIContext.d.ts +6 -6
- package/lib/hooks/internal/WebChatAPIContext.d.ts.map +1 -1
- package/lib/hooks/internal/WebChatAPIContext.js +1 -1
- package/lib/types/ActivityMiddleware.d.ts +2 -2
- package/lib/types/ActivityMiddleware.d.ts.map +1 -1
- package/lib/types/ActivityMiddleware.js +1 -1
- package/lib/types/CardActionMiddleware.d.ts +2 -2
- package/lib/types/CardActionMiddleware.d.ts.map +1 -1
- package/lib/types/CardActionMiddleware.js +1 -1
- package/package.json +17 -15
- package/src/hooks/Composer.tsx +5 -1
- package/src/hooks/internal/WebChatAPIContext.ts +6 -2
- package/src/types/ActivityMiddleware.ts +1 -1
- package/src/types/CardActionMiddleware.ts +1 -1
package/lib/hooks/Composer.d.ts
CHANGED
|
@@ -34,10 +34,10 @@ declare type ComposerCoreProps = {
|
|
|
34
34
|
locale?: string;
|
|
35
35
|
onTelemetry?: (event: TelemetryMeasurementEvent) => void;
|
|
36
36
|
overrideLocalizedStrings?: LocalizedStrings | ((strings: LocalizedStrings, language: string) => LocalizedStrings);
|
|
37
|
-
renderMarkdown?: (markdown: string,
|
|
38
|
-
markdownRespectCRLF:
|
|
39
|
-
},
|
|
40
|
-
externalLinkAlt:
|
|
37
|
+
renderMarkdown?: (markdown: string, newLineOptions: {
|
|
38
|
+
markdownRespectCRLF: boolean;
|
|
39
|
+
}, linkOptions: {
|
|
40
|
+
externalLinkAlt: string;
|
|
41
41
|
}) => string;
|
|
42
42
|
scrollToEndButtonMiddleware?: OneOrMany<ScrollToEndButtonMiddleware>;
|
|
43
43
|
selectVoice?: (voices: typeof window.SpeechSynthesisVoice[], activity: WebChatActivity) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/hooks/Composer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AA+BjF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAG5E,OAAO,kBAAkB,MAAM,6BAA6B,CAAC;AAE7D,OAAO,mCAAmC,MAAM,8CAA8C,CAAC;AAC/F,OAAO,oBAAoB,MAAM,+BAA+B,CAAC;AACjE,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,oBAAoB,MAAM,+BAA+B,CAAC;AAOjE,OAAO,yBAAyB,MAAM,oCAAoC,CAAC;AAE3E,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AAOzD,OAAO,2BAAkE,MAAM,sCAAsC,CAAC;AACtH,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,yBAAiE,MAAM,oCAAoC,CAAC;AACnH,OAAO,eAAe,MAAM,0BAA0B,CAAC;AAEvD,OAAO,yBAAyB,MAAM,oCAAoC,CAAC;AAa3E,OAAO,KAAK,EAAE,wBAAwB,EAAwB,MAAM,mCAAmC,CAAC;AACxG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACvG,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAwG3C,aAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACnD,wBAAwB,CAAC,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC/D,mCAAmC,CAAC,EAAE,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACrF,oBAAoB,CAAC,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC/C,oBAAoB,CAAC,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,iBAAiB,CAAC,KAAK,SAAS,CAAC,CAAC;IACrF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,yBAAyB,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACrH,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,yBAAyB,CAAC,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACjE,qBAAqB,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,KAAK,gBAAgB,CAAC,CAAC;IAClH,cAAc,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/hooks/Composer.tsx"],"names":[],"mappings":"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"}
|
package/lib/hooks/Composer.js
CHANGED
|
@@ -645,4 +645,4 @@ Composer.propTypes = {
|
|
|
645
645
|
};
|
|
646
646
|
var _default = Composer;
|
|
647
647
|
exports.default = _default;
|
|
648
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJESVNQQVRDSEVSUyIsImNsZWFyU3VnZ2VzdGVkQWN0aW9ucyIsImRpc21pc3NOb3RpZmljYXRpb24iLCJlbWl0VHlwaW5nSW5kaWNhdG9yIiwibWFya0FjdGl2aXR5IiwicG9zdEFjdGl2aXR5Iiwic2VuZEV2ZW50Iiwic2VuZEZpbGVzIiwic2VuZE1lc3NhZ2UiLCJzZW5kTWVzc2FnZUJhY2siLCJzZW5kUG9zdEJhY2siLCJzZXREaWN0YXRlSW50ZXJpbXMiLCJzZXREaWN0YXRlU3RhdGUiLCJzZXROb3RpZmljYXRpb24iLCJzZXRTZW5kQm94Iiwic2V0U2VuZFRpbWVvdXQiLCJzdGFydERpY3RhdGUiLCJzdGFydFNwZWFraW5nQWN0aXZpdHkiLCJzdG9wRGljdGF0ZSIsInN0b3BTcGVha2luZ0FjdGl2aXR5Iiwic3VibWl0U2VuZEJveCIsImNyZWF0ZUNhcmRBY3Rpb25Db250ZXh0IiwiY2FyZEFjdGlvbk1pZGRsZXdhcmUiLCJkaXJlY3RMaW5lIiwiZGlzcGF0Y2giLCJtYXJrQWxsQXNBY2tub3dsZWRnZWQiLCJydW5NaWRkbGV3YXJlIiwiYXBwbHlNaWRkbGV3YXJlIiwic2luZ2xlVG9BcnJheSIsImNyZWF0ZURlZmF1bHRDYXJkQWN0aW9uTWlkZGxld2FyZSIsIm9uQ2FyZEFjdGlvbiIsImNhcmRBY3Rpb24iLCJ0YXJnZXQiLCJnZXRTaWduSW5VcmwiLCJ0eXBlIiwidmFsdWUiLCJnZXRTZXNzaW9uSWQiLCJvYnNlcnZhYmxlVG9Qcm9taXNlIiwidGhlbiIsInNlc3Npb25JZCIsImVuY29kZVVSSUNvbXBvbmVudCIsImNvbnNvbGUiLCJ3YXJuIiwiY3JlYXRlR3JvdXBBY3Rpdml0aWVzQ29udGV4dCIsImdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUiLCJncm91cFRpbWVzdGFtcCIsImNyZWF0ZURlZmF1bHRHcm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlIiwiZ3JvdXBBY3Rpdml0aWVzIiwibWVyZ2VTdHJpbmdzT3ZlcnJpZGVzIiwibG9jYWxpemVkU3RyaW5ncyIsImxhbmd1YWdlIiwib3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzIiwibWVyZ2VkIiwiaXNPYmplY3QiLCJFcnJvciIsIkNvbXBvc2VyQ29yZSIsImFjdGl2aXR5TWlkZGxld2FyZSIsImFjdGl2aXR5UmVuZGVyZXIiLCJhY3Rpdml0eVN0YXR1c01pZGRsZXdhcmUiLCJhY3Rpdml0eVN0YXR1c1JlbmRlcmVyIiwiYXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmUiLCJhdHRhY2htZW50TWlkZGxld2FyZSIsImF0dGFjaG1lbnRSZW5kZXJlciIsImF2YXRhck1pZGRsZXdhcmUiLCJhdmF0YXJSZW5kZXJlciIsImNoaWxkcmVuIiwiZGlyIiwiZGlzYWJsZWQiLCJkb3duc2NhbGVJbWFnZVRvRGF0YVVSTCIsImdyYW1tYXJzIiwiaW50ZXJuYWxFcnJvckJveENsYXNzIiwibG9jYWxlIiwib25UZWxlbWV0cnkiLCJyZW5kZXJNYXJrZG93biIsInNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZSIsInNlbGVjdFZvaWNlIiwic2VuZFRpbWVvdXQiLCJzZW5kVHlwaW5nSW5kaWNhdG9yIiwic3R5bGVPcHRpb25zIiwidG9hc3RNaWRkbGV3YXJlIiwidG9hc3RSZW5kZXJlciIsInR5cGluZ0luZGljYXRvck1pZGRsZXdhcmUiLCJ0eXBpbmdJbmRpY2F0b3JSZW5kZXJlciIsInVzZXJJRCIsInVzZXJuYW1lIiwidXNlRGlzcGF0Y2giLCJ0ZWxlbWV0cnlEaW1lbnNpb25zUmVmIiwidXNlUmVmIiwicGF0Y2hlZERpciIsInVzZU1lbW8iLCJwYXRjaGVkR3JhbW1hcnMiLCJwYXRjaGVkU3R5bGVPcHRpb25zIiwibm9ybWFsaXplU3R5bGVPcHRpb25zIiwicGF0Y2hTdHlsZU9wdGlvbnNGcm9tRGVwcmVjYXRlZFByb3BzIiwidXNlRWZmZWN0Iiwic2V0TGFuZ3VhZ2UiLCJzZXRTZW5kVHlwaW5nSW5kaWNhdG9yIiwiY3JlYXRlQ29ubmVjdEFjdGlvbiIsImRpc2Nvbm5lY3QiLCJ1c2VNYXJrQWxsQXNBY2tub3dsZWRnZWQiLCJjYXJkQWN0aW9uQ29udGV4dCIsInBhdGNoZWRTZWxlY3RWb2ljZSIsImRlZmF1bHRTZWxlY3RWb2ljZSIsImJpbmQiLCJncm91cEFjdGl2aXRpZXNDb250ZXh0IiwiaG9pc3RlZERpc3BhdGNoZXJzIiwibWFwTWFwIiwiZGlzcGF0Y2hlciIsInBhdGNoZWRMb2NhbGl6ZWRTdHJpbmdzIiwiZ2V0QWxsTG9jYWxpemVkU3RyaW5ncyIsIm5vcm1hbGl6ZUxhbmd1YWdlIiwibG9jYWxpemVkR2xvYmFsaXplIiwiR0xPQkFMSVpFIiwiR0xPQkFMSVpFX0xBTkdVQUdFIiwiUHJlY29tcGlsZWRHbG9iYWxpemUiLCJ0cmFja0RpbWVuc2lvbiIsInVzZUNhbGxiYWNrIiwibmFtZSIsImRhdGEiLCJjdXJyZW50IiwidXBkYXRlSW4iLCJwYXRjaGVkQWN0aXZpdHlSZW5kZXJlciIsImFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyIiwic3RyaWN0IiwiYWN0aXZpdHkiLCJwYXRjaGVkQWN0aXZpdHlTdGF0dXNSZW5kZXJlciIsInBhdGNoZWRBdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyUmVuZGVyZXIiLCJhdHRhY2htZW50IiwiY29udGVudFR5cGUiLCJwYXRjaGVkQXR0YWNobWVudFJlbmRlcmVyIiwiYXBwbHlNaWRkbGV3YXJlRm9yTGVnYWN5UmVuZGVyZXIiLCJwYXRjaGVkQXZhdGFyUmVuZGVyZXIiLCJwYXRjaGVkVG9hc3RSZW5kZXJlciIsIm5vdGlmaWNhdGlvbiIsInBhdGNoZWRUeXBpbmdJbmRpY2F0b3JSZW5kZXJlciIsInNjcm9sbFRvRW5kQnV0dG9uUmVuZGVyZXIiLCJjb250ZXh0IiwiYXR0YWNobWVudEZvclNjcmVlblJlYWRlclJlbmRlcmVyIiwibG9jYWxpemVkR2xvYmFsaXplU3RhdGUiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJ3aW5kb3ciLCJuYXZpZ2F0b3IiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwiZnVuYyIsImFueSIsIm9uZU9mIiwic2hhcGUiLCJhY3Rpdml0eSQiLCJzdWJzY3JpYmUiLCJpc1JlcXVpcmVkIiwiY29ubmVjdGlvblN0YXR1cyQiLCJlbmQiLCJyZWZlcmVuY2VHcmFtbWFySUQiLCJzdHJpbmciLCJ0b2tlbiIsImJvb2wiLCJudW1iZXIiLCJDb21wb3NlciIsImludGVybmFsUmVuZGVyRXJyb3JCb3giLCJzdG9yZSIsInByb3BzIiwidXNlU3RhdGUiLCJlcnJvciIsInNldEVycm9yIiwiaGFuZGxlRXJyb3IiLCJjcmVhdGVDdXN0b21FdmVudCIsImZhdGFsIiwibWVtb2l6ZWRTdG9yZSIsImNyZWF0ZVN0b3JlIiwiV2ViQ2hhdFJlZHV4Q29udGV4dCJdLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL0NvbXBvc2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1cGRhdGVJbiBmcm9tICdzaW1wbGUtdXBkYXRlLWluJztcbmltcG9ydCB7XG4gIGNsZWFyU3VnZ2VzdGVkQWN0aW9ucyxcbiAgY29ubmVjdCBhcyBjcmVhdGVDb25uZWN0QWN0aW9uLFxuICBjcmVhdGVTdG9yZSxcbiAgZGlzY29ubmVjdCxcbiAgZGlzbWlzc05vdGlmaWNhdGlvbixcbiAgZW1pdFR5cGluZ0luZGljYXRvcixcbiAgbWFya0FjdGl2aXR5LFxuICBwb3N0QWN0aXZpdHksXG4gIHNlbmRFdmVudCxcbiAgc2VuZEZpbGVzLFxuICBzZW5kTWVzc2FnZSxcbiAgc2VuZE1lc3NhZ2VCYWNrLFxuICBzZW5kUG9zdEJhY2ssXG4gIHNldERpY3RhdGVJbnRlcmltcyxcbiAgc2V0RGljdGF0ZVN0YXRlLFxuICBzZXRMYW5ndWFnZSxcbiAgc2V0Tm90aWZpY2F0aW9uLFxuICBzZXRTZW5kQm94LFxuICBzZXRTZW5kVGltZW91dCxcbiAgc2V0U2VuZFR5cGluZ0luZGljYXRvcixcbiAgc2luZ2xlVG9BcnJheSxcbiAgc3RhcnREaWN0YXRlLFxuICBzdGFydFNwZWFraW5nQWN0aXZpdHksXG4gIHN0b3BEaWN0YXRlLFxuICBzdG9wU3BlYWtpbmdBY3Rpdml0eSxcbiAgc3VibWl0U2VuZEJveFxufSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IHsgZGVmYXVsdCBhcyBXZWJDaGF0QVBJQ29udGV4dCB9IGZyb20gJy4vaW50ZXJuYWwvV2ViQ2hhdEFQSUNvbnRleHQnO1xuaW1wb3J0IEFjdGl2aXR5QWNrbm93bGVkZ2VtZW50Q29tcG9zZXIgZnJvbSAnLi4vcHJvdmlkZXJzL0FjdGl2aXR5QWNrbm93bGVkZ2VtZW50L0FjdGl2aXR5QWNrbm93bGVkZ2VtZW50Q29tcG9zZXInO1xuaW1wb3J0IEFjdGl2aXR5S2V5ZXJDb21wb3NlciBmcm9tICcuLi9wcm92aWRlcnMvQWN0aXZpdHlLZXllci9BY3Rpdml0eUtleWVyQ29tcG9zZXInO1xuaW1wb3J0IEFjdGl2aXR5TWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9BY3Rpdml0eU1pZGRsZXdhcmUnO1xuaW1wb3J0IEFjdGl2aXR5U2VuZFN0YXR1c0NvbXBvc2VyIGZyb20gJy4uL3Byb3ZpZGVycy9BY3Rpdml0eVNlbmRTdGF0dXMvQWN0aXZpdHlTZW5kU3RhdHVzQ29tcG9zZXInO1xuaW1wb3J0IEF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlIGZyb20gJy4uL3R5cGVzL0F0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlJztcbmltcG9ydCBBdHRhY2htZW50TWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9BdHRhY2htZW50TWlkZGxld2FyZSc7XG5pbXBvcnQgQXZhdGFyTWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9BdmF0YXJNaWRkbGV3YXJlJztcbmltcG9ydCBDYXJkQWN0aW9uTWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9DYXJkQWN0aW9uTWlkZGxld2FyZSc7XG5pbXBvcnQgY3JlYXRlQ3VzdG9tRXZlbnQgZnJvbSAnLi4vdXRpbHMvY3JlYXRlQ3VzdG9tRXZlbnQnO1xuaW1wb3J0IGNyZWF0ZURlZmF1bHRDYXJkQWN0aW9uTWlkZGxld2FyZSBmcm9tICcuL21pZGRsZXdhcmUvY3JlYXRlRGVmYXVsdENhcmRBY3Rpb25NaWRkbGV3YXJlJztcbmltcG9ydCBjcmVhdGVEZWZhdWx0R3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSBmcm9tICcuL21pZGRsZXdhcmUvY3JlYXRlRGVmYXVsdEdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUnO1xuaW1wb3J0IGRlZmF1bHRTZWxlY3RWb2ljZSBmcm9tICcuL2ludGVybmFsL2RlZmF1bHRTZWxlY3RWb2ljZSc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICcuL3V0aWxzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IGdldEFsbExvY2FsaXplZFN0cmluZ3MgZnJvbSAnLi4vbG9jYWxpemF0aW9uL2dldEFsbExvY2FsaXplZFN0cmluZ3MnO1xuaW1wb3J0IEdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUgZnJvbSAnLi4vdHlwZXMvR3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi4vdXRpbHMvaXNPYmplY3QnO1xuaW1wb3J0IExvY2FsaXplZFN0cmluZ3MgZnJvbSAnLi4vdHlwZXMvTG9jYWxpemVkU3RyaW5ncyc7XG5pbXBvcnQgbWFwTWFwIGZyb20gJy4uL3V0aWxzL21hcE1hcCc7XG5pbXBvcnQgbm9ybWFsaXplTGFuZ3VhZ2UgZnJvbSAnLi4vdXRpbHMvbm9ybWFsaXplTGFuZ3VhZ2UnO1xuaW1wb3J0IG5vcm1hbGl6ZVN0eWxlT3B0aW9ucyBmcm9tICcuLi9ub3JtYWxpemVTdHlsZU9wdGlvbnMnO1xuaW1wb3J0IG9ic2VydmFibGVUb1Byb21pc2UgZnJvbSAnLi91dGlscy9vYnNlcnZhYmxlVG9Qcm9taXNlJztcbmltcG9ydCBwYXRjaFN0eWxlT3B0aW9uc0Zyb21EZXByZWNhdGVkUHJvcHMgZnJvbSAnLi4vcGF0Y2hTdHlsZU9wdGlvbnNGcm9tRGVwcmVjYXRlZFByb3BzJztcbmltcG9ydCBQcmVjb21waWxlZEdsb2JhbGl6ZVR5cGUgZnJvbSAnLi4vdHlwZXMvUHJlY29tcGlsZWRHbG9iYWxpemUnO1xuaW1wb3J0IFNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZSwgeyBTY3JvbGxUb0VuZEJ1dHRvbkNvbXBvbmVudEZhY3RvcnkgfSBmcm9tICcuLi90eXBlcy9TY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmUnO1xuaW1wb3J0IFN0eWxlT3B0aW9ucyBmcm9tICcuLi9TdHlsZU9wdGlvbnMnO1xuaW1wb3J0IFRlbGVtZXRyeU1lYXN1cmVtZW50RXZlbnQsIHsgVGVsZW1ldHJ5RXhjZXB0aW9uTWVhc3VyZW1lbnRFdmVudCB9IGZyb20gJy4uL3R5cGVzL1RlbGVtZXRyeU1lYXN1cmVtZW50RXZlbnQnO1xuaW1wb3J0IFRvYXN0TWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9Ub2FzdE1pZGRsZXdhcmUnO1xuaW1wb3J0IFRyYWNrZXIgZnJvbSAnLi9pbnRlcm5hbC9UcmFja2VyJztcbmltcG9ydCBUeXBpbmdJbmRpY2F0b3JNaWRkbGV3YXJlIGZyb20gJy4uL3R5cGVzL1R5cGluZ0luZGljYXRvck1pZGRsZXdhcmUnO1xuaW1wb3J0IHVzZU1hcmtBbGxBc0Fja25vd2xlZGdlZCBmcm9tICcuL3VzZU1hcmtBbGxBc0Fja25vd2xlZGdlZCc7XG5pbXBvcnQgV2ViQ2hhdFJlZHV4Q29udGV4dCwgeyB1c2VEaXNwYXRjaCB9IGZyb20gJy4vaW50ZXJuYWwvV2ViQ2hhdFJlZHV4Q29udGV4dCc7XG5cbmltcG9ydCBhcHBseU1pZGRsZXdhcmUsIHtcbiAgZm9yTGVnYWN5UmVuZGVyZXIgYXMgYXBwbHlNaWRkbGV3YXJlRm9yTGVnYWN5UmVuZGVyZXIsXG4gIGZvclJlbmRlcmVyIGFzIGFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyXG59IGZyb20gJy4vbWlkZGxld2FyZS9hcHBseU1pZGRsZXdhcmUnO1xuXG4vLyBQcmVjb21waWxlR2xvYmFsaXplIGlzIGEgZ2VuZXJhdGVkIGZpbGUgYW5kIGlzIG5vdCBFUyBtb2R1bGUuIFR5cGVTY3JpcHQgZG9uJ3Qgd29yayB3aXRoIFVNRC5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCBQcmVjb21waWxlZEdsb2JhbGl6ZSBmcm9tICcuLi9leHRlcm5hbC9QcmVjb21waWxlZEdsb2JhbGl6ZSc7XG5cbmltcG9ydCB0eXBlIHsgQWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlLCBSZW5kZXJBY3Rpdml0eVN0YXR1cyB9IGZyb20gJy4uL3R5cGVzL0FjdGl2aXR5U3RhdHVzTWlkZGxld2FyZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRPZiB9IGZyb20gJy4uL3R5cGVzL2ludGVybmFsL0NvbnRleHRPZic7XG5pbXBvcnQgdHlwZSB7IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb24sIE9uZU9yTWFueSwgV2ViQ2hhdEFjdGl2aXR5IH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5pbXBvcnQgdHlwZSB7IEZDLCBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbi8vIExpc3Qgb2YgUmVkdXggYWN0aW9ucyBmYWN0b3J5IHdlIGFyZSBob2lzdGluZyBhcyBXZWIgQ2hhdCBmdW5jdGlvbnNcbmNvbnN0IERJU1BBVENIRVJTID0ge1xuICBjbGVhclN1Z2dlc3RlZEFjdGlvbnMsXG4gIGRpc21pc3NOb3RpZmljYXRpb24sXG4gIGVtaXRUeXBpbmdJbmRpY2F0b3IsXG4gIG1hcmtBY3Rpdml0eSxcbiAgcG9zdEFjdGl2aXR5LFxuICBzZW5kRXZlbnQsXG4gIHNlbmRGaWxlcyxcbiAgc2VuZE1lc3NhZ2UsXG4gIHNlbmRNZXNzYWdlQmFjayxcbiAgc2VuZFBvc3RCYWNrLFxuICBzZXREaWN0YXRlSW50ZXJpbXMsXG4gIHNldERpY3RhdGVTdGF0ZSxcbiAgc2V0Tm90aWZpY2F0aW9uLFxuICBzZXRTZW5kQm94LFxuICBzZXRTZW5kVGltZW91dCxcbiAgc3RhcnREaWN0YXRlLFxuICBzdGFydFNwZWFraW5nQWN0aXZpdHksXG4gIHN0b3BEaWN0YXRlLFxuICBzdG9wU3BlYWtpbmdBY3Rpdml0eSxcbiAgc3VibWl0U2VuZEJveFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQ2FyZEFjdGlvbkNvbnRleHQoeyBjYXJkQWN0aW9uTWlkZGxld2FyZSwgZGlyZWN0TGluZSwgZGlzcGF0Y2gsIG1hcmtBbGxBc0Fja25vd2xlZGdlZCB9KSB7XG4gIGNvbnN0IHJ1bk1pZGRsZXdhcmUgPSBhcHBseU1pZGRsZXdhcmUoXG4gICAgJ2NhcmQgYWN0aW9uJyxcbiAgICAuLi5zaW5nbGVUb0FycmF5KGNhcmRBY3Rpb25NaWRkbGV3YXJlKSxcbiAgICBjcmVhdGVEZWZhdWx0Q2FyZEFjdGlvbk1pZGRsZXdhcmUoKVxuICApKHsgZGlzcGF0Y2ggfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBvbkNhcmRBY3Rpb246IChjYXJkQWN0aW9uLCB7IHRhcmdldCB9OiB7IHRhcmdldD86IGFueSB9ID0ge30pID0+IHtcbiAgICAgIG1hcmtBbGxBc0Fja25vd2xlZGdlZCgpO1xuXG4gICAgICByZXR1cm4gcnVuTWlkZGxld2FyZSh7XG4gICAgICAgIGNhcmRBY3Rpb24sXG4gICAgICAgIGdldFNpZ25JblVybDpcbiAgICAgICAgICBjYXJkQWN0aW9uLnR5cGUgPT09ICdzaWduaW4nXG4gICAgICAgICAgICA/ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBjYXJkQWN0aW9uO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRpcmVjdExpbmUuZ2V0U2Vzc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAqIEB0b2RvIFRPRE86IFtQM10gV2Ugc2hvdWxkIGNoYW5nZSB0aGlzIG9uZSB0byBhc3luYy9hd2FpdC5cbiAgICAgICAgICAgICAgICAgICAqICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHBsYWNlIGluIHRoaXMgcHJvamVjdCB0byB1c2UgYXN5bmMuXG4gICAgICAgICAgICAgICAgICAgKiAgICAgICBUaHVzLCB3ZSBuZWVkIHRvIGFkZCBAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1ydW50aW1lIGFuZCBAYmFiZWwvcnVudGltZS5cbiAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVUb1Byb21pc2UoZGlyZWN0TGluZS5nZXRTZXNzaW9uSWQoKSkudGhlbihcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkID0+IGAke3ZhbHVlfSR7ZW5jb2RlVVJJQ29tcG9uZW50KGAmY29kZV9jaGFsbGVuZ2U9JHtzZXNzaW9uSWR9YCl9YFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBPQXV0aCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgRGlyZWN0IExpbmUgYWRhcHRlci4nKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICB0YXJnZXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlR3JvdXBBY3Rpdml0aWVzQ29udGV4dCh7IGdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUsIGdyb3VwVGltZXN0YW1wIH0pIHtcbiAgY29uc3QgcnVuTWlkZGxld2FyZSA9IGFwcGx5TWlkZGxld2FyZShcbiAgICAnZ3JvdXAgYWN0aXZpdGllcycsXG4gICAgLi4uc2luZ2xlVG9BcnJheShncm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlKSxcbiAgICBjcmVhdGVEZWZhdWx0R3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSh7IGdyb3VwVGltZXN0YW1wIH0pXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBncm91cEFjdGl2aXRpZXM6IHJ1bk1pZGRsZXdhcmUoe30pXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1lcmdlU3RyaW5nc092ZXJyaWRlcyhsb2NhbGl6ZWRTdHJpbmdzLCBsYW5ndWFnZSwgb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzKSB7XG4gIGlmICghb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzKSB7XG4gICAgcmV0dXJuIGxvY2FsaXplZFN0cmluZ3M7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IG1lcmdlZCA9IG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyhsb2NhbGl6ZWRTdHJpbmdzLCBsYW5ndWFnZSk7XG5cbiAgICBpZiAoIWlzT2JqZWN0KG1lcmdlZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyBmdW5jdGlvbiBtdXN0IHJldHVybiBhbiBvYmplY3QuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlZDtcbiAgfVxuXG4gIGlmICghaXNPYmplY3Qob3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyBtdXN0IGJlIGVpdGhlciBhIGZ1bmN0aW9uLCBhbiBvYmplY3QsIG9yIGZhbHN5LicpO1xuICB9XG5cbiAgcmV0dXJuIHsgLi4ubG9jYWxpemVkU3RyaW5ncywgLi4ub3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzIH07XG59XG5cbi8vIEl0IHNlZW1zIFwicmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzXCIgZGlkIG5vdCBwaWNrIHVwIGBDb21wb3NlckNvcmUuZGVmYXVsdFByb3BzYC5cbi8vIEFuZCBpdCBmYWxzZWx5IGNvbXBsYWludCBgb3B0aW9uYWw/OiBzdHJpbmdgIG11c3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYENvbXBvc2VyQ29yZS5kZWZhdWx0UHJvcHMub3B0aW9uYWwgPSB1bmRlZmluZWRgLCBldmVuIHdlIGFscmVhZHkgc2V0IGl0IGJlbG93LlxuLy8gU2luY2Ugd2Ugc2V0IGJvdGggVHlwZVNjcmlwdCBgUHJvcHNgIGNsYXNzIGFuZCBgQ29tcG9zZXJDb3JlLnByb3BUeXBlc2AsIHRoaXMgY2hlY2sgd2lsbCBiZSBkb25lIHRoZXJlIGFzIHdlbGwuXG4vLyBJZ25vcmluZyBpdCBpbiBUeXBlU2NyaXB0IHZlcnNpb24gc2hvdWxkIGJlIHNhZmUsIGFzIHdlIGhhdmUgYHByb3BUeXBlc2AgdmVyc2lvbiB0byBwcm90ZWN0IHVzLlxuXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9yZXF1aXJlLWRlZmF1bHQtcHJvcHMgKi9cbnR5cGUgQ29tcG9zZXJDb3JlUHJvcHMgPSB7XG4gIGFjdGl2aXR5TWlkZGxld2FyZT86IE9uZU9yTWFueTxBY3Rpdml0eU1pZGRsZXdhcmU+O1xuICBhY3Rpdml0eVN0YXR1c01pZGRsZXdhcmU/OiBPbmVPck1hbnk8QWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlPjtcbiAgYXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmU/OiBPbmVPck1hbnk8QXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmU+O1xuICBhdHRhY2htZW50TWlkZGxld2FyZT86IE9uZU9yTWFueTxBdHRhY2htZW50TWlkZGxld2FyZT47XG4gIGF2YXRhck1pZGRsZXdhcmU/OiBPbmVPck1hbnk8QXZhdGFyTWlkZGxld2FyZT47XG4gIGNhcmRBY3Rpb25NaWRkbGV3YXJlPzogT25lT3JNYW55PENhcmRBY3Rpb25NaWRkbGV3YXJlPjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGUgfCAoKGNvbnRleHQ6IENvbnRleHRPZjx0eXBlb2YgV2ViQ2hhdEFQSUNvbnRleHQ+KSA9PiBSZWFjdE5vZGUpO1xuICBkaXI/OiBzdHJpbmc7XG4gIGRpcmVjdExpbmU6IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb247XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZG93bnNjYWxlSW1hZ2VUb0RhdGFVUkw/OiAoYmxvYjogQmxvYiwgbWF4V2lkdGg6IG51bWJlciwgbWF4SGVpZ2h0OiBudW1iZXIsIHR5cGU6IHN0cmluZywgcXVhbGl0eTogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIGdyYW1tYXJzPzogYW55O1xuICBncm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlPzogT25lT3JNYW55PEdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmU+O1xuICBpbnRlcm5hbEVycm9yQm94Q2xhc3M/OiBSZWFjdC5Db21wb25lbnQgfCBGdW5jdGlvbjtcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBvblRlbGVtZXRyeT86IChldmVudDogVGVsZW1ldHJ5TWVhc3VyZW1lbnRFdmVudCkgPT4gdm9pZDtcbiAgb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzPzogTG9jYWxpemVkU3RyaW5ncyB8ICgoc3RyaW5nczogTG9jYWxpemVkU3RyaW5ncywgbGFuZ3VhZ2U6IHN0cmluZykgPT4gTG9jYWxpemVkU3RyaW5ncyk7XG4gIHJlbmRlck1hcmtkb3duPzogKG1hcmtkb3duOiBzdHJpbmcsIHsgbWFya2Rvd25SZXNwZWN0Q1JMRjogYm9vbGVhbiB9LCB7IGV4dGVybmFsTGlua0FsdDogc3RyaW5nIH0pID0+IHN0cmluZztcbiAgc2Nyb2xsVG9FbmRCdXR0b25NaWRkbGV3YXJlPzogT25lT3JNYW55PFNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZT47XG4gIHNlbGVjdFZvaWNlPzogKHZvaWNlczogdHlwZW9mIHdpbmRvdy5TcGVlY2hTeW50aGVzaXNWb2ljZVtdLCBhY3Rpdml0eTogV2ViQ2hhdEFjdGl2aXR5KSA9PiB2b2lkO1xuICBzZW5kVHlwaW5nSW5kaWNhdG9yPzogYm9vbGVhbjtcbiAgc3R5bGVPcHRpb25zPzogU3R5bGVPcHRpb25zO1xuICB0b2FzdE1pZGRsZXdhcmU/OiBPbmVPck1hbnk8VG9hc3RNaWRkbGV3YXJlPjtcbiAgdHlwaW5nSW5kaWNhdG9yTWlkZGxld2FyZT86IE9uZU9yTWFueTxUeXBpbmdJbmRpY2F0b3JNaWRkbGV3YXJlPjtcbiAgdXNlcklEPzogc3RyaW5nO1xuICB1c2VybmFtZT86IHN0cmluZztcblxuICAvKiogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBcImFjdGl2aXR5TWlkZGxld2FyZVwiIGluc3RlYWQuICovXG4gIGFjdGl2aXR5UmVuZGVyZXI/OiBhbnk7IC8vIFRPRE86IFtQNF0gUmVtb3ZlIG9uIG9yIGFmdGVyIDIwMjItMDYtMTUuXG4gIC8qKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFwiYWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlXCIgaW5zdGVhZC4gKi9cbiAgYWN0aXZpdHlTdGF0dXNSZW5kZXJlcj86IGFueTsgLy8gVE9ETzogW1A0XSBSZW1vdmUgb24gb3IgYWZ0ZXIgMjAyMi0wNi0xNS5cbiAgLyoqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgXCJhdHRhY2htZW50TWlkZGxld2FyZVwiIGluc3RlYWQuICovXG4gIGF0dGFjaG1lbnRSZW5kZXJlcj86IGFueTsgLy8gVE9ETzogW1A0XSBSZW1vdmUgb24gb3IgYWZ0ZXIgMjAyMi0wNi0xNS5cbiAgLyoqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgXCJhdmF0YXJNaWRkbGV3YXJlXCIgaW5zdGVhZC4gKi9cbiAgYXZhdGFyUmVuZGVyZXI/OiBhbnk7IC8vIFRPRE86IFtQNF0gUmVtb3ZlIG9uIG9yIGFmdGVyIDIwMjItMDYtMTUuXG4gIC8qKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFwic3R5bGVPcHRpb25zLmdyb3VwVGltZXN0YW1wXCIgaW5zdGVhZC4gKi9cbiAgZ3JvdXBUaW1lc3RhbXA/OiBib29sZWFuIHwgbnVtYmVyOyAvLyBUT0RPOiBbUDRdIFJlbW92ZSBvbiBvciBhZnRlciAyMDIyLTAxLTAxXG4gIC8qKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFwic3R5bGVPcHRpb25zLnNlbmRUaW1lb3V0XCIgaW5zdGVhZC4gKi9cbiAgc2VuZFRpbWVvdXQ/OiBudW1iZXI7IC8vIFRPRE86IFtQNF0gUmVtb3ZlIG9uIG9yIGFmdGVyIDIwMjItMDEtMDEuXG4gIC8qKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFwidG9hc3RNaWRkbGV3YXJlXCIgaW5zdGVhZC4gKi9cbiAgdG9hc3RSZW5kZXJlcj86IGFueTsgLy8gVE9ETzogW1A0XSBSZW1vdmUgb24gb3IgYWZ0ZXIgMjAyMi0wNi0xNS5cbiAgLyoqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgXCJ0eXBpbmdJbmRpY2F0b3JSZW5kZXJlclwiIGluc3RlYWQuICovXG4gIHR5cGluZ0luZGljYXRvclJlbmRlcmVyPzogYW55OyAvLyBUT0RPOiBbUDRdIFJlbW92ZSBvbiBvciBhZnRlciAyMDIyLTA2LTE1LlxufTtcbi8qIGVzbGludC1lbmFibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5cbmNvbnN0IENvbXBvc2VyQ29yZTogRkM8Q29tcG9zZXJDb3JlUHJvcHM+ID0gKHtcbiAgYWN0aXZpdHlNaWRkbGV3YXJlLFxuICBhY3Rpdml0eVJlbmRlcmVyLFxuICBhY3Rpdml0eVN0YXR1c01pZGRsZXdhcmUsXG4gIGFjdGl2aXR5U3RhdHVzUmVuZGVyZXIsXG4gIGF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlLFxuICBhdHRhY2htZW50TWlkZGxld2FyZSxcbiAgYXR0YWNobWVudFJlbmRlcmVyLFxuICBhdmF0YXJNaWRkbGV3YXJlLFxuICBhdmF0YXJSZW5kZXJlcixcbiAgY2FyZEFjdGlvbk1pZGRsZXdhcmUsXG4gIGNoaWxkcmVuLFxuICBkaXIsXG4gIGRpcmVjdExpbmUsXG4gIGRpc2FibGVkLFxuICBkb3duc2NhbGVJbWFnZVRvRGF0YVVSTCxcbiAgZ3JhbW1hcnMsXG4gIGdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUsXG4gIGdyb3VwVGltZXN0YW1wLFxuICBpbnRlcm5hbEVycm9yQm94Q2xhc3MsXG4gIGxvY2FsZSxcbiAgb25UZWxlbWV0cnksXG4gIG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyxcbiAgcmVuZGVyTWFya2Rvd24sXG4gIHNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZSxcbiAgc2VsZWN0Vm9pY2UsXG4gIHNlbmRUaW1lb3V0LFxuICBzZW5kVHlwaW5nSW5kaWNhdG9yLFxuICBzdHlsZU9wdGlvbnMsXG4gIHRvYXN0TWlkZGxld2FyZSxcbiAgdG9hc3RSZW5kZXJlcixcbiAgdHlwaW5nSW5kaWNhdG9yTWlkZGxld2FyZSxcbiAgdHlwaW5nSW5kaWNhdG9yUmVuZGVyZXIsXG4gIHVzZXJJRCxcbiAgdXNlcm5hbWVcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB0ZWxlbWV0cnlEaW1lbnNpb25zUmVmID0gdXNlUmVmKHt9KTtcblxuICBjb25zdCBwYXRjaGVkRGlyID0gdXNlTWVtbygoKSA9PiAoZGlyID09PSAnbHRyJyB8fCBkaXIgPT09ICdydGwnID8gZGlyIDogJ2F1dG8nKSwgW2Rpcl0pO1xuICBjb25zdCBwYXRjaGVkR3JhbW1hcnMgPSB1c2VNZW1vKCgpID0+IGdyYW1tYXJzIHx8IFtdLCBbZ3JhbW1hcnNdKTtcbiAgY29uc3QgcGF0Y2hlZFN0eWxlT3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbm9ybWFsaXplU3R5bGVPcHRpb25zKHBhdGNoU3R5bGVPcHRpb25zRnJvbURlcHJlY2F0ZWRQcm9wcyhzdHlsZU9wdGlvbnMsIHsgZ3JvdXBUaW1lc3RhbXAsIHNlbmRUaW1lb3V0IH0pKSxcbiAgICBbZ3JvdXBUaW1lc3RhbXAsIHNlbmRUaW1lb3V0LCBzdHlsZU9wdGlvbnNdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChzZXRMYW5ndWFnZShsb2NhbGUpKTtcbiAgfSwgW2Rpc3BhdGNoLCBsb2NhbGVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHR5cGVvZiBzZW5kVGltZW91dCA9PT0gJ251bWJlcicgJiYgZGlzcGF0Y2goc2V0U2VuZFRpbWVvdXQoc2VuZFRpbWVvdXQpKTtcbiAgfSwgW2Rpc3BhdGNoLCBzZW5kVGltZW91dF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goc2V0U2VuZFR5cGluZ0luZGljYXRvcighIXNlbmRUeXBpbmdJbmRpY2F0b3IpKTtcbiAgfSwgW2Rpc3BhdGNoLCBzZW5kVHlwaW5nSW5kaWNhdG9yXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChcbiAgICAgIGNyZWF0ZUNvbm5lY3RBY3Rpb24oe1xuICAgICAgICBkaXJlY3RMaW5lLFxuICAgICAgICB1c2VySUQsXG4gICAgICAgIHVzZXJuYW1lXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLyoqXG4gICAgICAgKiBAdG9kbyBUT0RPOiBbUDNdIGRpc2Nvbm5lY3QoKSBpcyBhbiBhc3luYyBjYWxsIChwZW5kaW5nIC0+IGZ1bGZpbGxlZCksIHdlIG5lZWQgdG8gd2FpdCwgb3IgY2hhbmdlIGl0IHRvIHJlY29ubmVjdCgpXG4gICAgICAgKi9cbiAgICAgIGRpc3BhdGNoKGRpc2Nvbm5lY3QoKSk7XG4gICAgfTtcbiAgfSwgW2Rpc3BhdGNoLCBkaXJlY3RMaW5lLCB1c2VySUQsIHVzZXJuYW1lXSk7XG5cbiAgY29uc3QgbWFya0FsbEFzQWNrbm93bGVkZ2VkID0gdXNlTWFya0FsbEFzQWNrbm93bGVkZ2VkKCk7XG5cbiAgY29uc3QgY2FyZEFjdGlvbkNvbnRleHQgPSB1c2VNZW1vKFxuICAgICgpID0+IGNyZWF0ZUNhcmRBY3Rpb25Db250ZXh0KHsgY2FyZEFjdGlvbk1pZGRsZXdhcmUsIGRpcmVjdExpbmUsIGRpc3BhdGNoLCBtYXJrQWxsQXNBY2tub3dsZWRnZWQgfSksXG4gICAgW2NhcmRBY3Rpb25NaWRkbGV3YXJlLCBkaXJlY3RMaW5lLCBkaXNwYXRjaCwgbWFya0FsbEFzQWNrbm93bGVkZ2VkXVxuICApO1xuXG4gIGNvbnN0IHBhdGNoZWRTZWxlY3RWb2ljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gc2VsZWN0Vm9pY2UgfHwgZGVmYXVsdFNlbGVjdFZvaWNlLmJpbmQobnVsbCwgeyBsYW5ndWFnZTogbG9jYWxlIH0pLFxuICAgIFtsb2NhbGUsIHNlbGVjdFZvaWNlXVxuICApO1xuXG4gIGNvbnN0IGdyb3VwQWN0aXZpdGllc0NvbnRleHQgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjcmVhdGVHcm91cEFjdGl2aXRpZXNDb250ZXh0KHtcbiAgICAgICAgZ3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSxcbiAgICAgICAgZ3JvdXBUaW1lc3RhbXA6IHBhdGNoZWRTdHlsZU9wdGlvbnMuZ3JvdXBUaW1lc3RhbXBcbiAgICAgIH0pLFxuICAgIFtncm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlLCBwYXRjaGVkU3R5bGVPcHRpb25zLmdyb3VwVGltZXN0YW1wXVxuICApO1xuXG4gIGNvbnN0IGhvaXN0ZWREaXNwYXRjaGVycyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG1hcE1hcChcbiAgICAgICAgRElTUEFUQ0hFUlMsXG4gICAgICAgIGRpc3BhdGNoZXIgPT5cbiAgICAgICAgICAoLi4uYXJncykgPT5cbiAgICAgICAgICAgIGRpc3BhdGNoKGRpc3BhdGNoZXIoLi4uYXJncykpXG4gICAgICApLFxuICAgIFtkaXNwYXRjaF1cbiAgKTtcblxuICBjb25zdCBwYXRjaGVkTG9jYWxpemVkU3RyaW5ncyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbWVyZ2VTdHJpbmdzT3ZlcnJpZGVzKGdldEFsbExvY2FsaXplZFN0cmluZ3MoKVtub3JtYWxpemVMYW5ndWFnZShsb2NhbGUpXSwgbG9jYWxlLCBvdmVycmlkZUxvY2FsaXplZFN0cmluZ3MpLFxuICAgIFtsb2NhbGUsIG92ZXJyaWRlTG9jYWxpemVkU3RyaW5nc11cbiAgKTtcblxuICBjb25zdCBsb2NhbGl6ZWRHbG9iYWxpemUgPSB1c2VNZW1vPFByZWNvbXBpbGVkR2xvYmFsaXplVHlwZT4oKCkgPT4ge1xuICAgIGNvbnN0IHsgR0xPQkFMSVpFLCBHTE9CQUxJWkVfTEFOR1VBR0UgfSA9IHBhdGNoZWRMb2NhbGl6ZWRTdHJpbmdzIHx8IHt9O1xuXG4gICAgcmV0dXJuIEdMT0JBTElaRSB8fCAoR0xPQkFMSVpFX0xBTkdVQUdFICYmIFByZWNvbXBpbGVkR2xvYmFsaXplKEdMT0JBTElaRV9MQU5HVUFHRSkpIHx8IFByZWNvbXBpbGVkR2xvYmFsaXplKCdlbicpO1xuICB9LCBbcGF0Y2hlZExvY2FsaXplZFN0cmluZ3NdKTtcblxuICBjb25zdCB0cmFja0RpbWVuc2lvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChuYW1lOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKCFuYW1lIHx8IHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gY29uc29sZS53YXJuKCdib3RmcmFtZXdvcmstd2ViY2hhdDogVGVsZW1ldHJ5IGRpbWVuc2lvbiBuYW1lIG11c3QgYmUgYSBzdHJpbmcuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgZGF0YTtcblxuICAgICAgaWYgKHR5cGUgIT09ICdzdHJpbmcnICYmIHR5cGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBjb25zb2xlLndhcm4oJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBUZWxlbWV0cnkgZGltZW5zaW9uIGRhdGEgbXVzdCBiZSBhIHN0cmluZyBvciB1bmRlZmluZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIHRlbGVtZXRyeURpbWVuc2lvbnNSZWYuY3VycmVudCA9IHVwZGF0ZUluKFxuICAgICAgICB0ZWxlbWV0cnlEaW1lbnNpb25zUmVmLmN1cnJlbnQsXG4gICAgICAgIFtuYW1lXSxcbiAgICAgICAgdHlwZSA9PT0gJ3VuZGVmaW5lZCcgPyBkYXRhIDogKCkgPT4gZGF0YVxuICAgICAgKTtcbiAgICB9LFxuICAgIFt0ZWxlbWV0cnlEaW1lbnNpb25zUmVmXVxuICApO1xuXG4gIGNvbnN0IHBhdGNoZWRBY3Rpdml0eVJlbmRlcmVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgYWN0aXZpdHlSZW5kZXJlciAmJlxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV2ViIENoYXQ6IFwiYWN0aXZpdHlSZW5kZXJlclwiIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiAyMDIyLTA2LTE1LCBwbGVhc2UgdXNlIFwiYWN0aXZpdHlNaWRkbGV3YXJlXCIgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGFjdGl2aXR5UmVuZGVyZXIgfHxcbiAgICAgIGFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyKFxuICAgICAgICAnYWN0aXZpdHknLFxuICAgICAgICB7IHN0cmljdDogZmFsc2UgfSxcbiAgICAgICAgLi4uc2luZ2xlVG9BcnJheShhY3Rpdml0eU1pZGRsZXdhcmUpLFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICgpID0+XG4gICAgICAgICAgKHsgYWN0aXZpdHkgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGl2aXR5KSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gcmVuZGVyZXIgZm9yIGFjdGl2aXR5IG9mIHR5cGUgXCIke2FjdGl2aXR5LnR5cGV9XCJgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYWN0aXZpdHkgdG8gcmVuZGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgKSh7fSlcbiAgICApO1xuICB9LCBbYWN0aXZpdHlNaWRkbGV3YXJlLCBhY3Rpdml0eVJlbmRlcmVyXSk7XG5cbiAgY29uc3QgcGF0Y2hlZEFjdGl2aXR5U3RhdHVzUmVuZGVyZXIgPSB1c2VNZW1vPFJlbmRlckFjdGl2aXR5U3RhdHVzPigoKSA9PiB7XG4gICAgYWN0aXZpdHlTdGF0dXNSZW5kZXJlciAmJlxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV2ViIENoYXQ6IFwiYWN0aXZpdHlTdGF0dXNSZW5kZXJlclwiIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiAyMDIyLTA2LTE1LCBwbGVhc2UgdXNlIFwiYWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlXCIgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIGFjdGl2aXR5U3RhdHVzUmVuZGVyZXIgfHxcbiAgICAgIGFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyKFxuICAgICAgICAnYWN0aXZpdHkgc3RhdHVzJyxcbiAgICAgICAgeyBzdHJpY3Q6IGZhbHNlIH0sXG4gICAgICAgIC4uLnNpbmdsZVRvQXJyYXkoYWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlKSxcbiAgICAgICAgKCkgPT4gKCkgPT4gKCkgPT4gZmFsc2VcbiAgICAgICkoe30pXG4gICAgKTtcbiAgfSwgW2FjdGl2aXR5U3RhdHVzTWlkZGxld2FyZSwgYWN0aXZpdHlTdGF0dXNSZW5kZXJlcl0pO1xuXG4gIGNvbnN0IHBhdGNoZWRBdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyUmVuZGVyZXIgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBhcHBseU1pZGRsZXdhcmVGb3JSZW5kZXJlcihcbiAgICAgICAgJ2F0dGFjaG1lbnQgZm9yIHNjcmVlbiByZWFkZXInLFxuICAgICAgICB7IHN0cmljdDogdHJ1ZSB9LFxuICAgICAgICAuLi5zaW5nbGVUb0FycmF5KGF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlKSxcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICh7IGF0dGFjaG1lbnQgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGF0dGFjaG1lbnQpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBObyByZW5kZXJlciBmb3IgYXR0YWNobWVudCBmb3Igc2NyZWVuIHJlYWRlciBvZiB0eXBlIFwiJHthdHRhY2htZW50LmNvbnRlbnRUeXBlfVwiYCk7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIEB0b2RvIFRPRE86IFtQNF0gTWlnaHQgYmUgYWJsZSB0byB0aHJvdyB3aXRob3V0IHJldHVybmluZyBhIGZ1bmN0aW9uIC0tIGludmVzdGlnYXRlIGFuZCBwb3NzaWJseSBmaXhcbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYXR0YWNobWVudCB0byByZW5kZXInKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgKSh7fSksXG4gICAgW2F0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlXVxuICApO1xuXG4gIGNvbnN0IHBhdGNoZWRBdHRhY2htZW50UmVuZGVyZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoYXR0YWNobWVudFJlbmRlcmVyKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdXZWIgQ2hhdDogXCJhdHRhY2htZW50UmVuZGVyZXJcIiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gMjAyMi0wNi0xNSwgcGxlYXNlIHVzZSBcImF0dGFjaG1lbnRNaWRkbGV3YXJlXCIgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gYXR0YWNobWVudFJlbmRlcmVyO1xuICAgIH1cblxuICAgIC8vIEF0dGFjaG1lbnQgcmVuZGVyZXJcbiAgICByZXR1cm4gYXBwbHlNaWRkbGV3YXJlRm9yTGVnYWN5UmVuZGVyZXIoXG4gICAgICAnYXR0YWNobWVudCcsXG4gICAgICAuLi5zaW5nbGVUb0FycmF5KGF0dGFjaG1lbnRNaWRkbGV3YXJlKSxcbiAgICAgICgpID0+XG4gICAgICAgICgpID0+XG4gICAgICAgICh7IGF0dGFjaG1lbnQgfSkgPT4ge1xuICAgICAgICAgIGlmIChhdHRhY2htZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHJlbmRlcmVyIGZvciBhdHRhY2htZW50IG9mIHR5cGUgXCIke2F0dGFjaG1lbnQuY29udGVudFR5cGV9XCJgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhdHRhY2htZW50IHRvIHJlbmRlcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICkoe30pO1xuICB9LCBbYXR0YWNobWVudE1pZGRsZXdhcmUsIGF0dGFjaG1lbnRSZW5kZXJlcl0pO1xuXG4gIGNvbnN0IHBhdGNoZWRBdmF0YXJSZW5kZXJlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGF2YXRhclJlbmRlcmVyICYmXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdXZWIgQ2hhdDogXCJhdmF0YXJSZW5kZXJlclwiIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiAyMDIyLTA2LTE1LCBwbGVhc2UgdXNlIFwiYXZhdGFyTWlkZGxld2FyZVwiIGluc3RlYWQuJ1xuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICBhdmF0YXJSZW5kZXJlciB8fFxuICAgICAgYXBwbHlNaWRkbGV3YXJlRm9yUmVuZGVyZXIoXG4gICAgICAgICdhdmF0YXInLFxuICAgICAgICB7IHN0cmljdDogZmFsc2UgfSxcbiAgICAgICAgLi4uc2luZ2xlVG9BcnJheShhdmF0YXJNaWRkbGV3YXJlKSxcbiAgICAgICAgKCkgPT4gKCkgPT4gKCkgPT4gZmFsc2VcbiAgICAgICkoe30pXG4gICAgKTtcbiAgfSwgW2F2YXRhck1pZGRsZXdhcmUsIGF2YXRhclJlbmRlcmVyXSk7XG5cbiAgY29uc3QgcGF0Y2hlZFRvYXN0UmVuZGVyZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICB0b2FzdFJlbmRlcmVyICYmXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdXZWIgQ2hhdDogXCJ0b2FzdFJlbmRlcmVyXCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIG9uIDIwMjItMDYtMTUsIHBsZWFzZSB1c2UgXCJ0b2FzdE1pZGRsZXdhcmVcIiBpbnN0ZWFkLidcbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdG9hc3RSZW5kZXJlciB8fFxuICAgICAgYXBwbHlNaWRkbGV3YXJlRm9yUmVuZGVyZXIoXG4gICAgICAgICd0b2FzdCcsXG4gICAgICAgIHsgc3RyaWN0OiBmYWxzZSB9LFxuICAgICAgICAuLi5zaW5nbGVUb0FycmF5KHRvYXN0TWlkZGxld2FyZSksXG4gICAgICAgICgpID0+XG4gICAgICAgICAgKCkgPT5cbiAgICAgICAgICAoeyBub3RpZmljYXRpb24gfSkgPT4ge1xuICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHJlbmRlcmVyIGZvciBub3RpZmljYXRpb24gb2YgdHlwZSBcIiR7bm90aWZpY2F0aW9uLmNvbnRlbnRUeXBlfVwiYCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG5vdGlmaWNhdGlvbiB0byByZW5kZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICApKHt9KVxuICAgICk7XG4gIH0sIFt0b2FzdE1pZGRsZXdhcmUsIHRvYXN0UmVuZGVyZXJdKTtcblxuICBjb25zdCBwYXRjaGVkVHlwaW5nSW5kaWNhdG9yUmVuZGVyZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICB0eXBpbmdJbmRpY2F0b3JSZW5kZXJlciAmJlxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV2ViIENoYXQ6IFwidHlwaW5nSW5kaWNhdG9yUmVuZGVyZXJcIiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gMjAyMi0wNi0xNSwgcGxlYXNlIHVzZSBcInR5cGluZ0luZGljYXRvck1pZGRsZXdhcmVcIiBpbnN0ZWFkLidcbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwaW5nSW5kaWNhdG9yUmVuZGVyZXIgfHxcbiAgICAgIGFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyKFxuICAgICAgICAndHlwaW5nIGluZGljYXRvcicsXG4gICAgICAgIHsgc3RyaWN0OiBmYWxzZSB9LFxuICAgICAgICAuLi5zaW5nbGVUb0FycmF5KHR5cGluZ0luZGljYXRvck1pZGRsZXdhcmUpLFxuICAgICAgICAoKSA9PiAoKSA9PiAoKSA9PiBmYWxzZVxuICAgICAgKSh7fSlcbiAgICApO1xuICB9LCBbdHlwaW5nSW5kaWNhdG9yTWlkZGxld2FyZSwgdHlwaW5nSW5kaWNhdG9yUmVuZGVyZXJdKTtcblxuICBjb25zdCBzY3JvbGxUb0VuZEJ1dHRvblJlbmRlcmVyOiBTY3JvbGxUb0VuZEJ1dHRvbkNvbXBvbmVudEZhY3RvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBhcHBseU1pZGRsZXdhcmVGb3JSZW5kZXJlcihcbiAgICAgICAgJ3Njcm9sbCB0byBlbmQgYnV0dG9uJyxcbiAgICAgICAgeyBzdHJpY3Q6IHRydWUgfSxcbiAgICAgICAgLi4uc2luZ2xlVG9BcnJheShzY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmUpLFxuICAgICAgICAoKSA9PiAoKSA9PiAoKSA9PiBmYWxzZVxuICAgICAgKSgpIGFzIGFueSxcbiAgICBbc2Nyb2xsVG9FbmRCdXR0b25NaWRkbGV3YXJlXVxuICApO1xuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgaGVhdnkgZnVuY3Rpb24sIGFuZCBpdCBpcyBleHBlY3RlZCB0byBiZSBvbmx5IGNhbGxlZCB3aGVuIHRoZXJlIGlzIGEgbmVlZCB0byByZWNyZWF0ZSBidXNpbmVzcyBsb2dpYywgZS5nLlxuICAgKiAtIFVzZXIgSUQgY2hhbmdlZCwgY2F1c2luZyBhbGwgc2VuZCogZnVuY3Rpb25zIHRvIGJlIHVwZGF0ZWRcbiAgICogLSBzZW5kXG4gICAqIEB0b2RvIFRPRE86IFtQM10gV2Ugc2hvdWxkIHRoaW5rIGFib3V0IGlmIHdlIGFsbG93IHRoZSB1c2VyIHRvIGNoYW5nZSBvblNlbmRCb3hWYWx1ZUNoYW5nZWQvc2VuZEJveFZhbHVlLCBlLmcuXG4gICAqIDEuIFR1cm5zIHRleHQgaW50byBVUFBFUkNBU0VcbiAgICogMi4gRmlsdGVyIG91dCBwcm9mYW5pdHlcbiAgICogQHRvZG8gVE9ETzogW1A0XSBSZXZpc2l0IGFsbCBtZW1iZXJzIG9mIGNvbnRleHRcbiAgICogICAgICAgVGhpcyBjb250ZXh0IHNob3VsZCBjb25zaXN0IG9mIG1lbWJlcnMgdGhhdCBhcmUgbm90IGluIHRoZSBSZWR1eCBzdG9yZVxuICAgKiAgICAgICBpLmUuIG1lbWJlcnMgdGhhdCBhcmUgbm90IGludGVyZXN0ZWQgaW4gb3RoZXIgdHlwZXMgb2YgVUlzXG4gICAqL1xuICBjb25zdCBjb250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgLi4uY2FyZEFjdGlvbkNvbnRleHQsXG4gICAgICAuLi5ncm91cEFjdGl2aXRpZXNDb250ZXh0LFxuICAgICAgLi4uaG9pc3RlZERpc3BhdGNoZXJzLFxuICAgICAgYWN0aXZpdHlSZW5kZXJlcjogcGF0Y2hlZEFjdGl2aXR5UmVuZGVyZXIsXG4gICAgICBhY3Rpdml0eVN0YXR1c1JlbmRlcmVyOiBwYXRjaGVkQWN0aXZpdHlTdGF0dXNSZW5kZXJlcixcbiAgICAgIGF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJSZW5kZXJlcjogcGF0Y2hlZEF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJSZW5kZXJlcixcbiAgICAgIGF0dGFjaG1lbnRSZW5kZXJlcjogcGF0Y2hlZEF0dGFjaG1lbnRSZW5kZXJlcixcbiAgICAgIGF2YXRhclJlbmRlcmVyOiBwYXRjaGVkQXZhdGFyUmVuZGVyZXIsXG4gICAgICBkaXI6IHBhdGNoZWREaXIsXG4gICAgICBkaXJlY3RMaW5lLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBkb3duc2NhbGVJbWFnZVRvRGF0YVVSTCxcbiAgICAgIGdyYW1tYXJzOiBwYXRjaGVkR3JhbW1hcnMsXG4gICAgICBpbnRlcm5hbEVycm9yQm94Q2xhc3MsXG4gICAgICBsYW5ndWFnZTogbG9jYWxlLFxuICAgICAgbG9jYWxpemVkR2xvYmFsaXplU3RhdGU6IFtsb2NhbGl6ZWRHbG9iYWxpemVdLFxuICAgICAgbG9jYWxpemVkU3RyaW5nczogcGF0Y2hlZExvY2FsaXplZFN0cmluZ3MsXG4gICAgICBvblRlbGVtZXRyeSxcbiAgICAgIHJlbmRlck1hcmtkb3duLFxuICAgICAgc2Nyb2xsVG9FbmRCdXR0b25SZW5kZXJlcixcbiAgICAgIHNlbGVjdFZvaWNlOiBwYXRjaGVkU2VsZWN0Vm9pY2UsXG4gICAgICBzZW5kVHlwaW5nSW5kaWNhdG9yLFxuICAgICAgc3R5bGVPcHRpb25zOiBwYXRjaGVkU3R5bGVPcHRpb25zLFxuICAgICAgdGVsZW1ldHJ5RGltZW5zaW9uc1JlZixcbiAgICAgIHRvYXN0UmVuZGVyZXI6IHBhdGNoZWRUb2FzdFJlbmRlcmVyLFxuICAgICAgdHJhY2tEaW1lbnNpb24sXG4gICAgICB0eXBpbmdJbmRpY2F0b3JSZW5kZXJlcjogcGF0Y2hlZFR5cGluZ0luZGljYXRvclJlbmRlcmVyLFxuICAgICAgdXNlcklELFxuICAgICAgdXNlcm5hbWVcbiAgICB9KSxcbiAgICBbXG4gICAgICBjYXJkQWN0aW9uQ29udGV4dCxcbiAgICAgIGRpcmVjdExpbmUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGRvd25zY2FsZUltYWdlVG9EYXRhVVJMLFxuICAgICAgZ3JvdXBBY3Rpdml0aWVzQ29udGV4dCxcbiAgICAgIGhvaXN0ZWREaXNwYXRjaGVycyxcbiAgICAgIGludGVybmFsRXJyb3JCb3hDbGFzcyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIGxvY2FsaXplZEdsb2JhbGl6ZSxcbiAgICAgIG9uVGVsZW1ldHJ5LFxuICAgICAgcGF0Y2hlZEFjdGl2aXR5UmVuZGVyZXIsXG4gICAgICBwYXRjaGVkQWN0aXZpdHlTdGF0dXNSZW5kZXJlcixcbiAgICAgIHBhdGNoZWRBdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyUmVuZGVyZXIsXG4gICAgICBwYXRjaGVkQXR0YWNobWVudFJlbmRlcmVyLFxuICAgICAgcGF0Y2hlZEF2YXRhclJlbmRlcmVyLFxuICAgICAgcGF0Y2hlZERpcixcbiAgICAgIHBhdGNoZWRHcmFtbWFycyxcbiAgICAgIHBhdGNoZWRMb2NhbGl6ZWRTdHJpbmdzLFxuICAgICAgcGF0Y2hlZFNlbGVjdFZvaWNlLFxuICAgICAgcGF0Y2hlZFN0eWxlT3B0aW9ucyxcbiAgICAgIHBhdGNoZWRUb2FzdFJlbmRlcmVyLFxuICAgICAgcGF0Y2hlZFR5cGluZ0luZGljYXRvclJlbmRlcmVyLFxuICAgICAgcmVuZGVyTWFya2Rvd24sXG4gICAgICBzY3JvbGxUb0VuZEJ1dHRvblJlbmRlcmVyLFxuICAgICAgc2VuZFR5cGluZ0luZGljYXRvcixcbiAgICAgIHRlbGVtZXRyeURpbWVuc2lvbnNSZWYsXG4gICAgICB0cmFja0RpbWVuc2lvbixcbiAgICAgIHVzZXJJRCxcbiAgICAgIHVzZXJuYW1lXG4gICAgXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFdlYkNoYXRBUElDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0fT5cbiAgICAgIDxBY3Rpdml0eVNlbmRTdGF0dXNDb21wb3Nlcj5cbiAgICAgICAge3R5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKGNvbnRleHQpIDogY2hpbGRyZW59XG4gICAgICA8L0FjdGl2aXR5U2VuZFN0YXR1c0NvbXBvc2VyPlxuICAgICAge29uVGVsZW1ldHJ5ICYmIDxUcmFja2VyIC8+fVxuICAgIDwvV2ViQ2hhdEFQSUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG4vKipcbiAqIEB0b2RvIFRPRE86IFtQM10gV2Ugc2hvdWxkIGNvbnNpZGVyIG1vdmluZyBzb21lIGRhdGEgZnJvbSBSZWR1eCBzdG9yZSB0byBwcm9wc1xuICogICAgICAgQWx0aG91Z2ggd2UgdXNlIGBjb25uZWN0VG9XZWJDaGF0YCB0byBoaWRlIHRoZSBkZXRhaWxzIG9mIGFjY2Vzc29yIG9mIFJlZHV4IHN0b3JlLFxuICogICAgICAgd2Ugc2hvdWxkIGNsZWFuIHVwIHRoZSByZXNwb25zaWJpbGl0eSBiZXR3ZWVuIENvbnRleHQgYW5kIFJlZHV4IHN0b3JlXG4gKiAgICAgICBXZSBzaG91bGQgZGVjaWRlIHdoaWNoIGRhdGEgaXMgbmVlZGVkIGZvciBSZWFjdCBidXQgbm90IGluIG90aGVyIGVudmlyb25tZW50IHN1Y2ggYXMgQ0xJL1ZTQ29kZVxuICovXG5Db21wb3NlckNvcmUuZGVmYXVsdFByb3BzID0ge1xuICBhY3Rpdml0eU1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgYWN0aXZpdHlSZW5kZXJlcjogdW5kZWZpbmVkLFxuICBhY3Rpdml0eVN0YXR1c01pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgYWN0aXZpdHlTdGF0dXNSZW5kZXJlcjogdW5kZWZpbmVkLFxuICBhdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyTWlkZGxld2FyZTogdW5kZWZpbmVkLFxuICBhdHRhY2htZW50TWlkZGxld2FyZTogdW5kZWZpbmVkLFxuICBhdHRhY2htZW50UmVuZGVyZXI6IHVuZGVmaW5lZCxcbiAgYXZhdGFyTWlkZGxld2FyZTogdW5kZWZpbmVkLFxuICBhdmF0YXJSZW5kZXJlcjogdW5kZWZpbmVkLFxuICBjYXJkQWN0aW9uTWlkZGxld2FyZTogdW5kZWZpbmVkLFxuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBkaXI6ICdhdXRvJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBkb3duc2NhbGVJbWFnZVRvRGF0YVVSTDogdW5kZWZpbmVkLFxuICBncmFtbWFyczogW10sXG4gIGdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgZ3JvdXBUaW1lc3RhbXA6IHVuZGVmaW5lZCxcbiAgaW50ZXJuYWxFcnJvckJveENsYXNzOiB1bmRlZmluZWQsXG4gIGxvY2FsZTogd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZSB8fCAnZW4tVVMnLFxuICBvblRlbGVtZXRyeTogdW5kZWZpbmVkLFxuICBvdmVycmlkZUxvY2FsaXplZFN0cmluZ3M6IHVuZGVmaW5lZCxcbiAgcmVuZGVyTWFya2Rvd246IHVuZGVmaW5lZCxcbiAgc2Nyb2xsVG9FbmRCdXR0b25NaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gIHNlbGVjdFZvaWNlOiB1bmRlZmluZWQsXG4gIHNlbmRUaW1lb3V0OiB1bmRlZmluZWQsXG4gIHNlbmRUeXBpbmdJbmRpY2F0b3I6IGZhbHNlLFxuICBzdHlsZU9wdGlvbnM6IHt9LFxuICB0b2FzdE1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgdG9hc3RSZW5kZXJlcjogdW5kZWZpbmVkLFxuICB0eXBpbmdJbmRpY2F0b3JNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gIHR5cGluZ0luZGljYXRvclJlbmRlcmVyOiB1bmRlZmluZWQsXG4gIHVzZXJJRDogJycsXG4gIHVzZXJuYW1lOiAnJ1xufTtcblxuQ29tcG9zZXJDb3JlLnByb3BUeXBlcyA9IHtcbiAgYWN0aXZpdHlNaWRkbGV3YXJlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuZnVuYyksIFByb3BUeXBlcy5mdW5jXSksXG4gIGFjdGl2aXR5UmVuZGVyZXI6IFByb3BUeXBlcy5mdW5jLFxuICBhY3Rpdml0eVN0YXR1c01pZGRsZXdhcmU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5mdW5jKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgYWN0aXZpdHlTdGF0dXNSZW5kZXJlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIGF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuZnVuYyksIFByb3BUeXBlcy5mdW5jXSksXG4gIGF0dGFjaG1lbnRNaWRkbGV3YXJlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuZnVuYyksIFByb3BUeXBlcy5mdW5jXSksXG4gIGF0dGFjaG1lbnRSZW5kZXJlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIGF2YXRhck1pZGRsZXdhcmU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5mdW5jKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgYXZhdGFyUmVuZGVyZXI6IFByb3BUeXBlcy5mdW5jLFxuICBjYXJkQWN0aW9uTWlkZGxld2FyZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmZ1bmMpLCBQcm9wVHlwZXMuZnVuY10pLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgZGlyOiBQcm9wVHlwZXMub25lT2YoWydhdXRvJywgJ2x0cicsICdydGwnXSksXG4gIC8vIFByb3BUeXBlcy5zaGFwZSh7IC4uLiB9KSBkaWQgbm90IGhvbm9yIGlzUmVxdWlyZWQgZm9yIGl0cyBtZW1iZXJzLlxuICAvLyBAdHMtaWdub3JlXG4gIGRpcmVjdExpbmU6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYWN0aXZpdHkkOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgc3Vic2NyaWJlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gICAgfSkuaXNSZXF1aXJlZCxcbiAgICBjb25uZWN0aW9uU3RhdHVzJDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHN1YnNjcmliZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICAgIH0pLmlzUmVxdWlyZWQsXG4gICAgZW5kOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBnZXRTZXNzaW9uSWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBvc3RBY3Rpdml0eTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICByZWZlcmVuY2VHcmFtbWFySUQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdG9rZW46IFByb3BUeXBlcy5zdHJpbmdcbiAgfSkuaXNSZXF1aXJlZCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBkb3duc2NhbGVJbWFnZVRvRGF0YVVSTDogUHJvcFR5cGVzLmZ1bmMsXG4gIGdyYW1tYXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgZ3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmZ1bmMpLCBQcm9wVHlwZXMuZnVuY10pLFxuICBncm91cFRpbWVzdGFtcDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgaW50ZXJuYWxFcnJvckJveENsYXNzOiBQcm9wVHlwZXMuZnVuYywgLy8gVGhpcyBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHkuIFdlIGRvbid0IGFsbG93IGN1c3RvbWl6YXRpb24gb2YgZXJyb3IgYm94LlxuICBsb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uVGVsZW1ldHJ5OiBQcm9wVHlwZXMuZnVuYyxcbiAgb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYW55LCBQcm9wVHlwZXMuZnVuY10pLFxuICByZW5kZXJNYXJrZG93bjogUHJvcFR5cGVzLmZ1bmMsXG4gIHNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmZ1bmMpLCBQcm9wVHlwZXMuZnVuY10pLFxuICBzZWxlY3RWb2ljZTogUHJvcFR5cGVzLmZ1bmMsXG4gIHNlbmRUaW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBzZW5kVHlwaW5nSW5kaWNhdG9yOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3R5bGVPcHRpb25zOiBQcm9wVHlwZXMuYW55LFxuICB0b2FzdE1pZGRsZXdhcmU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5mdW5jKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgdG9hc3RSZW5kZXJlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIHR5cGluZ0luZGljYXRvck1pZGRsZXdhcmU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5mdW5jKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgdHlwaW5nSW5kaWNhdG9yUmVuZGVyZXI6IFByb3BUeXBlcy5mdW5jLFxuICB1c2VySUQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHVzZXJuYW1lOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuXG50eXBlIENvbXBvc2VyUHJvcHMgPSBDb21wb3NlckNvcmVQcm9wcyAmIHtcbiAgaW50ZXJuYWxSZW5kZXJFcnJvckJveD86IGFueTtcbiAgc3RvcmU/OiBhbnk7XG59O1xuXG4vLyBXZSB3aWxsIGNyZWF0ZSBhIFJlZHV4IHN0b3JlIGlmIGl0IHdhcyBub3QgcGFzc2VkIGluXG5jb25zdCBDb21wb3NlcjogRkM8Q29tcG9zZXJQcm9wcz4gPSAoeyBpbnRlcm5hbFJlbmRlckVycm9yQm94LCBvblRlbGVtZXRyeSwgc3RvcmUsIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZSgpO1xuXG4gIGNvbnN0IGhhbmRsZUVycm9yID0gdXNlQ2FsbGJhY2soXG4gICAgZXJyb3IgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IFVuY2F1Z2h0IGV4Y2VwdGlvbicsIHsgZXJyb3IgfSk7XG5cbiAgICAgIG9uVGVsZW1ldHJ5ICYmXG4gICAgICAgIG9uVGVsZW1ldHJ5KGNyZWF0ZUN1c3RvbUV2ZW50KCdleGNlcHRpb24nLCB7IGVycm9yLCBmYXRhbDogdHJ1ZSB9KSBhcyBUZWxlbWV0cnlFeGNlcHRpb25NZWFzdXJlbWVudEV2ZW50KTtcbiAgICAgIHNldEVycm9yKGVycm9yKTtcbiAgICB9LFxuICAgIFtvblRlbGVtZXRyeSwgc2V0RXJyb3JdXG4gICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRTdG9yZSA9IHVzZU1lbW8oKCkgPT4gc3RvcmUgfHwgY3JlYXRlU3RvcmUoKSwgW3N0b3JlXSk7XG5cbiAgcmV0dXJuIGVycm9yID8gKFxuICAgICEhaW50ZXJuYWxSZW5kZXJFcnJvckJveCAmJiBpbnRlcm5hbFJlbmRlckVycm9yQm94KHsgZXJyb3IsIHR5cGU6ICd1bmNhdWdodCBleGNlcHRpb24nIH0pXG4gICkgOiAoXG4gICAgPEVycm9yQm91bmRhcnkgb25FcnJvcj17aGFuZGxlRXJyb3J9PlxuICAgICAgPFByb3ZpZGVyIGNvbnRleHQ9e1dlYkNoYXRSZWR1eENvbnRleHR9IHN0b3JlPXttZW1vaXplZFN0b3JlfT5cbiAgICAgICAgPEFjdGl2aXR5S2V5ZXJDb21wb3Nlcj5cbiAgICAgICAgICA8QWN0aXZpdHlBY2tub3dsZWRnZW1lbnRDb21wb3Nlcj5cbiAgICAgICAgICAgIDxDb21wb3NlckNvcmUgb25UZWxlbWV0cnk9e29uVGVsZW1ldHJ5fSB7Li4ucHJvcHN9IC8+XG4gICAgICAgICAgPC9BY3Rpdml0eUFja25vd2xlZGdlbWVudENvbXBvc2VyPlxuICAgICAgICA8L0FjdGl2aXR5S2V5ZXJDb21wb3Nlcj5cbiAgICAgIDwvUHJvdmlkZXI+XG4gICAgPC9FcnJvckJvdW5kYXJ5PlxuICApO1xufTtcblxuQ29tcG9zZXIuZGVmYXVsdFByb3BzID0ge1xuICBpbnRlcm5hbFJlbmRlckVycm9yQm94OiB1bmRlZmluZWQsXG4gIG9uVGVsZW1ldHJ5OiB1bmRlZmluZWQsXG4gIHN0b3JlOiB1bmRlZmluZWRcbn07XG5cbkNvbXBvc2VyLnByb3BUeXBlcyA9IHtcbiAgaW50ZXJuYWxSZW5kZXJFcnJvckJveDogUHJvcFR5cGVzLmFueSxcbiAgb25UZWxlbWV0cnk6IFByb3BUeXBlcy5mdW5jLFxuICBzdG9yZTogUHJvcFR5cGVzLmFueVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9zZXI7XG5cbmV4cG9ydCB0eXBlIHsgQ29tcG9zZXJQcm9wcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBNkJBOztBQUNBOztBQUNBOztBQUVBOztBQUtBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQU1BOztBQUVBOztBQUNBOztBQUVBOztBQU9BOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BO0FBQ0EsSUFBTUEsV0FBVyxHQUFHO0VBQ2xCQyxxQkFBcUIsRUFBckJBLDhDQURrQjtFQUVsQkMsbUJBQW1CLEVBQW5CQSw0Q0FGa0I7RUFHbEJDLG1CQUFtQixFQUFuQkEsNENBSGtCO0VBSWxCQyxZQUFZLEVBQVpBLHFDQUprQjtFQUtsQkMsWUFBWSxFQUFaQSxxQ0FMa0I7RUFNbEJDLFNBQVMsRUFBVEEsa0NBTmtCO0VBT2xCQyxTQUFTLEVBQVRBLGtDQVBrQjtFQVFsQkMsV0FBVyxFQUFYQSxvQ0FSa0I7RUFTbEJDLGVBQWUsRUFBZkEsd0NBVGtCO0VBVWxCQyxZQUFZLEVBQVpBLHFDQVZrQjtFQVdsQkMsa0JBQWtCLEVBQWxCQSwyQ0FYa0I7RUFZbEJDLGVBQWUsRUFBZkEsd0NBWmtCO0VBYWxCQyxlQUFlLEVBQWZBLHdDQWJrQjtFQWNsQkMsVUFBVSxFQUFWQSxtQ0Fka0I7RUFlbEJDLGNBQWMsRUFBZEEsdUNBZmtCO0VBZ0JsQkMsWUFBWSxFQUFaQSxxQ0FoQmtCO0VBaUJsQkMscUJBQXFCLEVBQXJCQSw4Q0FqQmtCO0VBa0JsQkMsV0FBVyxFQUFYQSxvQ0FsQmtC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
|
|
648
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJESVNQQVRDSEVSUyIsImNsZWFyU3VnZ2VzdGVkQWN0aW9ucyIsImRpc21pc3NOb3RpZmljYXRpb24iLCJlbWl0VHlwaW5nSW5kaWNhdG9yIiwibWFya0FjdGl2aXR5IiwicG9zdEFjdGl2aXR5Iiwic2VuZEV2ZW50Iiwic2VuZEZpbGVzIiwic2VuZE1lc3NhZ2UiLCJzZW5kTWVzc2FnZUJhY2siLCJzZW5kUG9zdEJhY2siLCJzZXREaWN0YXRlSW50ZXJpbXMiLCJzZXREaWN0YXRlU3RhdGUiLCJzZXROb3RpZmljYXRpb24iLCJzZXRTZW5kQm94Iiwic2V0U2VuZFRpbWVvdXQiLCJzdGFydERpY3RhdGUiLCJzdGFydFNwZWFraW5nQWN0aXZpdHkiLCJzdG9wRGljdGF0ZSIsInN0b3BTcGVha2luZ0FjdGl2aXR5Iiwic3VibWl0U2VuZEJveCIsImNyZWF0ZUNhcmRBY3Rpb25Db250ZXh0IiwiY2FyZEFjdGlvbk1pZGRsZXdhcmUiLCJkaXJlY3RMaW5lIiwiZGlzcGF0Y2giLCJtYXJrQWxsQXNBY2tub3dsZWRnZWQiLCJydW5NaWRkbGV3YXJlIiwiYXBwbHlNaWRkbGV3YXJlIiwic2luZ2xlVG9BcnJheSIsImNyZWF0ZURlZmF1bHRDYXJkQWN0aW9uTWlkZGxld2FyZSIsIm9uQ2FyZEFjdGlvbiIsImNhcmRBY3Rpb24iLCJ0YXJnZXQiLCJnZXRTaWduSW5VcmwiLCJ0eXBlIiwidmFsdWUiLCJnZXRTZXNzaW9uSWQiLCJvYnNlcnZhYmxlVG9Qcm9taXNlIiwidGhlbiIsInNlc3Npb25JZCIsImVuY29kZVVSSUNvbXBvbmVudCIsImNvbnNvbGUiLCJ3YXJuIiwiY3JlYXRlR3JvdXBBY3Rpdml0aWVzQ29udGV4dCIsImdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUiLCJncm91cFRpbWVzdGFtcCIsImNyZWF0ZURlZmF1bHRHcm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlIiwiZ3JvdXBBY3Rpdml0aWVzIiwibWVyZ2VTdHJpbmdzT3ZlcnJpZGVzIiwibG9jYWxpemVkU3RyaW5ncyIsImxhbmd1YWdlIiwib3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzIiwibWVyZ2VkIiwiaXNPYmplY3QiLCJFcnJvciIsIkNvbXBvc2VyQ29yZSIsImFjdGl2aXR5TWlkZGxld2FyZSIsImFjdGl2aXR5UmVuZGVyZXIiLCJhY3Rpdml0eVN0YXR1c01pZGRsZXdhcmUiLCJhY3Rpdml0eVN0YXR1c1JlbmRlcmVyIiwiYXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmUiLCJhdHRhY2htZW50TWlkZGxld2FyZSIsImF0dGFjaG1lbnRSZW5kZXJlciIsImF2YXRhck1pZGRsZXdhcmUiLCJhdmF0YXJSZW5kZXJlciIsImNoaWxkcmVuIiwiZGlyIiwiZGlzYWJsZWQiLCJkb3duc2NhbGVJbWFnZVRvRGF0YVVSTCIsImdyYW1tYXJzIiwiaW50ZXJuYWxFcnJvckJveENsYXNzIiwibG9jYWxlIiwib25UZWxlbWV0cnkiLCJyZW5kZXJNYXJrZG93biIsInNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZSIsInNlbGVjdFZvaWNlIiwic2VuZFRpbWVvdXQiLCJzZW5kVHlwaW5nSW5kaWNhdG9yIiwic3R5bGVPcHRpb25zIiwidG9hc3RNaWRkbGV3YXJlIiwidG9hc3RSZW5kZXJlciIsInR5cGluZ0luZGljYXRvck1pZGRsZXdhcmUiLCJ0eXBpbmdJbmRpY2F0b3JSZW5kZXJlciIsInVzZXJJRCIsInVzZXJuYW1lIiwidXNlRGlzcGF0Y2giLCJ0ZWxlbWV0cnlEaW1lbnNpb25zUmVmIiwidXNlUmVmIiwicGF0Y2hlZERpciIsInVzZU1lbW8iLCJwYXRjaGVkR3JhbW1hcnMiLCJwYXRjaGVkU3R5bGVPcHRpb25zIiwibm9ybWFsaXplU3R5bGVPcHRpb25zIiwicGF0Y2hTdHlsZU9wdGlvbnNGcm9tRGVwcmVjYXRlZFByb3BzIiwidXNlRWZmZWN0Iiwic2V0TGFuZ3VhZ2UiLCJzZXRTZW5kVHlwaW5nSW5kaWNhdG9yIiwiY3JlYXRlQ29ubmVjdEFjdGlvbiIsImRpc2Nvbm5lY3QiLCJ1c2VNYXJrQWxsQXNBY2tub3dsZWRnZWQiLCJjYXJkQWN0aW9uQ29udGV4dCIsInBhdGNoZWRTZWxlY3RWb2ljZSIsImRlZmF1bHRTZWxlY3RWb2ljZSIsImJpbmQiLCJncm91cEFjdGl2aXRpZXNDb250ZXh0IiwiaG9pc3RlZERpc3BhdGNoZXJzIiwibWFwTWFwIiwiZGlzcGF0Y2hlciIsInBhdGNoZWRMb2NhbGl6ZWRTdHJpbmdzIiwiZ2V0QWxsTG9jYWxpemVkU3RyaW5ncyIsIm5vcm1hbGl6ZUxhbmd1YWdlIiwibG9jYWxpemVkR2xvYmFsaXplIiwiR0xPQkFMSVpFIiwiR0xPQkFMSVpFX0xBTkdVQUdFIiwiUHJlY29tcGlsZWRHbG9iYWxpemUiLCJ0cmFja0RpbWVuc2lvbiIsInVzZUNhbGxiYWNrIiwibmFtZSIsImRhdGEiLCJjdXJyZW50IiwidXBkYXRlSW4iLCJwYXRjaGVkQWN0aXZpdHlSZW5kZXJlciIsImFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyIiwic3RyaWN0IiwiYWN0aXZpdHkiLCJwYXRjaGVkQWN0aXZpdHlTdGF0dXNSZW5kZXJlciIsInBhdGNoZWRBdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyUmVuZGVyZXIiLCJhdHRhY2htZW50IiwiY29udGVudFR5cGUiLCJwYXRjaGVkQXR0YWNobWVudFJlbmRlcmVyIiwiYXBwbHlNaWRkbGV3YXJlRm9yTGVnYWN5UmVuZGVyZXIiLCJwYXRjaGVkQXZhdGFyUmVuZGVyZXIiLCJwYXRjaGVkVG9hc3RSZW5kZXJlciIsIm5vdGlmaWNhdGlvbiIsInBhdGNoZWRUeXBpbmdJbmRpY2F0b3JSZW5kZXJlciIsInNjcm9sbFRvRW5kQnV0dG9uUmVuZGVyZXIiLCJjb250ZXh0IiwiYXR0YWNobWVudEZvclNjcmVlblJlYWRlclJlbmRlcmVyIiwibG9jYWxpemVkR2xvYmFsaXplU3RhdGUiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJ3aW5kb3ciLCJuYXZpZ2F0b3IiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwiZnVuYyIsImFueSIsIm9uZU9mIiwic2hhcGUiLCJhY3Rpdml0eSQiLCJzdWJzY3JpYmUiLCJpc1JlcXVpcmVkIiwiY29ubmVjdGlvblN0YXR1cyQiLCJlbmQiLCJyZWZlcmVuY2VHcmFtbWFySUQiLCJzdHJpbmciLCJ0b2tlbiIsImJvb2wiLCJudW1iZXIiLCJDb21wb3NlciIsImludGVybmFsUmVuZGVyRXJyb3JCb3giLCJzdG9yZSIsInByb3BzIiwidXNlU3RhdGUiLCJlcnJvciIsInNldEVycm9yIiwiaGFuZGxlRXJyb3IiLCJjcmVhdGVDdXN0b21FdmVudCIsImZhdGFsIiwibWVtb2l6ZWRTdG9yZSIsImNyZWF0ZVN0b3JlIiwiV2ViQ2hhdFJlZHV4Q29udGV4dCJdLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL0NvbXBvc2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1cGRhdGVJbiBmcm9tICdzaW1wbGUtdXBkYXRlLWluJztcbmltcG9ydCB7XG4gIGNsZWFyU3VnZ2VzdGVkQWN0aW9ucyxcbiAgY29ubmVjdCBhcyBjcmVhdGVDb25uZWN0QWN0aW9uLFxuICBjcmVhdGVTdG9yZSxcbiAgZGlzY29ubmVjdCxcbiAgZGlzbWlzc05vdGlmaWNhdGlvbixcbiAgZW1pdFR5cGluZ0luZGljYXRvcixcbiAgbWFya0FjdGl2aXR5LFxuICBwb3N0QWN0aXZpdHksXG4gIHNlbmRFdmVudCxcbiAgc2VuZEZpbGVzLFxuICBzZW5kTWVzc2FnZSxcbiAgc2VuZE1lc3NhZ2VCYWNrLFxuICBzZW5kUG9zdEJhY2ssXG4gIHNldERpY3RhdGVJbnRlcmltcyxcbiAgc2V0RGljdGF0ZVN0YXRlLFxuICBzZXRMYW5ndWFnZSxcbiAgc2V0Tm90aWZpY2F0aW9uLFxuICBzZXRTZW5kQm94LFxuICBzZXRTZW5kVGltZW91dCxcbiAgc2V0U2VuZFR5cGluZ0luZGljYXRvcixcbiAgc2luZ2xlVG9BcnJheSxcbiAgc3RhcnREaWN0YXRlLFxuICBzdGFydFNwZWFraW5nQWN0aXZpdHksXG4gIHN0b3BEaWN0YXRlLFxuICBzdG9wU3BlYWtpbmdBY3Rpdml0eSxcbiAgc3VibWl0U2VuZEJveFxufSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IHsgZGVmYXVsdCBhcyBXZWJDaGF0QVBJQ29udGV4dCB9IGZyb20gJy4vaW50ZXJuYWwvV2ViQ2hhdEFQSUNvbnRleHQnO1xuaW1wb3J0IEFjdGl2aXR5QWNrbm93bGVkZ2VtZW50Q29tcG9zZXIgZnJvbSAnLi4vcHJvdmlkZXJzL0FjdGl2aXR5QWNrbm93bGVkZ2VtZW50L0FjdGl2aXR5QWNrbm93bGVkZ2VtZW50Q29tcG9zZXInO1xuaW1wb3J0IEFjdGl2aXR5S2V5ZXJDb21wb3NlciBmcm9tICcuLi9wcm92aWRlcnMvQWN0aXZpdHlLZXllci9BY3Rpdml0eUtleWVyQ29tcG9zZXInO1xuaW1wb3J0IEFjdGl2aXR5TWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9BY3Rpdml0eU1pZGRsZXdhcmUnO1xuaW1wb3J0IEFjdGl2aXR5U2VuZFN0YXR1c0NvbXBvc2VyIGZyb20gJy4uL3Byb3ZpZGVycy9BY3Rpdml0eVNlbmRTdGF0dXMvQWN0aXZpdHlTZW5kU3RhdHVzQ29tcG9zZXInO1xuaW1wb3J0IEF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlIGZyb20gJy4uL3R5cGVzL0F0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJNaWRkbGV3YXJlJztcbmltcG9ydCBBdHRhY2htZW50TWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9BdHRhY2htZW50TWlkZGxld2FyZSc7XG5pbXBvcnQgQXZhdGFyTWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9BdmF0YXJNaWRkbGV3YXJlJztcbmltcG9ydCBDYXJkQWN0aW9uTWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9DYXJkQWN0aW9uTWlkZGxld2FyZSc7XG5pbXBvcnQgY3JlYXRlQ3VzdG9tRXZlbnQgZnJvbSAnLi4vdXRpbHMvY3JlYXRlQ3VzdG9tRXZlbnQnO1xuaW1wb3J0IGNyZWF0ZURlZmF1bHRDYXJkQWN0aW9uTWlkZGxld2FyZSBmcm9tICcuL21pZGRsZXdhcmUvY3JlYXRlRGVmYXVsdENhcmRBY3Rpb25NaWRkbGV3YXJlJztcbmltcG9ydCBjcmVhdGVEZWZhdWx0R3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSBmcm9tICcuL21pZGRsZXdhcmUvY3JlYXRlRGVmYXVsdEdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUnO1xuaW1wb3J0IGRlZmF1bHRTZWxlY3RWb2ljZSBmcm9tICcuL2ludGVybmFsL2RlZmF1bHRTZWxlY3RWb2ljZSc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICcuL3V0aWxzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IGdldEFsbExvY2FsaXplZFN0cmluZ3MgZnJvbSAnLi4vbG9jYWxpemF0aW9uL2dldEFsbExvY2FsaXplZFN0cmluZ3MnO1xuaW1wb3J0IEdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUgZnJvbSAnLi4vdHlwZXMvR3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi4vdXRpbHMvaXNPYmplY3QnO1xuaW1wb3J0IExvY2FsaXplZFN0cmluZ3MgZnJvbSAnLi4vdHlwZXMvTG9jYWxpemVkU3RyaW5ncyc7XG5pbXBvcnQgbWFwTWFwIGZyb20gJy4uL3V0aWxzL21hcE1hcCc7XG5pbXBvcnQgbm9ybWFsaXplTGFuZ3VhZ2UgZnJvbSAnLi4vdXRpbHMvbm9ybWFsaXplTGFuZ3VhZ2UnO1xuaW1wb3J0IG5vcm1hbGl6ZVN0eWxlT3B0aW9ucyBmcm9tICcuLi9ub3JtYWxpemVTdHlsZU9wdGlvbnMnO1xuaW1wb3J0IG9ic2VydmFibGVUb1Byb21pc2UgZnJvbSAnLi91dGlscy9vYnNlcnZhYmxlVG9Qcm9taXNlJztcbmltcG9ydCBwYXRjaFN0eWxlT3B0aW9uc0Zyb21EZXByZWNhdGVkUHJvcHMgZnJvbSAnLi4vcGF0Y2hTdHlsZU9wdGlvbnNGcm9tRGVwcmVjYXRlZFByb3BzJztcbmltcG9ydCBQcmVjb21waWxlZEdsb2JhbGl6ZVR5cGUgZnJvbSAnLi4vdHlwZXMvUHJlY29tcGlsZWRHbG9iYWxpemUnO1xuaW1wb3J0IFNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZSwgeyBTY3JvbGxUb0VuZEJ1dHRvbkNvbXBvbmVudEZhY3RvcnkgfSBmcm9tICcuLi90eXBlcy9TY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmUnO1xuaW1wb3J0IFN0eWxlT3B0aW9ucyBmcm9tICcuLi9TdHlsZU9wdGlvbnMnO1xuaW1wb3J0IFRlbGVtZXRyeU1lYXN1cmVtZW50RXZlbnQsIHsgVGVsZW1ldHJ5RXhjZXB0aW9uTWVhc3VyZW1lbnRFdmVudCB9IGZyb20gJy4uL3R5cGVzL1RlbGVtZXRyeU1lYXN1cmVtZW50RXZlbnQnO1xuaW1wb3J0IFRvYXN0TWlkZGxld2FyZSBmcm9tICcuLi90eXBlcy9Ub2FzdE1pZGRsZXdhcmUnO1xuaW1wb3J0IFRyYWNrZXIgZnJvbSAnLi9pbnRlcm5hbC9UcmFja2VyJztcbmltcG9ydCBUeXBpbmdJbmRpY2F0b3JNaWRkbGV3YXJlIGZyb20gJy4uL3R5cGVzL1R5cGluZ0luZGljYXRvck1pZGRsZXdhcmUnO1xuaW1wb3J0IHVzZU1hcmtBbGxBc0Fja25vd2xlZGdlZCBmcm9tICcuL3VzZU1hcmtBbGxBc0Fja25vd2xlZGdlZCc7XG5pbXBvcnQgV2ViQ2hhdFJlZHV4Q29udGV4dCwgeyB1c2VEaXNwYXRjaCB9IGZyb20gJy4vaW50ZXJuYWwvV2ViQ2hhdFJlZHV4Q29udGV4dCc7XG5cbmltcG9ydCBhcHBseU1pZGRsZXdhcmUsIHtcbiAgZm9yTGVnYWN5UmVuZGVyZXIgYXMgYXBwbHlNaWRkbGV3YXJlRm9yTGVnYWN5UmVuZGVyZXIsXG4gIGZvclJlbmRlcmVyIGFzIGFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyXG59IGZyb20gJy4vbWlkZGxld2FyZS9hcHBseU1pZGRsZXdhcmUnO1xuXG4vLyBQcmVjb21waWxlR2xvYmFsaXplIGlzIGEgZ2VuZXJhdGVkIGZpbGUgYW5kIGlzIG5vdCBFUyBtb2R1bGUuIFR5cGVTY3JpcHQgZG9uJ3Qgd29yayB3aXRoIFVNRC5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCBQcmVjb21waWxlZEdsb2JhbGl6ZSBmcm9tICcuLi9leHRlcm5hbC9QcmVjb21waWxlZEdsb2JhbGl6ZSc7XG5cbmltcG9ydCB0eXBlIHsgQWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlLCBSZW5kZXJBY3Rpdml0eVN0YXR1cyB9IGZyb20gJy4uL3R5cGVzL0FjdGl2aXR5U3RhdHVzTWlkZGxld2FyZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRPZiB9IGZyb20gJy4uL3R5cGVzL2ludGVybmFsL0NvbnRleHRPZic7XG5pbXBvcnQgdHlwZSB7IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb24sIE9uZU9yTWFueSwgV2ViQ2hhdEFjdGl2aXR5IH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5pbXBvcnQgdHlwZSB7IEZDLCBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbi8vIExpc3Qgb2YgUmVkdXggYWN0aW9ucyBmYWN0b3J5IHdlIGFyZSBob2lzdGluZyBhcyBXZWIgQ2hhdCBmdW5jdGlvbnNcbmNvbnN0IERJU1BBVENIRVJTID0ge1xuICBjbGVhclN1Z2dlc3RlZEFjdGlvbnMsXG4gIGRpc21pc3NOb3RpZmljYXRpb24sXG4gIGVtaXRUeXBpbmdJbmRpY2F0b3IsXG4gIG1hcmtBY3Rpdml0eSxcbiAgcG9zdEFjdGl2aXR5LFxuICBzZW5kRXZlbnQsXG4gIHNlbmRGaWxlcyxcbiAgc2VuZE1lc3NhZ2UsXG4gIHNlbmRNZXNzYWdlQmFjayxcbiAgc2VuZFBvc3RCYWNrLFxuICBzZXREaWN0YXRlSW50ZXJpbXMsXG4gIHNldERpY3RhdGVTdGF0ZSxcbiAgc2V0Tm90aWZpY2F0aW9uLFxuICBzZXRTZW5kQm94LFxuICBzZXRTZW5kVGltZW91dCxcbiAgc3RhcnREaWN0YXRlLFxuICBzdGFydFNwZWFraW5nQWN0aXZpdHksXG4gIHN0b3BEaWN0YXRlLFxuICBzdG9wU3BlYWtpbmdBY3Rpdml0eSxcbiAgc3VibWl0U2VuZEJveFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQ2FyZEFjdGlvbkNvbnRleHQoeyBjYXJkQWN0aW9uTWlkZGxld2FyZSwgZGlyZWN0TGluZSwgZGlzcGF0Y2gsIG1hcmtBbGxBc0Fja25vd2xlZGdlZCB9KSB7XG4gIGNvbnN0IHJ1bk1pZGRsZXdhcmUgPSBhcHBseU1pZGRsZXdhcmUoXG4gICAgJ2NhcmQgYWN0aW9uJyxcbiAgICAuLi5zaW5nbGVUb0FycmF5KGNhcmRBY3Rpb25NaWRkbGV3YXJlKSxcbiAgICBjcmVhdGVEZWZhdWx0Q2FyZEFjdGlvbk1pZGRsZXdhcmUoKVxuICApKHsgZGlzcGF0Y2ggfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBvbkNhcmRBY3Rpb246IChjYXJkQWN0aW9uLCB7IHRhcmdldCB9OiB7IHRhcmdldD86IGFueSB9ID0ge30pID0+IHtcbiAgICAgIG1hcmtBbGxBc0Fja25vd2xlZGdlZCgpO1xuXG4gICAgICByZXR1cm4gcnVuTWlkZGxld2FyZSh7XG4gICAgICAgIGNhcmRBY3Rpb24sXG4gICAgICAgIGdldFNpZ25JblVybDpcbiAgICAgICAgICBjYXJkQWN0aW9uLnR5cGUgPT09ICdzaWduaW4nXG4gICAgICAgICAgICA/ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBjYXJkQWN0aW9uO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRpcmVjdExpbmUuZ2V0U2Vzc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAqIEB0b2RvIFRPRE86IFtQM10gV2Ugc2hvdWxkIGNoYW5nZSB0aGlzIG9uZSB0byBhc3luYy9hd2FpdC5cbiAgICAgICAgICAgICAgICAgICAqICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHBsYWNlIGluIHRoaXMgcHJvamVjdCB0byB1c2UgYXN5bmMuXG4gICAgICAgICAgICAgICAgICAgKiAgICAgICBUaHVzLCB3ZSBuZWVkIHRvIGFkZCBAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1ydW50aW1lIGFuZCBAYmFiZWwvcnVudGltZS5cbiAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVUb1Byb21pc2UoZGlyZWN0TGluZS5nZXRTZXNzaW9uSWQoKSkudGhlbihcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkID0+IGAke3ZhbHVlfSR7ZW5jb2RlVVJJQ29tcG9uZW50KGAmY29kZV9jaGFsbGVuZ2U9JHtzZXNzaW9uSWR9YCl9YFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBPQXV0aCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgRGlyZWN0IExpbmUgYWRhcHRlci4nKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICB0YXJnZXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlR3JvdXBBY3Rpdml0aWVzQ29udGV4dCh7IGdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUsIGdyb3VwVGltZXN0YW1wIH0pIHtcbiAgY29uc3QgcnVuTWlkZGxld2FyZSA9IGFwcGx5TWlkZGxld2FyZShcbiAgICAnZ3JvdXAgYWN0aXZpdGllcycsXG4gICAgLi4uc2luZ2xlVG9BcnJheShncm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlKSxcbiAgICBjcmVhdGVEZWZhdWx0R3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSh7IGdyb3VwVGltZXN0YW1wIH0pXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBncm91cEFjdGl2aXRpZXM6IHJ1bk1pZGRsZXdhcmUoe30pXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1lcmdlU3RyaW5nc092ZXJyaWRlcyhsb2NhbGl6ZWRTdHJpbmdzLCBsYW5ndWFnZSwgb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzKSB7XG4gIGlmICghb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzKSB7XG4gICAgcmV0dXJuIGxvY2FsaXplZFN0cmluZ3M7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IG1lcmdlZCA9IG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyhsb2NhbGl6ZWRTdHJpbmdzLCBsYW5ndWFnZSk7XG5cbiAgICBpZiAoIWlzT2JqZWN0KG1lcmdlZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyBmdW5jdGlvbiBtdXN0IHJldHVybiBhbiBvYmplY3QuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlZDtcbiAgfVxuXG4gIGlmICghaXNPYmplY3Qob3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IG92ZXJyaWRlTG9jYWxpemVkU3RyaW5ncyBtdXN0IGJlIGVpdGhlciBhIGZ1bmN0aW9uLCBhbiBvYmplY3QsIG9yIGZhbHN5LicpO1xuICB9XG5cbiAgcmV0dXJuIHsgLi4ubG9jYWxpemVkU3RyaW5ncywgLi4ub3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzIH07XG59XG5cbi8vIEl0IHNlZW1zIFwicmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzXCIgZGlkIG5vdCBwaWNrIHVwIGBDb21wb3NlckNvcmUuZGVmYXVsdFByb3BzYC5cbi8vIEFuZCBpdCBmYWxzZWx5IGNvbXBsYWludCBgb3B0aW9uYWw/OiBzdHJpbmdgIG11c3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYENvbXBvc2VyQ29yZS5kZWZhdWx0UHJvcHMub3B0aW9uYWwgPSB1bmRlZmluZWRgLCBldmVuIHdlIGFscmVhZHkgc2V0IGl0IGJlbG93LlxuLy8gU2luY2Ugd2Ugc2V0IGJvdGggVHlwZVNjcmlwdCBgUHJvcHNgIGNsYXNzIGFuZCBgQ29tcG9zZXJDb3JlLnByb3BUeXBlc2AsIHRoaXMgY2hlY2sgd2lsbCBiZSBkb25lIHRoZXJlIGFzIHdlbGwuXG4vLyBJZ25vcmluZyBpdCBpbiBUeXBlU2NyaXB0IHZlcnNpb24gc2hvdWxkIGJlIHNhZmUsIGFzIHdlIGhhdmUgYHByb3BUeXBlc2AgdmVyc2lvbiB0byBwcm90ZWN0IHVzLlxuXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9yZXF1aXJlLWRlZmF1bHQtcHJvcHMgKi9cbnR5cGUgQ29tcG9zZXJDb3JlUHJvcHMgPSB7XG4gIGFjdGl2aXR5TWlkZGxld2FyZT86IE9uZU9yTWFueTxBY3Rpdml0eU1pZGRsZXdhcmU+O1xuICBhY3Rpdml0eVN0YXR1c01pZGRsZXdhcmU/OiBPbmVPck1hbnk8QWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlPjtcbiAgYXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmU/OiBPbmVPck1hbnk8QXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmU+O1xuICBhdHRhY2htZW50TWlkZGxld2FyZT86IE9uZU9yTWFueTxBdHRhY2htZW50TWlkZGxld2FyZT47XG4gIGF2YXRhck1pZGRsZXdhcmU/OiBPbmVPck1hbnk8QXZhdGFyTWlkZGxld2FyZT47XG4gIGNhcmRBY3Rpb25NaWRkbGV3YXJlPzogT25lT3JNYW55PENhcmRBY3Rpb25NaWRkbGV3YXJlPjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGUgfCAoKGNvbnRleHQ6IENvbnRleHRPZjx0eXBlb2YgV2ViQ2hhdEFQSUNvbnRleHQ+KSA9PiBSZWFjdE5vZGUpO1xuICBkaXI/OiBzdHJpbmc7XG4gIGRpcmVjdExpbmU6IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb247XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZG93bnNjYWxlSW1hZ2VUb0RhdGFVUkw/OiAoYmxvYjogQmxvYiwgbWF4V2lkdGg6IG51bWJlciwgbWF4SGVpZ2h0OiBudW1iZXIsIHR5cGU6IHN0cmluZywgcXVhbGl0eTogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIGdyYW1tYXJzPzogYW55O1xuICBncm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlPzogT25lT3JNYW55PEdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmU+O1xuICBpbnRlcm5hbEVycm9yQm94Q2xhc3M/OiBSZWFjdC5Db21wb25lbnQgfCBGdW5jdGlvbjtcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBvblRlbGVtZXRyeT86IChldmVudDogVGVsZW1ldHJ5TWVhc3VyZW1lbnRFdmVudCkgPT4gdm9pZDtcbiAgb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzPzogTG9jYWxpemVkU3RyaW5ncyB8ICgoc3RyaW5nczogTG9jYWxpemVkU3RyaW5ncywgbGFuZ3VhZ2U6IHN0cmluZykgPT4gTG9jYWxpemVkU3RyaW5ncyk7XG4gIHJlbmRlck1hcmtkb3duPzogKFxuICAgIG1hcmtkb3duOiBzdHJpbmcsXG4gICAgbmV3TGluZU9wdGlvbnM6IHsgbWFya2Rvd25SZXNwZWN0Q1JMRjogYm9vbGVhbiB9LFxuICAgIGxpbmtPcHRpb25zOiB7IGV4dGVybmFsTGlua0FsdDogc3RyaW5nIH1cbiAgKSA9PiBzdHJpbmc7XG4gIHNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZT86IE9uZU9yTWFueTxTY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmU+O1xuICBzZWxlY3RWb2ljZT86ICh2b2ljZXM6IHR5cGVvZiB3aW5kb3cuU3BlZWNoU3ludGhlc2lzVm9pY2VbXSwgYWN0aXZpdHk6IFdlYkNoYXRBY3Rpdml0eSkgPT4gdm9pZDtcbiAgc2VuZFR5cGluZ0luZGljYXRvcj86IGJvb2xlYW47XG4gIHN0eWxlT3B0aW9ucz86IFN0eWxlT3B0aW9ucztcbiAgdG9hc3RNaWRkbGV3YXJlPzogT25lT3JNYW55PFRvYXN0TWlkZGxld2FyZT47XG4gIHR5cGluZ0luZGljYXRvck1pZGRsZXdhcmU/OiBPbmVPck1hbnk8VHlwaW5nSW5kaWNhdG9yTWlkZGxld2FyZT47XG4gIHVzZXJJRD86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgXCJhY3Rpdml0eU1pZGRsZXdhcmVcIiBpbnN0ZWFkLiAqL1xuICBhY3Rpdml0eVJlbmRlcmVyPzogYW55OyAvLyBUT0RPOiBbUDRdIFJlbW92ZSBvbiBvciBhZnRlciAyMDIyLTA2LTE1LlxuICAvKiogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBcImFjdGl2aXR5U3RhdHVzTWlkZGxld2FyZVwiIGluc3RlYWQuICovXG4gIGFjdGl2aXR5U3RhdHVzUmVuZGVyZXI/OiBhbnk7IC8vIFRPRE86IFtQNF0gUmVtb3ZlIG9uIG9yIGFmdGVyIDIwMjItMDYtMTUuXG4gIC8qKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFwiYXR0YWNobWVudE1pZGRsZXdhcmVcIiBpbnN0ZWFkLiAqL1xuICBhdHRhY2htZW50UmVuZGVyZXI/OiBhbnk7IC8vIFRPRE86IFtQNF0gUmVtb3ZlIG9uIG9yIGFmdGVyIDIwMjItMDYtMTUuXG4gIC8qKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFwiYXZhdGFyTWlkZGxld2FyZVwiIGluc3RlYWQuICovXG4gIGF2YXRhclJlbmRlcmVyPzogYW55OyAvLyBUT0RPOiBbUDRdIFJlbW92ZSBvbiBvciBhZnRlciAyMDIyLTA2LTE1LlxuICAvKiogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBcInN0eWxlT3B0aW9ucy5ncm91cFRpbWVzdGFtcFwiIGluc3RlYWQuICovXG4gIGdyb3VwVGltZXN0YW1wPzogYm9vbGVhbiB8IG51bWJlcjsgLy8gVE9ETzogW1A0XSBSZW1vdmUgb24gb3IgYWZ0ZXIgMjAyMi0wMS0wMVxuICAvKiogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBcInN0eWxlT3B0aW9ucy5zZW5kVGltZW91dFwiIGluc3RlYWQuICovXG4gIHNlbmRUaW1lb3V0PzogbnVtYmVyOyAvLyBUT0RPOiBbUDRdIFJlbW92ZSBvbiBvciBhZnRlciAyMDIyLTAxLTAxLlxuICAvKiogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBcInRvYXN0TWlkZGxld2FyZVwiIGluc3RlYWQuICovXG4gIHRvYXN0UmVuZGVyZXI/OiBhbnk7IC8vIFRPRE86IFtQNF0gUmVtb3ZlIG9uIG9yIGFmdGVyIDIwMjItMDYtMTUuXG4gIC8qKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFwidHlwaW5nSW5kaWNhdG9yUmVuZGVyZXJcIiBpbnN0ZWFkLiAqL1xuICB0eXBpbmdJbmRpY2F0b3JSZW5kZXJlcj86IGFueTsgLy8gVE9ETzogW1A0XSBSZW1vdmUgb24gb3IgYWZ0ZXIgMjAyMi0wNi0xNS5cbn07XG4vKiBlc2xpbnQtZW5hYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuXG5jb25zdCBDb21wb3NlckNvcmU6IEZDPENvbXBvc2VyQ29yZVByb3BzPiA9ICh7XG4gIGFjdGl2aXR5TWlkZGxld2FyZSxcbiAgYWN0aXZpdHlSZW5kZXJlcixcbiAgYWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlLFxuICBhY3Rpdml0eVN0YXR1c1JlbmRlcmVyLFxuICBhdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyTWlkZGxld2FyZSxcbiAgYXR0YWNobWVudE1pZGRsZXdhcmUsXG4gIGF0dGFjaG1lbnRSZW5kZXJlcixcbiAgYXZhdGFyTWlkZGxld2FyZSxcbiAgYXZhdGFyUmVuZGVyZXIsXG4gIGNhcmRBY3Rpb25NaWRkbGV3YXJlLFxuICBjaGlsZHJlbixcbiAgZGlyLFxuICBkaXJlY3RMaW5lLFxuICBkaXNhYmxlZCxcbiAgZG93bnNjYWxlSW1hZ2VUb0RhdGFVUkwsXG4gIGdyYW1tYXJzLFxuICBncm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlLFxuICBncm91cFRpbWVzdGFtcCxcbiAgaW50ZXJuYWxFcnJvckJveENsYXNzLFxuICBsb2NhbGUsXG4gIG9uVGVsZW1ldHJ5LFxuICBvdmVycmlkZUxvY2FsaXplZFN0cmluZ3MsXG4gIHJlbmRlck1hcmtkb3duLFxuICBzY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmUsXG4gIHNlbGVjdFZvaWNlLFxuICBzZW5kVGltZW91dCxcbiAgc2VuZFR5cGluZ0luZGljYXRvcixcbiAgc3R5bGVPcHRpb25zLFxuICB0b2FzdE1pZGRsZXdhcmUsXG4gIHRvYXN0UmVuZGVyZXIsXG4gIHR5cGluZ0luZGljYXRvck1pZGRsZXdhcmUsXG4gIHR5cGluZ0luZGljYXRvclJlbmRlcmVyLFxuICB1c2VySUQsXG4gIHVzZXJuYW1lXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgdGVsZW1ldHJ5RGltZW5zaW9uc1JlZiA9IHVzZVJlZih7fSk7XG5cbiAgY29uc3QgcGF0Y2hlZERpciA9IHVzZU1lbW8oKCkgPT4gKGRpciA9PT0gJ2x0cicgfHwgZGlyID09PSAncnRsJyA/IGRpciA6ICdhdXRvJyksIFtkaXJdKTtcbiAgY29uc3QgcGF0Y2hlZEdyYW1tYXJzID0gdXNlTWVtbygoKSA9PiBncmFtbWFycyB8fCBbXSwgW2dyYW1tYXJzXSk7XG4gIGNvbnN0IHBhdGNoZWRTdHlsZU9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+IG5vcm1hbGl6ZVN0eWxlT3B0aW9ucyhwYXRjaFN0eWxlT3B0aW9uc0Zyb21EZXByZWNhdGVkUHJvcHMoc3R5bGVPcHRpb25zLCB7IGdyb3VwVGltZXN0YW1wLCBzZW5kVGltZW91dCB9KSksXG4gICAgW2dyb3VwVGltZXN0YW1wLCBzZW5kVGltZW91dCwgc3R5bGVPcHRpb25zXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goc2V0TGFuZ3VhZ2UobG9jYWxlKSk7XG4gIH0sIFtkaXNwYXRjaCwgbG9jYWxlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB0eXBlb2Ygc2VuZFRpbWVvdXQgPT09ICdudW1iZXInICYmIGRpc3BhdGNoKHNldFNlbmRUaW1lb3V0KHNlbmRUaW1lb3V0KSk7XG4gIH0sIFtkaXNwYXRjaCwgc2VuZFRpbWVvdXRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNldFNlbmRUeXBpbmdJbmRpY2F0b3IoISFzZW5kVHlwaW5nSW5kaWNhdG9yKSk7XG4gIH0sIFtkaXNwYXRjaCwgc2VuZFR5cGluZ0luZGljYXRvcl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBjcmVhdGVDb25uZWN0QWN0aW9uKHtcbiAgICAgICAgZGlyZWN0TGluZSxcbiAgICAgICAgdXNlcklELFxuICAgICAgICB1c2VybmFtZVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8qKlxuICAgICAgICogQHRvZG8gVE9ETzogW1AzXSBkaXNjb25uZWN0KCkgaXMgYW4gYXN5bmMgY2FsbCAocGVuZGluZyAtPiBmdWxmaWxsZWQpLCB3ZSBuZWVkIHRvIHdhaXQsIG9yIGNoYW5nZSBpdCB0byByZWNvbm5lY3QoKVxuICAgICAgICovXG4gICAgICBkaXNwYXRjaChkaXNjb25uZWN0KCkpO1xuICAgIH07XG4gIH0sIFtkaXNwYXRjaCwgZGlyZWN0TGluZSwgdXNlcklELCB1c2VybmFtZV0pO1xuXG4gIGNvbnN0IG1hcmtBbGxBc0Fja25vd2xlZGdlZCA9IHVzZU1hcmtBbGxBc0Fja25vd2xlZGdlZCgpO1xuXG4gIGNvbnN0IGNhcmRBY3Rpb25Db250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBjcmVhdGVDYXJkQWN0aW9uQ29udGV4dCh7IGNhcmRBY3Rpb25NaWRkbGV3YXJlLCBkaXJlY3RMaW5lLCBkaXNwYXRjaCwgbWFya0FsbEFzQWNrbm93bGVkZ2VkIH0pLFxuICAgIFtjYXJkQWN0aW9uTWlkZGxld2FyZSwgZGlyZWN0TGluZSwgZGlzcGF0Y2gsIG1hcmtBbGxBc0Fja25vd2xlZGdlZF1cbiAgKTtcblxuICBjb25zdCBwYXRjaGVkU2VsZWN0Vm9pY2UgPSB1c2VNZW1vKFxuICAgICgpID0+IHNlbGVjdFZvaWNlIHx8IGRlZmF1bHRTZWxlY3RWb2ljZS5iaW5kKG51bGwsIHsgbGFuZ3VhZ2U6IGxvY2FsZSB9KSxcbiAgICBbbG9jYWxlLCBzZWxlY3RWb2ljZV1cbiAgKTtcblxuICBjb25zdCBncm91cEFjdGl2aXRpZXNDb250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgY3JlYXRlR3JvdXBBY3Rpdml0aWVzQ29udGV4dCh7XG4gICAgICAgIGdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmUsXG4gICAgICAgIGdyb3VwVGltZXN0YW1wOiBwYXRjaGVkU3R5bGVPcHRpb25zLmdyb3VwVGltZXN0YW1wXG4gICAgICB9KSxcbiAgICBbZ3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSwgcGF0Y2hlZFN0eWxlT3B0aW9ucy5ncm91cFRpbWVzdGFtcF1cbiAgKTtcblxuICBjb25zdCBob2lzdGVkRGlzcGF0Y2hlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBtYXBNYXAoXG4gICAgICAgIERJU1BBVENIRVJTLFxuICAgICAgICBkaXNwYXRjaGVyID0+XG4gICAgICAgICAgKC4uLmFyZ3MpID0+XG4gICAgICAgICAgICBkaXNwYXRjaChkaXNwYXRjaGVyKC4uLmFyZ3MpKVxuICAgICAgKSxcbiAgICBbZGlzcGF0Y2hdXG4gICk7XG5cbiAgY29uc3QgcGF0Y2hlZExvY2FsaXplZFN0cmluZ3MgPSB1c2VNZW1vKFxuICAgICgpID0+IG1lcmdlU3RyaW5nc092ZXJyaWRlcyhnZXRBbGxMb2NhbGl6ZWRTdHJpbmdzKClbbm9ybWFsaXplTGFuZ3VhZ2UobG9jYWxlKV0sIGxvY2FsZSwgb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzKSxcbiAgICBbbG9jYWxlLCBvdmVycmlkZUxvY2FsaXplZFN0cmluZ3NdXG4gICk7XG5cbiAgY29uc3QgbG9jYWxpemVkR2xvYmFsaXplID0gdXNlTWVtbzxQcmVjb21waWxlZEdsb2JhbGl6ZVR5cGU+KCgpID0+IHtcbiAgICBjb25zdCB7IEdMT0JBTElaRSwgR0xPQkFMSVpFX0xBTkdVQUdFIH0gPSBwYXRjaGVkTG9jYWxpemVkU3RyaW5ncyB8fCB7fTtcblxuICAgIHJldHVybiBHTE9CQUxJWkUgfHwgKEdMT0JBTElaRV9MQU5HVUFHRSAmJiBQcmVjb21waWxlZEdsb2JhbGl6ZShHTE9CQUxJWkVfTEFOR1VBR0UpKSB8fCBQcmVjb21waWxlZEdsb2JhbGl6ZSgnZW4nKTtcbiAgfSwgW3BhdGNoZWRMb2NhbGl6ZWRTdHJpbmdzXSk7XG5cbiAgY29uc3QgdHJhY2tEaW1lbnNpb24gPSB1c2VDYWxsYmFjayhcbiAgICAobmFtZTogc3RyaW5nLCBkYXRhOiBhbnkpID0+IHtcbiAgICAgIGlmICghbmFtZSB8fCB0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUud2FybignYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IFRlbGVtZXRyeSBkaW1lbnNpb24gbmFtZSBtdXN0IGJlIGEgc3RyaW5nLicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlID0gdHlwZW9mIGRhdGE7XG5cbiAgICAgIGlmICh0eXBlICE9PSAnc3RyaW5nJyAmJiB0eXBlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gY29uc29sZS53YXJuKCdib3RmcmFtZXdvcmstd2ViY2hhdDogVGVsZW1ldHJ5IGRpbWVuc2lvbiBkYXRhIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuXG4gICAgICB0ZWxlbWV0cnlEaW1lbnNpb25zUmVmLmN1cnJlbnQgPSB1cGRhdGVJbihcbiAgICAgICAgdGVsZW1ldHJ5RGltZW5zaW9uc1JlZi5jdXJyZW50LFxuICAgICAgICBbbmFtZV0sXG4gICAgICAgIHR5cGUgPT09ICd1bmRlZmluZWQnID8gZGF0YSA6ICgpID0+IGRhdGFcbiAgICAgICk7XG4gICAgfSxcbiAgICBbdGVsZW1ldHJ5RGltZW5zaW9uc1JlZl1cbiAgKTtcblxuICBjb25zdCBwYXRjaGVkQWN0aXZpdHlSZW5kZXJlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGFjdGl2aXR5UmVuZGVyZXIgJiZcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1dlYiBDaGF0OiBcImFjdGl2aXR5UmVuZGVyZXJcIiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gMjAyMi0wNi0xNSwgcGxlYXNlIHVzZSBcImFjdGl2aXR5TWlkZGxld2FyZVwiIGluc3RlYWQuJ1xuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICBhY3Rpdml0eVJlbmRlcmVyIHx8XG4gICAgICBhcHBseU1pZGRsZXdhcmVGb3JSZW5kZXJlcihcbiAgICAgICAgJ2FjdGl2aXR5JyxcbiAgICAgICAgeyBzdHJpY3Q6IGZhbHNlIH0sXG4gICAgICAgIC4uLnNpbmdsZVRvQXJyYXkoYWN0aXZpdHlNaWRkbGV3YXJlKSxcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAoKSA9PlxuICAgICAgICAgICh7IGFjdGl2aXR5IH0pID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpdml0eSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHJlbmRlcmVyIGZvciBhY3Rpdml0eSBvZiB0eXBlIFwiJHthY3Rpdml0eS50eXBlfVwiYCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGFjdGl2aXR5IHRvIHJlbmRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICkoe30pXG4gICAgKTtcbiAgfSwgW2FjdGl2aXR5TWlkZGxld2FyZSwgYWN0aXZpdHlSZW5kZXJlcl0pO1xuXG4gIGNvbnN0IHBhdGNoZWRBY3Rpdml0eVN0YXR1c1JlbmRlcmVyID0gdXNlTWVtbzxSZW5kZXJBY3Rpdml0eVN0YXR1cz4oKCkgPT4ge1xuICAgIGFjdGl2aXR5U3RhdHVzUmVuZGVyZXIgJiZcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1dlYiBDaGF0OiBcImFjdGl2aXR5U3RhdHVzUmVuZGVyZXJcIiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gMjAyMi0wNi0xNSwgcGxlYXNlIHVzZSBcImFjdGl2aXR5U3RhdHVzTWlkZGxld2FyZVwiIGluc3RlYWQuJ1xuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICBhY3Rpdml0eVN0YXR1c1JlbmRlcmVyIHx8XG4gICAgICBhcHBseU1pZGRsZXdhcmVGb3JSZW5kZXJlcihcbiAgICAgICAgJ2FjdGl2aXR5IHN0YXR1cycsXG4gICAgICAgIHsgc3RyaWN0OiBmYWxzZSB9LFxuICAgICAgICAuLi5zaW5nbGVUb0FycmF5KGFjdGl2aXR5U3RhdHVzTWlkZGxld2FyZSksXG4gICAgICAgICgpID0+ICgpID0+ICgpID0+IGZhbHNlXG4gICAgICApKHt9KVxuICAgICk7XG4gIH0sIFthY3Rpdml0eVN0YXR1c01pZGRsZXdhcmUsIGFjdGl2aXR5U3RhdHVzUmVuZGVyZXJdKTtcblxuICBjb25zdCBwYXRjaGVkQXR0YWNobWVudEZvclNjcmVlblJlYWRlclJlbmRlcmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgYXBwbHlNaWRkbGV3YXJlRm9yUmVuZGVyZXIoXG4gICAgICAgICdhdHRhY2htZW50IGZvciBzY3JlZW4gcmVhZGVyJyxcbiAgICAgICAgeyBzdHJpY3Q6IHRydWUgfSxcbiAgICAgICAgLi4uc2luZ2xlVG9BcnJheShhdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyTWlkZGxld2FyZSksXG4gICAgICAgICgpID0+XG4gICAgICAgICAgKCkgPT5cbiAgICAgICAgICAoeyBhdHRhY2htZW50IH0pID0+IHtcbiAgICAgICAgICAgIGlmIChhdHRhY2htZW50KSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihgTm8gcmVuZGVyZXIgZm9yIGF0dGFjaG1lbnQgZm9yIHNjcmVlbiByZWFkZXIgb2YgdHlwZSBcIiR7YXR0YWNobWVudC5jb250ZW50VHlwZX1cImApO1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBAdG9kbyBUT0RPOiBbUDRdIE1pZ2h0IGJlIGFibGUgdG8gdGhyb3cgd2l0aG91dCByZXR1cm5pbmcgYSBmdW5jdGlvbiAtLSBpbnZlc3RpZ2F0ZSBhbmQgcG9zc2libHkgZml4XG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGF0dGFjaG1lbnQgdG8gcmVuZGVyJyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICkoe30pLFxuICAgIFthdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyTWlkZGxld2FyZV1cbiAgKTtcblxuICBjb25zdCBwYXRjaGVkQXR0YWNobWVudFJlbmRlcmVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGF0dGFjaG1lbnRSZW5kZXJlcikge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV2ViIENoYXQ6IFwiYXR0YWNobWVudFJlbmRlcmVyXCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIG9uIDIwMjItMDYtMTUsIHBsZWFzZSB1c2UgXCJhdHRhY2htZW50TWlkZGxld2FyZVwiIGluc3RlYWQuJ1xuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGF0dGFjaG1lbnRSZW5kZXJlcjtcbiAgICB9XG5cbiAgICAvLyBBdHRhY2htZW50IHJlbmRlcmVyXG4gICAgcmV0dXJuIGFwcGx5TWlkZGxld2FyZUZvckxlZ2FjeVJlbmRlcmVyKFxuICAgICAgJ2F0dGFjaG1lbnQnLFxuICAgICAgLi4uc2luZ2xlVG9BcnJheShhdHRhY2htZW50TWlkZGxld2FyZSksXG4gICAgICAoKSA9PlxuICAgICAgICAoKSA9PlxuICAgICAgICAoeyBhdHRhY2htZW50IH0pID0+IHtcbiAgICAgICAgICBpZiAoYXR0YWNobWVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyByZW5kZXJlciBmb3IgYXR0YWNobWVudCBvZiB0eXBlIFwiJHthdHRhY2htZW50LmNvbnRlbnRUeXBlfVwiYCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYXR0YWNobWVudCB0byByZW5kZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApKHt9KTtcbiAgfSwgW2F0dGFjaG1lbnRNaWRkbGV3YXJlLCBhdHRhY2htZW50UmVuZGVyZXJdKTtcblxuICBjb25zdCBwYXRjaGVkQXZhdGFyUmVuZGVyZXIgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBhdmF0YXJSZW5kZXJlciAmJlxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV2ViIENoYXQ6IFwiYXZhdGFyUmVuZGVyZXJcIiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gMjAyMi0wNi0xNSwgcGxlYXNlIHVzZSBcImF2YXRhck1pZGRsZXdhcmVcIiBpbnN0ZWFkLidcbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgYXZhdGFyUmVuZGVyZXIgfHxcbiAgICAgIGFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyKFxuICAgICAgICAnYXZhdGFyJyxcbiAgICAgICAgeyBzdHJpY3Q6IGZhbHNlIH0sXG4gICAgICAgIC4uLnNpbmdsZVRvQXJyYXkoYXZhdGFyTWlkZGxld2FyZSksXG4gICAgICAgICgpID0+ICgpID0+ICgpID0+IGZhbHNlXG4gICAgICApKHt9KVxuICAgICk7XG4gIH0sIFthdmF0YXJNaWRkbGV3YXJlLCBhdmF0YXJSZW5kZXJlcl0pO1xuXG4gIGNvbnN0IHBhdGNoZWRUb2FzdFJlbmRlcmVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgdG9hc3RSZW5kZXJlciAmJlxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV2ViIENoYXQ6IFwidG9hc3RSZW5kZXJlclwiIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiAyMDIyLTA2LTE1LCBwbGVhc2UgdXNlIFwidG9hc3RNaWRkbGV3YXJlXCIgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRvYXN0UmVuZGVyZXIgfHxcbiAgICAgIGFwcGx5TWlkZGxld2FyZUZvclJlbmRlcmVyKFxuICAgICAgICAndG9hc3QnLFxuICAgICAgICB7IHN0cmljdDogZmFsc2UgfSxcbiAgICAgICAgLi4uc2luZ2xlVG9BcnJheSh0b2FzdE1pZGRsZXdhcmUpLFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICgpID0+XG4gICAgICAgICAgKHsgbm90aWZpY2F0aW9uIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24pIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyByZW5kZXJlciBmb3Igbm90aWZpY2F0aW9uIG9mIHR5cGUgXCIke25vdGlmaWNhdGlvbi5jb250ZW50VHlwZX1cImApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBub3RpZmljYXRpb24gdG8gcmVuZGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgKSh7fSlcbiAgICApO1xuICB9LCBbdG9hc3RNaWRkbGV3YXJlLCB0b2FzdFJlbmRlcmVyXSk7XG5cbiAgY29uc3QgcGF0Y2hlZFR5cGluZ0luZGljYXRvclJlbmRlcmVyID0gdXNlTWVtbygoKSA9PiB7XG4gICAgdHlwaW5nSW5kaWNhdG9yUmVuZGVyZXIgJiZcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1dlYiBDaGF0OiBcInR5cGluZ0luZGljYXRvclJlbmRlcmVyXCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIG9uIDIwMjItMDYtMTUsIHBsZWFzZSB1c2UgXCJ0eXBpbmdJbmRpY2F0b3JNaWRkbGV3YXJlXCIgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGluZ0luZGljYXRvclJlbmRlcmVyIHx8XG4gICAgICBhcHBseU1pZGRsZXdhcmVGb3JSZW5kZXJlcihcbiAgICAgICAgJ3R5cGluZyBpbmRpY2F0b3InLFxuICAgICAgICB7IHN0cmljdDogZmFsc2UgfSxcbiAgICAgICAgLi4uc2luZ2xlVG9BcnJheSh0eXBpbmdJbmRpY2F0b3JNaWRkbGV3YXJlKSxcbiAgICAgICAgKCkgPT4gKCkgPT4gKCkgPT4gZmFsc2VcbiAgICAgICkoe30pXG4gICAgKTtcbiAgfSwgW3R5cGluZ0luZGljYXRvck1pZGRsZXdhcmUsIHR5cGluZ0luZGljYXRvclJlbmRlcmVyXSk7XG5cbiAgY29uc3Qgc2Nyb2xsVG9FbmRCdXR0b25SZW5kZXJlcjogU2Nyb2xsVG9FbmRCdXR0b25Db21wb25lbnRGYWN0b3J5ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgYXBwbHlNaWRkbGV3YXJlRm9yUmVuZGVyZXIoXG4gICAgICAgICdzY3JvbGwgdG8gZW5kIGJ1dHRvbicsXG4gICAgICAgIHsgc3RyaWN0OiB0cnVlIH0sXG4gICAgICAgIC4uLnNpbmdsZVRvQXJyYXkoc2Nyb2xsVG9FbmRCdXR0b25NaWRkbGV3YXJlKSxcbiAgICAgICAgKCkgPT4gKCkgPT4gKCkgPT4gZmFsc2VcbiAgICAgICkoKSBhcyBhbnksXG4gICAgW3Njcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZV1cbiAgKTtcblxuICAvKipcbiAgICogVGhpcyBpcyBhIGhlYXZ5IGZ1bmN0aW9uLCBhbmQgaXQgaXMgZXhwZWN0ZWQgdG8gYmUgb25seSBjYWxsZWQgd2hlbiB0aGVyZSBpcyBhIG5lZWQgdG8gcmVjcmVhdGUgYnVzaW5lc3MgbG9naWMsIGUuZy5cbiAgICogLSBVc2VyIElEIGNoYW5nZWQsIGNhdXNpbmcgYWxsIHNlbmQqIGZ1bmN0aW9ucyB0byBiZSB1cGRhdGVkXG4gICAqIC0gc2VuZFxuICAgKiBAdG9kbyBUT0RPOiBbUDNdIFdlIHNob3VsZCB0aGluayBhYm91dCBpZiB3ZSBhbGxvdyB0aGUgdXNlciB0byBjaGFuZ2Ugb25TZW5kQm94VmFsdWVDaGFuZ2VkL3NlbmRCb3hWYWx1ZSwgZS5nLlxuICAgKiAxLiBUdXJucyB0ZXh0IGludG8gVVBQRVJDQVNFXG4gICAqIDIuIEZpbHRlciBvdXQgcHJvZmFuaXR5XG4gICAqIEB0b2RvIFRPRE86IFtQNF0gUmV2aXNpdCBhbGwgbWVtYmVycyBvZiBjb250ZXh0XG4gICAqICAgICAgIFRoaXMgY29udGV4dCBzaG91bGQgY29uc2lzdCBvZiBtZW1iZXJzIHRoYXQgYXJlIG5vdCBpbiB0aGUgUmVkdXggc3RvcmVcbiAgICogICAgICAgaS5lLiBtZW1iZXJzIHRoYXQgYXJlIG5vdCBpbnRlcmVzdGVkIGluIG90aGVyIHR5cGVzIG9mIFVJc1xuICAgKi9cbiAgY29uc3QgY29udGV4dCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIC4uLmNhcmRBY3Rpb25Db250ZXh0LFxuICAgICAgLi4uZ3JvdXBBY3Rpdml0aWVzQ29udGV4dCxcbiAgICAgIC4uLmhvaXN0ZWREaXNwYXRjaGVycyxcbiAgICAgIGFjdGl2aXR5UmVuZGVyZXI6IHBhdGNoZWRBY3Rpdml0eVJlbmRlcmVyLFxuICAgICAgYWN0aXZpdHlTdGF0dXNSZW5kZXJlcjogcGF0Y2hlZEFjdGl2aXR5U3RhdHVzUmVuZGVyZXIsXG4gICAgICBhdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyUmVuZGVyZXI6IHBhdGNoZWRBdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyUmVuZGVyZXIsXG4gICAgICBhdHRhY2htZW50UmVuZGVyZXI6IHBhdGNoZWRBdHRhY2htZW50UmVuZGVyZXIsXG4gICAgICBhdmF0YXJSZW5kZXJlcjogcGF0Y2hlZEF2YXRhclJlbmRlcmVyLFxuICAgICAgZGlyOiBwYXRjaGVkRGlyLFxuICAgICAgZGlyZWN0TGluZSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZG93bnNjYWxlSW1hZ2VUb0RhdGFVUkwsXG4gICAgICBncmFtbWFyczogcGF0Y2hlZEdyYW1tYXJzLFxuICAgICAgaW50ZXJuYWxFcnJvckJveENsYXNzLFxuICAgICAgbGFuZ3VhZ2U6IGxvY2FsZSxcbiAgICAgIGxvY2FsaXplZEdsb2JhbGl6ZVN0YXRlOiBbbG9jYWxpemVkR2xvYmFsaXplXSxcbiAgICAgIGxvY2FsaXplZFN0cmluZ3M6IHBhdGNoZWRMb2NhbGl6ZWRTdHJpbmdzLFxuICAgICAgb25UZWxlbWV0cnksXG4gICAgICByZW5kZXJNYXJrZG93bixcbiAgICAgIHNjcm9sbFRvRW5kQnV0dG9uUmVuZGVyZXIsXG4gICAgICBzZWxlY3RWb2ljZTogcGF0Y2hlZFNlbGVjdFZvaWNlLFxuICAgICAgc2VuZFR5cGluZ0luZGljYXRvcixcbiAgICAgIHN0eWxlT3B0aW9uczogcGF0Y2hlZFN0eWxlT3B0aW9ucyxcbiAgICAgIHRlbGVtZXRyeURpbWVuc2lvbnNSZWYsXG4gICAgICB0b2FzdFJlbmRlcmVyOiBwYXRjaGVkVG9hc3RSZW5kZXJlcixcbiAgICAgIHRyYWNrRGltZW5zaW9uLFxuICAgICAgdHlwaW5nSW5kaWNhdG9yUmVuZGVyZXI6IHBhdGNoZWRUeXBpbmdJbmRpY2F0b3JSZW5kZXJlcixcbiAgICAgIHVzZXJJRCxcbiAgICAgIHVzZXJuYW1lXG4gICAgfSksXG4gICAgW1xuICAgICAgY2FyZEFjdGlvbkNvbnRleHQsXG4gICAgICBkaXJlY3RMaW5lLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBkb3duc2NhbGVJbWFnZVRvRGF0YVVSTCxcbiAgICAgIGdyb3VwQWN0aXZpdGllc0NvbnRleHQsXG4gICAgICBob2lzdGVkRGlzcGF0Y2hlcnMsXG4gICAgICBpbnRlcm5hbEVycm9yQm94Q2xhc3MsXG4gICAgICBsb2NhbGUsXG4gICAgICBsb2NhbGl6ZWRHbG9iYWxpemUsXG4gICAgICBvblRlbGVtZXRyeSxcbiAgICAgIHBhdGNoZWRBY3Rpdml0eVJlbmRlcmVyLFxuICAgICAgcGF0Y2hlZEFjdGl2aXR5U3RhdHVzUmVuZGVyZXIsXG4gICAgICBwYXRjaGVkQXR0YWNobWVudEZvclNjcmVlblJlYWRlclJlbmRlcmVyLFxuICAgICAgcGF0Y2hlZEF0dGFjaG1lbnRSZW5kZXJlcixcbiAgICAgIHBhdGNoZWRBdmF0YXJSZW5kZXJlcixcbiAgICAgIHBhdGNoZWREaXIsXG4gICAgICBwYXRjaGVkR3JhbW1hcnMsXG4gICAgICBwYXRjaGVkTG9jYWxpemVkU3RyaW5ncyxcbiAgICAgIHBhdGNoZWRTZWxlY3RWb2ljZSxcbiAgICAgIHBhdGNoZWRTdHlsZU9wdGlvbnMsXG4gICAgICBwYXRjaGVkVG9hc3RSZW5kZXJlcixcbiAgICAgIHBhdGNoZWRUeXBpbmdJbmRpY2F0b3JSZW5kZXJlcixcbiAgICAgIHJlbmRlck1hcmtkb3duLFxuICAgICAgc2Nyb2xsVG9FbmRCdXR0b25SZW5kZXJlcixcbiAgICAgIHNlbmRUeXBpbmdJbmRpY2F0b3IsXG4gICAgICB0ZWxlbWV0cnlEaW1lbnNpb25zUmVmLFxuICAgICAgdHJhY2tEaW1lbnNpb24sXG4gICAgICB1c2VySUQsXG4gICAgICB1c2VybmFtZVxuICAgIF1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxXZWJDaGF0QVBJQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dH0+XG4gICAgICA8QWN0aXZpdHlTZW5kU3RhdHVzQ29tcG9zZXI+XG4gICAgICAgIHt0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihjb250ZXh0KSA6IGNoaWxkcmVufVxuICAgICAgPC9BY3Rpdml0eVNlbmRTdGF0dXNDb21wb3Nlcj5cbiAgICAgIHtvblRlbGVtZXRyeSAmJiA8VHJhY2tlciAvPn1cbiAgICA8L1dlYkNoYXRBUElDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuLyoqXG4gKiBAdG9kbyBUT0RPOiBbUDNdIFdlIHNob3VsZCBjb25zaWRlciBtb3Zpbmcgc29tZSBkYXRhIGZyb20gUmVkdXggc3RvcmUgdG8gcHJvcHNcbiAqICAgICAgIEFsdGhvdWdoIHdlIHVzZSBgY29ubmVjdFRvV2ViQ2hhdGAgdG8gaGlkZSB0aGUgZGV0YWlscyBvZiBhY2Nlc3NvciBvZiBSZWR1eCBzdG9yZSxcbiAqICAgICAgIHdlIHNob3VsZCBjbGVhbiB1cCB0aGUgcmVzcG9uc2liaWxpdHkgYmV0d2VlbiBDb250ZXh0IGFuZCBSZWR1eCBzdG9yZVxuICogICAgICAgV2Ugc2hvdWxkIGRlY2lkZSB3aGljaCBkYXRhIGlzIG5lZWRlZCBmb3IgUmVhY3QgYnV0IG5vdCBpbiBvdGhlciBlbnZpcm9ubWVudCBzdWNoIGFzIENMSS9WU0NvZGVcbiAqL1xuQ29tcG9zZXJDb3JlLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWN0aXZpdHlNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gIGFjdGl2aXR5UmVuZGVyZXI6IHVuZGVmaW5lZCxcbiAgYWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gIGFjdGl2aXR5U3RhdHVzUmVuZGVyZXI6IHVuZGVmaW5lZCxcbiAgYXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgYXR0YWNobWVudE1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgYXR0YWNobWVudFJlbmRlcmVyOiB1bmRlZmluZWQsXG4gIGF2YXRhck1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgYXZhdGFyUmVuZGVyZXI6IHVuZGVmaW5lZCxcbiAgY2FyZEFjdGlvbk1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgZGlyOiAnYXV0bycsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgZG93bnNjYWxlSW1hZ2VUb0RhdGFVUkw6IHVuZGVmaW5lZCxcbiAgZ3JhbW1hcnM6IFtdLFxuICBncm91cEFjdGl2aXRpZXNNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gIGdyb3VwVGltZXN0YW1wOiB1bmRlZmluZWQsXG4gIGludGVybmFsRXJyb3JCb3hDbGFzczogdW5kZWZpbmVkLFxuICBsb2NhbGU6IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgJ2VuLVVTJyxcbiAgb25UZWxlbWV0cnk6IHVuZGVmaW5lZCxcbiAgb3ZlcnJpZGVMb2NhbGl6ZWRTdHJpbmdzOiB1bmRlZmluZWQsXG4gIHJlbmRlck1hcmtkb3duOiB1bmRlZmluZWQsXG4gIHNjcm9sbFRvRW5kQnV0dG9uTWlkZGxld2FyZTogdW5kZWZpbmVkLFxuICBzZWxlY3RWb2ljZTogdW5kZWZpbmVkLFxuICBzZW5kVGltZW91dDogdW5kZWZpbmVkLFxuICBzZW5kVHlwaW5nSW5kaWNhdG9yOiBmYWxzZSxcbiAgc3R5bGVPcHRpb25zOiB7fSxcbiAgdG9hc3RNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gIHRvYXN0UmVuZGVyZXI6IHVuZGVmaW5lZCxcbiAgdHlwaW5nSW5kaWNhdG9yTWlkZGxld2FyZTogdW5kZWZpbmVkLFxuICB0eXBpbmdJbmRpY2F0b3JSZW5kZXJlcjogdW5kZWZpbmVkLFxuICB1c2VySUQ6ICcnLFxuICB1c2VybmFtZTogJydcbn07XG5cbkNvbXBvc2VyQ29yZS5wcm9wVHlwZXMgPSB7XG4gIGFjdGl2aXR5TWlkZGxld2FyZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmZ1bmMpLCBQcm9wVHlwZXMuZnVuY10pLFxuICBhY3Rpdml0eVJlbmRlcmVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgYWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuZnVuYyksIFByb3BUeXBlcy5mdW5jXSksXG4gIGFjdGl2aXR5U3RhdHVzUmVuZGVyZXI6IFByb3BUeXBlcy5mdW5jLFxuICBhdHRhY2htZW50Rm9yU2NyZWVuUmVhZGVyTWlkZGxld2FyZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmZ1bmMpLCBQcm9wVHlwZXMuZnVuY10pLFxuICBhdHRhY2htZW50TWlkZGxld2FyZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmZ1bmMpLCBQcm9wVHlwZXMuZnVuY10pLFxuICBhdHRhY2htZW50UmVuZGVyZXI6IFByb3BUeXBlcy5mdW5jLFxuICBhdmF0YXJNaWRkbGV3YXJlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuZnVuYyksIFByb3BUeXBlcy5mdW5jXSksXG4gIGF2YXRhclJlbmRlcmVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgY2FyZEFjdGlvbk1pZGRsZXdhcmU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5mdW5jKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGRpcjogUHJvcFR5cGVzLm9uZU9mKFsnYXV0bycsICdsdHInLCAncnRsJ10pLFxuICAvLyBQcm9wVHlwZXMuc2hhcGUoeyAuLi4gfSkgZGlkIG5vdCBob25vciBpc1JlcXVpcmVkIGZvciBpdHMgbWVtYmVycy5cbiAgLy8gQHRzLWlnbm9yZVxuICBkaXJlY3RMaW5lOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGFjdGl2aXR5JDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHN1YnNjcmliZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICAgIH0pLmlzUmVxdWlyZWQsXG4gICAgY29ubmVjdGlvblN0YXR1cyQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBzdWJzY3JpYmU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgICB9KS5pc1JlcXVpcmVkLFxuICAgIGVuZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZ2V0U2Vzc2lvbklkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBwb3N0QWN0aXZpdHk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcmVmZXJlbmNlR3JhbW1hcklEOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHRva2VuOiBQcm9wVHlwZXMuc3RyaW5nXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZG93bnNjYWxlSW1hZ2VUb0RhdGFVUkw6IFByb3BUeXBlcy5mdW5jLFxuICBncmFtbWFyczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gIGdyb3VwQWN0aXZpdGllc01pZGRsZXdhcmU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5mdW5jKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgZ3JvdXBUaW1lc3RhbXA6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ib29sLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIGludGVybmFsRXJyb3JCb3hDbGFzczogUHJvcFR5cGVzLmZ1bmMsIC8vIFRoaXMgaXMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBXZSBkb24ndCBhbGxvdyBjdXN0b21pemF0aW9uIG9mIGVycm9yIGJveC5cbiAgbG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvblRlbGVtZXRyeTogUHJvcFR5cGVzLmZ1bmMsXG4gIG92ZXJyaWRlTG9jYWxpemVkU3RyaW5nczogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFueSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgcmVuZGVyTWFya2Rvd246IFByb3BUeXBlcy5mdW5jLFxuICBzY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5mdW5jKSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgc2VsZWN0Vm9pY2U6IFByb3BUeXBlcy5mdW5jLFxuICBzZW5kVGltZW91dDogUHJvcFR5cGVzLm51bWJlcixcbiAgc2VuZFR5cGluZ0luZGljYXRvcjogUHJvcFR5cGVzLmJvb2wsXG4gIHN0eWxlT3B0aW9uczogUHJvcFR5cGVzLmFueSxcbiAgdG9hc3RNaWRkbGV3YXJlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuZnVuYyksIFByb3BUeXBlcy5mdW5jXSksXG4gIHRvYXN0UmVuZGVyZXI6IFByb3BUeXBlcy5mdW5jLFxuICB0eXBpbmdJbmRpY2F0b3JNaWRkbGV3YXJlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuZnVuYyksIFByb3BUeXBlcy5mdW5jXSksXG4gIHR5cGluZ0luZGljYXRvclJlbmRlcmVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgdXNlcklEOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB1c2VybmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcblxudHlwZSBDb21wb3NlclByb3BzID0gQ29tcG9zZXJDb3JlUHJvcHMgJiB7XG4gIGludGVybmFsUmVuZGVyRXJyb3JCb3g/OiBhbnk7XG4gIHN0b3JlPzogYW55O1xufTtcblxuLy8gV2Ugd2lsbCBjcmVhdGUgYSBSZWR1eCBzdG9yZSBpZiBpdCB3YXMgbm90IHBhc3NlZCBpblxuY29uc3QgQ29tcG9zZXI6IEZDPENvbXBvc2VyUHJvcHM+ID0gKHsgaW50ZXJuYWxSZW5kZXJFcnJvckJveCwgb25UZWxlbWV0cnksIHN0b3JlLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUoKTtcblxuICBjb25zdCBoYW5kbGVFcnJvciA9IHVzZUNhbGxiYWNrKFxuICAgIGVycm9yID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBVbmNhdWdodCBleGNlcHRpb24nLCB7IGVycm9yIH0pO1xuXG4gICAgICBvblRlbGVtZXRyeSAmJlxuICAgICAgICBvblRlbGVtZXRyeShjcmVhdGVDdXN0b21FdmVudCgnZXhjZXB0aW9uJywgeyBlcnJvciwgZmF0YWw6IHRydWUgfSkgYXMgVGVsZW1ldHJ5RXhjZXB0aW9uTWVhc3VyZW1lbnRFdmVudCk7XG4gICAgICBzZXRFcnJvcihlcnJvcik7XG4gICAgfSxcbiAgICBbb25UZWxlbWV0cnksIHNldEVycm9yXVxuICApO1xuXG4gIGNvbnN0IG1lbW9pemVkU3RvcmUgPSB1c2VNZW1vKCgpID0+IHN0b3JlIHx8IGNyZWF0ZVN0b3JlKCksIFtzdG9yZV0pO1xuXG4gIHJldHVybiBlcnJvciA/IChcbiAgICAhIWludGVybmFsUmVuZGVyRXJyb3JCb3ggJiYgaW50ZXJuYWxSZW5kZXJFcnJvckJveCh7IGVycm9yLCB0eXBlOiAndW5jYXVnaHQgZXhjZXB0aW9uJyB9KVxuICApIDogKFxuICAgIDxFcnJvckJvdW5kYXJ5IG9uRXJyb3I9e2hhbmRsZUVycm9yfT5cbiAgICAgIDxQcm92aWRlciBjb250ZXh0PXtXZWJDaGF0UmVkdXhDb250ZXh0fSBzdG9yZT17bWVtb2l6ZWRTdG9yZX0+XG4gICAgICAgIDxBY3Rpdml0eUtleWVyQ29tcG9zZXI+XG4gICAgICAgICAgPEFjdGl2aXR5QWNrbm93bGVkZ2VtZW50Q29tcG9zZXI+XG4gICAgICAgICAgICA8Q29tcG9zZXJDb3JlIG9uVGVsZW1ldHJ5PXtvblRlbGVtZXRyeX0gey4uLnByb3BzfSAvPlxuICAgICAgICAgIDwvQWN0aXZpdHlBY2tub3dsZWRnZW1lbnRDb21wb3Nlcj5cbiAgICAgICAgPC9BY3Rpdml0eUtleWVyQ29tcG9zZXI+XG4gICAgICA8L1Byb3ZpZGVyPlxuICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgKTtcbn07XG5cbkNvbXBvc2VyLmRlZmF1bHRQcm9wcyA9IHtcbiAgaW50ZXJuYWxSZW5kZXJFcnJvckJveDogdW5kZWZpbmVkLFxuICBvblRlbGVtZXRyeTogdW5kZWZpbmVkLFxuICBzdG9yZTogdW5kZWZpbmVkXG59O1xuXG5Db21wb3Nlci5wcm9wVHlwZXMgPSB7XG4gIGludGVybmFsUmVuZGVyRXJyb3JCb3g6IFByb3BUeXBlcy5hbnksXG4gIG9uVGVsZW1ldHJ5OiBQcm9wVHlwZXMuZnVuYyxcbiAgc3RvcmU6IFByb3BUeXBlcy5hbnlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvc2VyO1xuXG5leHBvcnQgdHlwZSB7IENvbXBvc2VyUHJvcHMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQTZCQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFNQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFPQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBLElBQU1BLFdBQVcsR0FBRztFQUNsQkMscUJBQXFCLEVBQXJCQSw4Q0FEa0I7RUFFbEJDLG1CQUFtQixFQUFuQkEsNENBRmtCO0VBR2xCQyxtQkFBbUIsRUFBbkJBLDRDQUhrQjtFQUlsQkMsWUFBWSxFQUFaQSxxQ0FKa0I7RUFLbEJDLFlBQVksRUFBWkEscUNBTGtCO0VBTWxCQyxTQUFTLEVBQVRBLGtDQU5rQjtFQU9sQkMsU0FBUyxFQUFUQSxrQ0FQa0I7RUFRbEJDLFdBQVcsRUFBWEEsb0NBUmtCO0VBU2xCQyxlQUFlLEVBQWZBLHdDQVRrQjtFQVVsQkMsWUFBWSxFQUFaQSxxQ0FWa0I7RUFXbEJDLGtCQUFrQixFQUFsQkEsMkNBWGtCO0VBWWxCQyxlQUFlLEVBQWZBLHdDQVprQjtFQWFsQkMsZUFBZSxFQUFmQSx3Q0Fia0I7RUFjbEJDLFVBQVUsRUFBVkEsbUNBZGtCO0VBZWxCQyxjQUFjLEVBQWRBLHVDQWZrQjtFQWdCbEJDLFlBQVksRUFBWkEscUNBaEJrQjtFQWlCbEJD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
|
|
@@ -35,16 +35,16 @@ declare type WebChatAPIContext = {
|
|
|
35
35
|
localizedStrings?: {
|
|
36
36
|
[language: string]: LocalizedStrings;
|
|
37
37
|
};
|
|
38
|
-
markActivity?: (
|
|
39
|
-
id:
|
|
38
|
+
markActivity?: (activity: {
|
|
39
|
+
id: string;
|
|
40
40
|
}, name: string, value?: any) => void;
|
|
41
41
|
onCardAction?: PerformCardAction;
|
|
42
42
|
onTelemetry?: (event: TelemetryMeasurementEvent) => void;
|
|
43
43
|
postActivity?: (activity: WebChatActivity) => Observable<string>;
|
|
44
|
-
renderMarkdown?: (markdown: string,
|
|
45
|
-
markdownRespectCRLF:
|
|
46
|
-
},
|
|
47
|
-
externalLinkAlt:
|
|
44
|
+
renderMarkdown?: (markdown: string, newLineOptions: {
|
|
45
|
+
markdownRespectCRLF: boolean;
|
|
46
|
+
}, linkOptions: {
|
|
47
|
+
externalLinkAlt: string;
|
|
48
48
|
}) => string;
|
|
49
49
|
scrollToEndButtonRenderer?: ScrollToEndButtonComponentFactory;
|
|
50
50
|
selectVoice?: (voices: typeof window.SpeechSynthesisVoice[], activity: WebChatActivity) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebChatAPIContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/WebChatAPIContext.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,yCAAyC,EAAE,MAAM,iDAAiD,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AACpE,OAAO,yBAAyB,MAAM,uCAAuC,CAAC;AAE9E,aAAK,iBAAiB,GAAG;IACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,sBAAsB,EAAE,oBAAoB,CAAC;IAC7C,iCAAiC,CAAC,EAAE,yCAAyC,CAAC;IAC9E,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IACtC,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACrH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qBAAqB,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjD,gBAAgB,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WebChatAPIContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/WebChatAPIContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,4 +11,4 @@ var context = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
|
11
11
|
context.displayName = 'WebChatAPIContext';
|
|
12
12
|
var _default = context;
|
|
13
13
|
exports.default = _default;
|
|
14
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsInVuZGVmaW5lZCIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvaW50ZXJuYWwvV2ViQ2hhdEFQSUNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlyZWN0TGluZUpTQm90Q29ubmVjdGlvbiwgV2ViQ2hhdEFjdGl2aXR5IH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5cbmltcG9ydCB7IEF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdHlwZXMvQXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gJy4uLy4uL3R5cGVzL0F2YXRhck1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgR3JvdXBBY3Rpdml0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvR3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSc7XG5pbXBvcnQgeyBMZWdhY3lBY3Rpdml0eVJlbmRlcmVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvQWN0aXZpdHlNaWRkbGV3YXJlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBQZXJmb3JtQ2FyZEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL0NhcmRBY3Rpb25NaWRkbGV3YXJlJztcbmltcG9ydCB7IFJlbmRlckFjdGl2aXR5U3RhdHVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvQWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlJztcbmltcG9ydCB7IFJlbmRlckF0dGFjaG1lbnQgfSBmcm9tICcuLi8uLi90eXBlcy9BdHRhY2htZW50TWlkZGxld2FyZSc7XG5pbXBvcnQgeyBSZW5kZXJUb2FzdCB9IGZyb20gJy4uLy4uL3R5cGVzL1RvYXN0TWlkZGxld2FyZSc7XG5pbXBvcnQgeyBTY3JvbGxUb0VuZEJ1dHRvbkNvbXBvbmVudEZhY3RvcnkgfSBmcm9tICcuLi8uLi90eXBlcy9TY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgU3RyaWN0U3R5bGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vU3R5bGVPcHRpb25zJztcbmltcG9ydCBMb2NhbGl6ZWRTdHJpbmdzIGZyb20gJy4uLy4uL3R5cGVzL0xvY2FsaXplZFN0cmluZ3MnO1xuaW1wb3J0IFByZWNvbXBpbGVkR2xvYmFsaXplIGZyb20gJy4uLy4uL3R5cGVzL1ByZWNvbXBpbGVkR2xvYmFsaXplJztcbmltcG9ydCBUZWxlbWV0cnlNZWFzdXJlbWVudEV2ZW50IGZyb20gJy4uLy4uL3R5cGVzL1RlbGVtZXRyeU1lYXN1cmVtZW50RXZlbnQnO1xuXG50eXBlIFdlYkNoYXRBUElDb250ZXh0ID0ge1xuICBhY3Rpdml0eVJlbmRlcmVyPzogTGVnYWN5QWN0aXZpdHlSZW5kZXJlcjtcbiAgYWN0aXZpdHlTdGF0dXNSZW5kZXJlcjogUmVuZGVyQWN0aXZpdHlTdGF0dXM7XG4gIGF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJSZW5kZXJlcj86IEF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJDb21wb25lbnRGYWN0b3J5O1xuICBhdHRhY2htZW50UmVuZGVyZXI/OiBSZW5kZXJBdHRhY2htZW50O1xuICBhdmF0YXJSZW5kZXJlcj86IEF2YXRhckNvbXBvbmVudEZhY3Rvcnk7XG4gIGNsZWFyU3VnZ2VzdGVkQWN0aW9ucz86ICgpID0+IHZvaWQ7XG4gIGRpcj86IHN0cmluZztcbiAgZGlyZWN0TGluZT86IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb247XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzbWlzc05vdGlmaWNhdGlvbj86IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBkb3duc2NhbGVJbWFnZVRvRGF0YVVSTD86IChibG9iOiBCbG9iLCBtYXhXaWR0aDogbnVtYmVyLCBtYXhIZWlnaHQ6IG51bWJlciwgdHlwZTogc3RyaW5nLCBxdWFsaXR5OiBudW1iZXIpID0+IHN0cmluZztcbiAgZW1pdFR5cGluZ0luZGljYXRvcj86ICgpID0+IHZvaWQ7XG4gIGdyYW1tYXJzPzogYW55O1xuICBncm91cEFjdGl2aXRpZXM/OiBHcm91cEFjdGl2aXRpZXM7XG4gIGludGVybmFsRXJyb3JCb3hDbGFzcz86IFJlYWN0LkNvbXBvbmVudCB8IEZ1bmN0aW9uO1xuICBsYW5ndWFnZT86IHN0cmluZztcbiAgbG9jYWxpemVkR2xvYmFsaXplU3RhdGU/
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsInVuZGVmaW5lZCIsImRpc3BsYXlOYW1lIl0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvaW50ZXJuYWwvV2ViQ2hhdEFQSUNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlyZWN0TGluZUpTQm90Q29ubmVjdGlvbiwgV2ViQ2hhdEFjdGl2aXR5IH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5cbmltcG9ydCB7IEF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJDb21wb25lbnRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdHlwZXMvQXR0YWNobWVudEZvclNjcmVlblJlYWRlck1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gJy4uLy4uL3R5cGVzL0F2YXRhck1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgR3JvdXBBY3Rpdml0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvR3JvdXBBY3Rpdml0aWVzTWlkZGxld2FyZSc7XG5pbXBvcnQgeyBMZWdhY3lBY3Rpdml0eVJlbmRlcmVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvQWN0aXZpdHlNaWRkbGV3YXJlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBQZXJmb3JtQ2FyZEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL0NhcmRBY3Rpb25NaWRkbGV3YXJlJztcbmltcG9ydCB7IFJlbmRlckFjdGl2aXR5U3RhdHVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvQWN0aXZpdHlTdGF0dXNNaWRkbGV3YXJlJztcbmltcG9ydCB7IFJlbmRlckF0dGFjaG1lbnQgfSBmcm9tICcuLi8uLi90eXBlcy9BdHRhY2htZW50TWlkZGxld2FyZSc7XG5pbXBvcnQgeyBSZW5kZXJUb2FzdCB9IGZyb20gJy4uLy4uL3R5cGVzL1RvYXN0TWlkZGxld2FyZSc7XG5pbXBvcnQgeyBTY3JvbGxUb0VuZEJ1dHRvbkNvbXBvbmVudEZhY3RvcnkgfSBmcm9tICcuLi8uLi90eXBlcy9TY3JvbGxUb0VuZEJ1dHRvbk1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgU3RyaWN0U3R5bGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vU3R5bGVPcHRpb25zJztcbmltcG9ydCBMb2NhbGl6ZWRTdHJpbmdzIGZyb20gJy4uLy4uL3R5cGVzL0xvY2FsaXplZFN0cmluZ3MnO1xuaW1wb3J0IFByZWNvbXBpbGVkR2xvYmFsaXplIGZyb20gJy4uLy4uL3R5cGVzL1ByZWNvbXBpbGVkR2xvYmFsaXplJztcbmltcG9ydCBUZWxlbWV0cnlNZWFzdXJlbWVudEV2ZW50IGZyb20gJy4uLy4uL3R5cGVzL1RlbGVtZXRyeU1lYXN1cmVtZW50RXZlbnQnO1xuXG50eXBlIFdlYkNoYXRBUElDb250ZXh0ID0ge1xuICBhY3Rpdml0eVJlbmRlcmVyPzogTGVnYWN5QWN0aXZpdHlSZW5kZXJlcjtcbiAgYWN0aXZpdHlTdGF0dXNSZW5kZXJlcjogUmVuZGVyQWN0aXZpdHlTdGF0dXM7XG4gIGF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJSZW5kZXJlcj86IEF0dGFjaG1lbnRGb3JTY3JlZW5SZWFkZXJDb21wb25lbnRGYWN0b3J5O1xuICBhdHRhY2htZW50UmVuZGVyZXI/OiBSZW5kZXJBdHRhY2htZW50O1xuICBhdmF0YXJSZW5kZXJlcj86IEF2YXRhckNvbXBvbmVudEZhY3Rvcnk7XG4gIGNsZWFyU3VnZ2VzdGVkQWN0aW9ucz86ICgpID0+IHZvaWQ7XG4gIGRpcj86IHN0cmluZztcbiAgZGlyZWN0TGluZT86IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb247XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzbWlzc05vdGlmaWNhdGlvbj86IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBkb3duc2NhbGVJbWFnZVRvRGF0YVVSTD86IChibG9iOiBCbG9iLCBtYXhXaWR0aDogbnVtYmVyLCBtYXhIZWlnaHQ6IG51bWJlciwgdHlwZTogc3RyaW5nLCBxdWFsaXR5OiBudW1iZXIpID0+IHN0cmluZztcbiAgZW1pdFR5cGluZ0luZGljYXRvcj86ICgpID0+IHZvaWQ7XG4gIGdyYW1tYXJzPzogYW55O1xuICBncm91cEFjdGl2aXRpZXM/OiBHcm91cEFjdGl2aXRpZXM7XG4gIGludGVybmFsRXJyb3JCb3hDbGFzcz86IFJlYWN0LkNvbXBvbmVudCB8IEZ1bmN0aW9uO1xuICBsYW5ndWFnZT86IHN0cmluZztcbiAgbG9jYWxpemVkR2xvYmFsaXplU3RhdGU/OiBQcmVjb21waWxlZEdsb2JhbGl6ZVtdO1xuICBsb2NhbGl6ZWRTdHJpbmdzPzogeyBbbGFuZ3VhZ2U6IHN0cmluZ106IExvY2FsaXplZFN0cmluZ3MgfTtcbiAgbWFya0FjdGl2aXR5PzogKGFjdGl2aXR5OiB7IGlkOiBzdHJpbmcgfSwgbmFtZTogc3RyaW5nLCB2YWx1ZT86IGFueSkgPT4gdm9pZDtcbiAgb25DYXJkQWN0aW9uPzogUGVyZm9ybUNhcmRBY3Rpb247XG4gIG9uVGVsZW1ldHJ5PzogKGV2ZW50OiBUZWxlbWV0cnlNZWFzdXJlbWVudEV2ZW50KSA9PiB2b2lkO1xuICBwb3N0QWN0aXZpdHk/OiAoYWN0aXZpdHk6IFdlYkNoYXRBY3Rpdml0eSkgPT4gT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICByZW5kZXJNYXJrZG93bj86IChcbiAgICBtYXJrZG93bjogc3RyaW5nLFxuICAgIG5ld0xpbmVPcHRpb25zOiB7IG1hcmtkb3duUmVzcGVjdENSTEY6IGJvb2xlYW4gfSxcbiAgICBsaW5rT3B0aW9uczogeyBleHRlcm5hbExpbmtBbHQ6IHN0cmluZyB9XG4gICkgPT4gc3RyaW5nO1xuICBzY3JvbGxUb0VuZEJ1dHRvblJlbmRlcmVyPzogU2Nyb2xsVG9FbmRCdXR0b25Db21wb25lbnRGYWN0b3J5O1xuICBzZWxlY3RWb2ljZT86ICh2b2ljZXM6IHR5cGVvZiB3aW5kb3cuU3BlZWNoU3ludGhlc2lzVm9pY2VbXSwgYWN0aXZpdHk6IFdlYkNoYXRBY3Rpdml0eSkgPT4gdm9pZDtcbiAgc2VuZEV2ZW50PzogKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgc2VuZEZpbGVzPzogKGZpbGVzOiBGaWxlW10pID0+IHZvaWQ7XG4gIHNlbmRNZXNzYWdlPzogKHRleHQ6IHN0cmluZywgbWV0aG9kPzogc3RyaW5nLCB7IGNoYW5uZWxEYXRhIH0/OiB7IGNoYW5uZWxEYXRhPzogYW55IH0pID0+IHZvaWQ7XG4gIHNlbmRNZXNzYWdlQmFjaz86ICh2YWx1ZTogYW55LCB0ZXh0Pzogc3RyaW5nLCBkaXNwbGF5VGV4dD86IHN0cmluZykgPT4gdm9pZDtcbiAgc2VuZFBvc3RCYWNrPzogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICBzZW5kVHlwaW5nSW5kaWNhdG9yPzogYm9vbGVhbjtcbiAgc2V0RGljdGF0ZUludGVyaW1zPzogKGludGVyaW1zOiBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgc2V0RGljdGF0ZVN0YXRlPzogKGRpY3RhdGVTdGF0ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBzZXROb3RpZmljYXRpb24/OiAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHZvaWQ7XG4gIHNldFNlbmRCb3g/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgc2V0U2VuZFRpbWVvdXQ/OiAodGltZW91dDogbnVtYmVyKSA9PiB2b2lkO1xuICBzdGFydERpY3RhdGU/OiAoKSA9PiB2b2lkO1xuICBzdGFydFNwZWFraW5nQWN0aXZpdHk/OiAoKSA9PiB2b2lkO1xuICBzdG9wRGljdGF0ZT86ICgpID0+IHZvaWQ7XG4gIHN0b3BTcGVha2luZ0FjdGl2aXR5PzogKCkgPT4gdm9pZDtcbiAgc3R5bGVPcHRpb25zPzogU3RyaWN0U3R5bGVPcHRpb25zO1xuICBzdWJtaXRTZW5kQm94PzogKG1ldGhvZD86IHN0cmluZywgeyBjaGFubmVsRGF0YSB9PzogeyBjaGFubmVsRGF0YTogYW55IH0pID0+IHZvaWQ7XG4gIHRlbGVtZXRyeURpbWVuc2lvbnNSZWY/OiBSZWFjdC5SZWY8YW55PjtcbiAgdG9hc3RSZW5kZXJlcj86IFJlbmRlclRvYXN0O1xuICB0cmFja0RpbWVuc2lvbj86IChuYW1lOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4gdm9pZDtcbiAgdHlwaW5nSW5kaWNhdG9yUmVuZGVyZXI/OiBhbnk7IC8vIFRPRE9cbiAgdXNlcklEPzogc3RyaW5nO1xuICB1c2VybmFtZT86IHN0cmluZztcbn07XG5cbmNvbnN0IGNvbnRleHQgPSBjcmVhdGVDb250ZXh0PFdlYkNoYXRBUElDb250ZXh0Pih1bmRlZmluZWQpO1xuXG5jb250ZXh0LmRpc3BsYXlOYW1lID0gJ1dlYkNoYXRBUElDb250ZXh0JztcblxuZXhwb3J0IGRlZmF1bHQgY29udGV4dDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQXlFQSxJQUFNQSxPQUFPLGdCQUFHLElBQUFDLG9CQUFBLEVBQWlDQyxTQUFqQyxDQUFoQjtBQUVBRixPQUFPLENBQUNHLFdBQVIsR0FBc0IsbUJBQXRCO2VBRWVILE8ifQ==
|
|
@@ -3,8 +3,8 @@ import type { RenderAttachment } from './AttachmentMiddleware';
|
|
|
3
3
|
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
4
4
|
declare type ActivityProps = {
|
|
5
5
|
hideTimestamp: boolean;
|
|
6
|
-
renderActivityStatus: (
|
|
7
|
-
hideTimestamp:
|
|
6
|
+
renderActivityStatus: (options: {
|
|
7
|
+
hideTimestamp: boolean;
|
|
8
8
|
}) => ReactNode;
|
|
9
9
|
renderAvatar: false | (() => Exclude<ReactNode, boolean | null | undefined>);
|
|
10
10
|
showCallout: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityMiddleware.d.ts","sourceRoot":"","sources":["../../src/types/ActivityMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,aAAK,aAAa,GAAG;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"ActivityMiddleware.d.ts","sourceRoot":"","sources":["../../src/types/ActivityMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,aAAK,aAAa,GAAG;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,CAAC,OAAO,EAAE;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE,KAAK,SAAS,CAAC;IACzE,YAAY,EAAE,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;IAC7E,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,aAAK,iBAAiB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAElG,aAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,eAAe,CAAC;IAC1B,mBAAmB,EAAE,eAAe,CAAC;CACtC,CAAC;AAEF,aAAK,wBAAwB,GAAG,CAAC,OAAO,EAAE,+BAA+B,KAAK,iBAAiB,GAAG,KAAK,CAAC;AAIxG,aAAK,oBAAoB,GAAG,CAC1B,gBAAgB,EAAE,gBAAgB,EAClC,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,aAAa,KAC9E,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAEjC,aAAK,sBAAsB,GAAG,CAAC,OAAO,EAAE,+BAA+B,KAAK,oBAAoB,GAAG,KAAK,CAAC;AAGzG,aAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,sBAAsB,KAAK,sBAAsB,CAAC;AACjF,aAAK,kBAAkB,GAAG,MAAM,gBAAgB,CAAC;AAEjD,eAAe,kBAAkB,CAAC;AAElC,YAAY,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQWN0aXZpdHlNaWRkbGV3YXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBSZW5kZXJBdHRhY2htZW50IH0gZnJvbSAnLi9BdHRhY2htZW50TWlkZGxld2FyZSc7XG5pbXBvcnQgdHlwZSB7IFdlYkNoYXRBY3Rpdml0eSB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuXG50eXBlIEFjdGl2aXR5UHJvcHMgPSB7XG4gIGhpZGVUaW1lc3RhbXA6IGJvb2xlYW47XG4gIHJlbmRlckFjdGl2aXR5U3RhdHVzOiAob3B0aW9uczogeyBoaWRlVGltZXN0YW1wOiBib29sZWFuIH0pID0+IFJlYWN0Tm9kZTtcbiAgcmVuZGVyQXZhdGFyOiBmYWxzZSB8ICgoKSA9PiBFeGNsdWRlPFJlYWN0Tm9kZSwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ+KTtcbiAgc2hvd0NhbGxvdXQ6IGJvb2xlYW47XG59O1xuXG50eXBlIEFjdGl2aXR5Q29tcG9uZW50ID0gKHByb3BzOiBBY3Rpdml0eVByb3BzKSA9PiBFeGNsdWRlPFJlYWN0Tm9kZSwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ+O1xuXG50eXBlIEFjdGl2aXR5Q29tcG9uZW50RmFjdG9yeU9wdGlvbnMgPSB7XG4gIGFjdGl2aXR5OiBXZWJDaGF0QWN0aXZpdHk7XG4gIG5leHRWaXNpYmxlQWN0aXZpdHk6IFdlYkNoYXRBY3Rpdml0eTtcbn07XG5cbnR5cGUgQWN0aXZpdHlDb21wb25lbnRGYWN0b3J5ID0gKG9wdGlvbnM6IEFjdGl2aXR5Q29tcG9uZW50RmFjdG9yeU9wdGlvbnMpID0+IEFjdGl2aXR5Q29tcG9uZW50IHwgZmFsc2U7XG5cbi8vIFRPRE86IFtQMl0gVGhpcyBpcyBpbmhlcml0ZWQgZnJvbSBvdXIgb2xkZXIgc2lnbmF0dXJlIChwcmUtaG9vaykgd2hpY2ggcmVxdWlyZXMgcGFzc2luZyBcInJlbmRlckF0dGFjaG1lbnRcIiBhcmd1bWVudC5cbi8vICAgICAgIFdpdGggaG9va3MsIHRoZSBtaWRkbGV3YXJlIHNob3VsZCBub3QgbmVlZCBcInJlbmRlckF0dGFjaG1lbnRcIiwgdGhleSBjYW4gZ3JhYiBpdCBmcm9tIFwidXNlQ3JlYXRlQXR0YWNobWVudFJlbmRlcmVyXCIgaG9vay5cbnR5cGUgTGVnYWN5UmVuZGVyQWN0aXZpdHkgPSAoXG4gIHJlbmRlckF0dGFjaG1lbnQ6IFJlbmRlckF0dGFjaG1lbnQsXG4gIHsgaGlkZVRpbWVzdGFtcCwgcmVuZGVyQWN0aXZpdHlTdGF0dXMsIHJlbmRlckF2YXRhciwgc2hvd0NhbGxvdXQgfTogQWN0aXZpdHlQcm9wc1xuKSA9PiBFeGNsdWRlPFJlYWN0Tm9kZSwgYm9vbGVhbj47XG5cbnR5cGUgTGVnYWN5QWN0aXZpdHlSZW5kZXJlciA9IChvcHRpb25zOiBBY3Rpdml0eUNvbXBvbmVudEZhY3RvcnlPcHRpb25zKSA9PiBMZWdhY3lSZW5kZXJBY3Rpdml0eSB8IGZhbHNlO1xuXG4vLyBUaGUgbWlkZGxld2FyZSBjcmVhdGVkIGJ5IHRoZSB3ZWIgZGV2ZWxvcGVyLCBhcmUgdXNpbmcgdGhlIGxlZ2FjeSBzaWduYXR1cmUgKHdpdGggXCJyZW5kZXJBdHRhY2htZW50XCIgYXJndW1lbnQpLlxudHlwZSBBY3Rpdml0eUVuaGFuY2VyID0gKG5leHQ6IExlZ2FjeUFjdGl2aXR5UmVuZGVyZXIpID0+IExlZ2FjeUFjdGl2aXR5UmVuZGVyZXI7XG50eXBlIEFjdGl2aXR5TWlkZGxld2FyZSA9ICgpID0+IEFjdGl2aXR5RW5oYW5jZXI7XG5cbmV4cG9ydCBkZWZhdWx0IEFjdGl2aXR5TWlkZGxld2FyZTtcblxuZXhwb3J0IHR5cGUgeyBBY3Rpdml0eUNvbXBvbmVudEZhY3RvcnksIExlZ2FjeUFjdGl2aXR5UmVuZGVyZXIgfTtcbiJdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DirectLineCardAction } from 'botframework-webchat-core';
|
|
2
2
|
import FunctionMiddleware from './FunctionMiddleware';
|
|
3
|
-
declare type PerformCardAction = (cardAction: DirectLineCardAction,
|
|
4
|
-
target:
|
|
3
|
+
declare type PerformCardAction = (cardAction: DirectLineCardAction, event?: {
|
|
4
|
+
target: EventTarget;
|
|
5
5
|
}) => void;
|
|
6
6
|
declare type CardActionMiddleware = FunctionMiddleware<[
|
|
7
7
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardActionMiddleware.d.ts","sourceRoot":"","sources":["../../src/types/CardActionMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,aAAK,iBAAiB,GAAG,CAAC,UAAU,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"CardActionMiddleware.d.ts","sourceRoot":"","sources":["../../src/types/CardActionMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,aAAK,iBAAiB,GAAG,CAAC,UAAU,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAAK,IAAI,CAAC;AAErG,aAAK,oBAAoB,GAAG,kBAAkB,CAC5C;IAAC;QAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE;CAAC,EACrC;IACE;QACE,UAAU,EAAE,oBAAoB,CAAC;QACjC,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAC;KACb;CACF,EACD,EAAE,CACH,CAAC;AAEF,eAAe,oBAAoB,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQ2FyZEFjdGlvbk1pZGRsZXdhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXJlY3RMaW5lQ2FyZEFjdGlvbiB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuXG5pbXBvcnQgRnVuY3Rpb25NaWRkbGV3YXJlIGZyb20gJy4vRnVuY3Rpb25NaWRkbGV3YXJlJztcblxudHlwZSBQZXJmb3JtQ2FyZEFjdGlvbiA9IChjYXJkQWN0aW9uOiBEaXJlY3RMaW5lQ2FyZEFjdGlvbiwgZXZlbnQ/OiB7IHRhcmdldDogRXZlbnRUYXJnZXQgfSkgPT4gdm9pZDtcblxudHlwZSBDYXJkQWN0aW9uTWlkZGxld2FyZSA9IEZ1bmN0aW9uTWlkZGxld2FyZTxcbiAgW3sgZGlzcGF0Y2g6IChhY3Rpb246IGFueSkgPT4gdm9pZCB9XSxcbiAgW1xuICAgIHtcbiAgICAgIGNhcmRBY3Rpb246IERpcmVjdExpbmVDYXJkQWN0aW9uO1xuICAgICAgZ2V0U2lnbkluVXJsPzogKCkgPT4gc3RyaW5nO1xuICAgICAgdGFyZ2V0OiBhbnk7XG4gICAgfVxuICBdLFxuICB7fVxuPjtcblxuZXhwb3J0IGRlZmF1bHQgQ2FyZEFjdGlvbk1pZGRsZXdhcmU7XG5cbmV4cG9ydCB7IFBlcmZvcm1DYXJkQWN0aW9uIH07XG4iXSwibWFwcGluZ3MiOiIifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "botframework-webchat-api",
|
|
3
|
-
"version": "4.15.
|
|
3
|
+
"version": "4.15.5-main.20220927.f9dd67a",
|
|
4
4
|
"description": "React DOM component of botframework-webchat",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"build:globalize": "node scripts/createPrecompiledGlobalize.mjs",
|
|
28
28
|
"build:typescript": "tsc --project src/tsconfig.json",
|
|
29
29
|
"bump": "npm run bump:prod && npm run bump:dev",
|
|
30
|
-
"bump:dev": "npm install $(cat package.json | jq -r '(.devDependencies | keys) - .skipBump | .[]' | awk '{print $1 \"@latest\"}')",
|
|
31
|
-
"bump:prod": "npm install --save-exact $(cat package.json | jq -r '(.dependencies | keys) - .skipBump | .[]' | awk '{print $1 \"@latest\"}')",
|
|
30
|
+
"bump:dev": "npm install --legacy-peer-deps $(cat package.json | jq -r '(.devDependencies | keys) - (.skipBump | keys) | .[]' | awk '{print $1 \"@latest\"}')",
|
|
31
|
+
"bump:prod": "npm install --legacy-peer-deps --save-exact $(cat package.json | jq -r '(.dependencies | keys) - (.skipBump | keys) | .[]' | awk '{print $1 \"@latest\"}')",
|
|
32
32
|
"eslint": "npm run precommit",
|
|
33
33
|
"precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck",
|
|
34
34
|
"precommit:eslint": "../../node_modules/.bin/eslint --report-unused-disable-directives --max-warnings 0",
|
|
@@ -39,30 +39,32 @@
|
|
|
39
39
|
"start:globalize": "node-dev --respawn scripts/createPrecompiledGlobalize.mjs",
|
|
40
40
|
"start:typescript": "npm run build:typescript -- --watch"
|
|
41
41
|
},
|
|
42
|
-
"skipBump":
|
|
43
|
-
"
|
|
44
|
-
|
|
42
|
+
"skipBump": {
|
|
43
|
+
"botframework-webchat-core": "use local peer version",
|
|
44
|
+
"cldr-data": "use local peer version",
|
|
45
|
+
"react-redux": ""
|
|
46
|
+
},
|
|
45
47
|
"devDependencies": {
|
|
46
48
|
"@babel/cli": "^7.18.10",
|
|
47
|
-
"@babel/core": "^7.
|
|
48
|
-
"@babel/preset-env": "^7.
|
|
49
|
+
"@babel/core": "^7.19.1",
|
|
50
|
+
"@babel/preset-env": "^7.19.1",
|
|
49
51
|
"@babel/preset-react": "^7.18.6",
|
|
50
52
|
"@babel/preset-typescript": "^7.18.6",
|
|
51
53
|
"@types/dom-speech-recognition": "^0.0.1",
|
|
52
|
-
"@types/node": "^18.7.
|
|
53
|
-
"@types/react": "^18.0.
|
|
54
|
+
"@types/node": "^18.7.23",
|
|
55
|
+
"@types/react": "^18.0.21",
|
|
54
56
|
"babel-plugin-istanbul": "^6.1.1",
|
|
55
57
|
"babel-plugin-transform-inline-environment-variables": "^0.4.4",
|
|
56
|
-
"cldr-data": "4.15.
|
|
57
|
-
"concurrently": "^7.
|
|
58
|
-
"core-js": "^3.
|
|
58
|
+
"cldr-data": "4.15.5-main.20220927.f9dd67a",
|
|
59
|
+
"concurrently": "^7.4.0",
|
|
60
|
+
"core-js": "^3.25.3",
|
|
59
61
|
"globalize-compiler": "^1.1.1",
|
|
60
62
|
"iana-tz-data": "^2019.1.0",
|
|
61
63
|
"node-dev": "^7.4.3",
|
|
62
|
-
"typescript": "^4.
|
|
64
|
+
"typescript": "^4.8.3"
|
|
63
65
|
},
|
|
64
66
|
"dependencies": {
|
|
65
|
-
"botframework-webchat-core": "4.15.
|
|
67
|
+
"botframework-webchat-core": "4.15.5-main.20220927.f9dd67a",
|
|
66
68
|
"globalize": "1.7.0",
|
|
67
69
|
"math-random": "2.0.1",
|
|
68
70
|
"prop-types": "15.8.1",
|
package/src/hooks/Composer.tsx
CHANGED
|
@@ -198,7 +198,11 @@ type ComposerCoreProps = {
|
|
|
198
198
|
locale?: string;
|
|
199
199
|
onTelemetry?: (event: TelemetryMeasurementEvent) => void;
|
|
200
200
|
overrideLocalizedStrings?: LocalizedStrings | ((strings: LocalizedStrings, language: string) => LocalizedStrings);
|
|
201
|
-
renderMarkdown?: (
|
|
201
|
+
renderMarkdown?: (
|
|
202
|
+
markdown: string,
|
|
203
|
+
newLineOptions: { markdownRespectCRLF: boolean },
|
|
204
|
+
linkOptions: { externalLinkAlt: string }
|
|
205
|
+
) => string;
|
|
202
206
|
scrollToEndButtonMiddleware?: OneOrMany<ScrollToEndButtonMiddleware>;
|
|
203
207
|
selectVoice?: (voices: typeof window.SpeechSynthesisVoice[], activity: WebChatActivity) => void;
|
|
204
208
|
sendTypingIndicator?: boolean;
|
|
@@ -35,11 +35,15 @@ type WebChatAPIContext = {
|
|
|
35
35
|
language?: string;
|
|
36
36
|
localizedGlobalizeState?: PrecompiledGlobalize[];
|
|
37
37
|
localizedStrings?: { [language: string]: LocalizedStrings };
|
|
38
|
-
markActivity?: ({ id: string }, name: string, value?: any) => void;
|
|
38
|
+
markActivity?: (activity: { id: string }, name: string, value?: any) => void;
|
|
39
39
|
onCardAction?: PerformCardAction;
|
|
40
40
|
onTelemetry?: (event: TelemetryMeasurementEvent) => void;
|
|
41
41
|
postActivity?: (activity: WebChatActivity) => Observable<string>;
|
|
42
|
-
renderMarkdown?: (
|
|
42
|
+
renderMarkdown?: (
|
|
43
|
+
markdown: string,
|
|
44
|
+
newLineOptions: { markdownRespectCRLF: boolean },
|
|
45
|
+
linkOptions: { externalLinkAlt: string }
|
|
46
|
+
) => string;
|
|
43
47
|
scrollToEndButtonRenderer?: ScrollToEndButtonComponentFactory;
|
|
44
48
|
selectVoice?: (voices: typeof window.SpeechSynthesisVoice[], activity: WebChatActivity) => void;
|
|
45
49
|
sendEvent?: (name: string, value: any) => void;
|
|
@@ -4,7 +4,7 @@ import type { WebChatActivity } from 'botframework-webchat-core';
|
|
|
4
4
|
|
|
5
5
|
type ActivityProps = {
|
|
6
6
|
hideTimestamp: boolean;
|
|
7
|
-
renderActivityStatus: ({ hideTimestamp: boolean }) => ReactNode;
|
|
7
|
+
renderActivityStatus: (options: { hideTimestamp: boolean }) => ReactNode;
|
|
8
8
|
renderAvatar: false | (() => Exclude<ReactNode, boolean | null | undefined>);
|
|
9
9
|
showCallout: boolean;
|
|
10
10
|
};
|
|
@@ -2,7 +2,7 @@ import type { DirectLineCardAction } from 'botframework-webchat-core';
|
|
|
2
2
|
|
|
3
3
|
import FunctionMiddleware from './FunctionMiddleware';
|
|
4
4
|
|
|
5
|
-
type PerformCardAction = (cardAction: DirectLineCardAction, { target: EventTarget }
|
|
5
|
+
type PerformCardAction = (cardAction: DirectLineCardAction, event?: { target: EventTarget }) => void;
|
|
6
6
|
|
|
7
7
|
type CardActionMiddleware = FunctionMiddleware<
|
|
8
8
|
[{ dispatch: (action: any) => void }],
|