@agilemotion/oui-react-js 2.0.26 → 2.0.27
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/dist/RestService.js +7 -2
- package/dist/components/AlertBar.js +2 -2
- package/dist/components/Button.js +59 -7
- package/dist/components/DataGrid.js +42 -16
- package/dist/components/DocumentTemplateDesignerComponent.js +2 -2
- package/dist/components/FileThumb.js +69 -7
- package/dist/components/WordDocumentViewer.js +2 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +6 -2
- package/dist/components/form/BaseField.js +4 -2
- package/dist/components/form/Checkbox.js +3 -2
- package/dist/components/form/FieldSet.js +2 -2
- package/dist/components/form/Form.css +1 -1
- package/dist/components/form/Form.js +40 -38
- package/dist/components/form/GridField.js +6 -5
- package/dist/components/form/RadioGroup.js +5 -5
- package/dist/components/form/UploadField.js +68 -4
- package/dist/components/layout/Layout.js +9 -1
- package/dist/components/layout/View.css +2 -0
- package/dist/components/media/ChatViewer.js +103 -0
- package/dist/components/media/TrainingRoom.js +5 -5
- package/dist/components/media/VCRoomParticipant.js +7 -3
- package/dist/components/media/VCRoomWorkspace.js +19 -4
- package/dist/components/media/chat/ChatRoom.js +21 -10
- package/dist/components/media/chat/PollContainer.js +85 -18
- package/dist/js/ProcurementMeetings.js +11 -4
- package/dist/view/PortalDashboard.js +6 -5
- package/package.json +1 -1
package/dist/RestService.js
CHANGED
|
@@ -211,7 +211,12 @@ class RestService {
|
|
|
211
211
|
if (_Utils.default.isNull(parameter.type)) {
|
|
212
212
|
parameter.type = 'String';
|
|
213
213
|
}
|
|
214
|
-
|
|
214
|
+
|
|
215
|
+
// The validator lives on the view config (parameterConfig), NOT on the
|
|
216
|
+
// freshly-built outbound `parameter` object — reading parameter.validator
|
|
217
|
+
// here always saw undefined, so required/nullable RPC params were never
|
|
218
|
+
// enforced and the call fired with a null value.
|
|
219
|
+
if (!_Utils.default.isNull(parameterConfig.validator) && (parameterConfig.validator.nullable && !_Utils.default.evaluateBooleanExpression(parameterConfig.validator.nullable, parameter.name) || _Utils.default.evaluateBooleanExpression(parameterConfig.validator.required && _Utils.default.evaluateBooleanExpression(parameterConfig.validator.required, parameter.name))) && this.isParamValueNull(parameter.value)) {
|
|
215
220
|
reject({
|
|
216
221
|
errorType: 'INVALID_PARAMETER',
|
|
217
222
|
parameter
|
|
@@ -416,4 +421,4 @@ const invokeRest = request => {
|
|
|
416
421
|
return instance.invokeRest(request);
|
|
417
422
|
};
|
|
418
423
|
exports.invokeRest = invokeRest;
|
|
419
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9wcm9wVHlwZXMiLCJfUmVzdFV0aWxzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImxvY2F0aW9uIiwiZXhwb3J0cyIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJqc29uIiwidGV4dCIsIlJlc3RTZXJ2aWNlIiwiaXNQYXJhbVZhbHVlTnVsbCIsInBhcmFtVmFsdWUiLCJVdGlscyIsImlzTnVsbCIsImhhc093blByb3BlcnR5IiwiaW52b2tlUmVzdCIsInJlcXVlc3QiLCJzZXJ2aWNlIiwidXJsIiwic3RhcnRzV2l0aCIsImNvbmNhdCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldENvbnRleHRSb290IiwicmVxdWVzdEJvZHkiLCJoZWFkZXJzIiwicGFyYW1ldGVycyIsInF1ZXJ5U3RyaW5nIiwicGF0aFBhcmFtZXRlcnMiLCJyZXF1ZXN0Qm9keVBhcmFtRm91bmQiLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSIsInJlc29sdmVQYXJhbWV0ZXJWYWx1ZSIsImV2ZW50IiwiZGF0YSIsInZhbGlkYXRvciIsIm51bGxhYmxlIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsIm5hbWUiLCJyZXF1aXJlZCIsImVycm9yVHlwZSIsImh0dHBQYXJhbWV0ZXJUeXBlIiwiaW5jbHVkZVBhcmFtZXRlclR5cGVzIiwidHlwZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXNvbHZlZFZhbHVlIiwiZW5jb2RlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaW5zdGFuY2VUeXBlIiwiaW5kZXhPZiIsInJlcGxhY2UiLCJFcnJvciIsImNvbnRlbnRUeXBlIiwibWV0aG9kIiwidG9VcHBlckNhc2UiLCJmZXRjaFdpdGhDdXN0b21Db25maWciLCJ2aWV3SWQiLCJzZXJ2aWNlVHlwZSIsInNlY3VyZSIsImRvd25sb2FkIiwidGhlbiIsImNhdGNoIiwiYm9keSIsInRyYWNrIiwicGF0aCIsImdldFByb3BlcnR5Q2hhaW5QYXRoIiwicmV0dXJuVmFsdWVCaW5kaW5nIiwidmFsdWVPYmplY3QiLCJwcm9wZXJ0eSIsInByb2Nlc3NTdWNjZXNzZnVsUmVzcG9uc2VEYXRhIiwiY29tcG9uZW50Iiwic3VjY2Vzc01lc3NhZ2UiLCJpbnZva2VScGMiLCJycGNSZXF1ZXN0IiwiaWQiLCJzcGxpdCIsInNlcnZpY2VJZCIsInByb2NlZHVyZU5hbWUiLCJtb2R1bGUiLCJ0b0xvd2VyQ2FzZSIsInBhcmFtZXRlckNvbmZpZyIsImluZGV4IiwidmFsIiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwiRm9ybURhdGEiLCJmZXRjaENvbmZpZyIsImNvbmZpZyIsImFjY2VwdCIsImdldEFwcGxpY2F0aW9uUHJpbWFyeUNvbG9yIiwiZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvciIsImZldGNoIiwiZXJyb3JEYXRhIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJjb250ZW50RGlzcG9zaXRpb24iLCJnZXQiLCJmaWxlbmFtZSIsImluY2x1ZGVzIiwidHJpbSIsImJsb2IiLCJfcmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiYSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImhyZWYiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJlcnJvciIsImNvbnNvbGUiLCJ0cmFja1Byb21pc2UiLCJleGVjdXRlRmV0Y2giLCJlbmNvZGVVUkkiLCJlbmRzV2l0aCIsImNsZWFyIiwibmF2aWdhdGUiLCJ0b1N0cmluZyIsInBhcnNlIiwiaWdub3JlZCIsImRhdGFUeXBlIiwiRXZlbnQiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJNRVNTQUdFX0FSUklWRUQiLCJtZXNzYWdlVHlwZSIsInBvcHVsYXRlVGVtcGxhdGUiLCJpbnN0YW5jZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvUmVzdFNlcnZpY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFV0aWxzIGZyb20gJy4vVXRpbHMnO1xuaW1wb3J0IHt0cmFja1Byb21pc2V9IGZyb20gJ3JlYWN0LXByb21pc2UtdHJhY2tlcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCBFdmVudCBmcm9tICcuL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IHtpbnN0YW5jZU9mfSBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHtkb3dubG9hZCwgcG9zdERhdGEsIHNlbmRSZXF1ZXN0fSBmcm9tIFwiLi9SZXN0VXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmNvbnN0IHN0YXR1cyA9IChyZXNwb25zZSkgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzcG9uc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IGpzb24gPSAocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xufTtcblxuY2xhc3MgUmVzdFNlcnZpY2Uge1xuICAgIGlzUGFyYW1WYWx1ZU51bGwocGFyYW1WYWx1ZSkge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhcmFtVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbVZhbHVlLmhhc093blByb3BlcnR5KCd2YWx1ZScpID8gVXRpbHMuaXNOdWxsKHBhcmFtVmFsdWUudmFsdWUpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaW52b2tlUmVzdChyZXF1ZXN0KSB7XG4gICAgICAgIGxldCBzZXJ2aWNlID0gcmVxdWVzdC5zZXJ2aWNlO1xuICAgICAgICBsZXQgdXJsID0gc2VydmljZS51cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHNlcnZpY2UudXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgP1xuICAgICAgICAgICAgc2VydmljZS51cmwgOiBsb2NhdGlvbiArIGAke2FwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgc2VydmljZS51cmx9YDtcbiAgICAgICAgbGV0IHJlcXVlc3RCb2R5ID0gbnVsbDtcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBzZXJ2aWNlLmhlYWRlcnM7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UucGFyYW1ldGVycykpIHtcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlTdHJpbmcgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgcGF0aFBhcmFtZXRlcnMgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdEJvZHlQYXJhbUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2Ygc2VydmljZS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJWYWx1ZSA9IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlUGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyLCByZXF1ZXN0LmV2ZW50ID8gcmVxdWVzdC5ldmVudC5kYXRhIDogbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHBhcmFtZXRlci52YWxpZGF0b3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiAoKHBhcmFtZXRlci52YWxpZGF0b3IubnVsbGFibGUgJiYgIVV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyYW1ldGVyLnZhbGlkYXRvci5udWxsYWJsZSwgcGFyYW1ldGVyLm5hbWUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICgoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJhbWV0ZXIudmFsaWRhdG9yLnJlcXVpcmVkICYmIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyYW1ldGVyLnZhbGlkYXRvci5yZXF1aXJlZCwgcGFyYW1ldGVyLm5hbWUpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5pc1BhcmFtVmFsdWVOdWxsKHBhcmFtZXRlclZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclR5cGU6ICdJTlZBTElEX1BBUkFNRVRFUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgaHR0cFBhcmFtZXRlclR5cGUgPSBwYXJhbWV0ZXIuaHR0cFBhcmFtZXRlclR5cGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoaHR0cFBhcmFtZXRlclR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1ldGVyVHlwZSA9ICdRVUVSWV9QQVJBTUVURVInO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0dHBQYXJhbWV0ZXJUeXBlID09PSAnUVVFUllfUEFSQU1FVEVSJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5U3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlTdHJpbmcgKz0gJyYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UuaW5jbHVkZVBhcmFtZXRlclR5cGVzKSAmJiBzZXJ2aWNlLmluY2x1ZGVQYXJhbWV0ZXJUeXBlcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyArPSBwYXJhbWV0ZXJWYWx1ZS50eXBlICsgJzonO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nICs9IHBhcmFtZXRlci5uYW1lICsgJz0nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nICs9ICh0eXBlb2YgcGFyYW1ldGVyVmFsdWUudmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA9PT0gJ251bWJlcicgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlclZhbHVlLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaHR0cFBhcmFtZXRlclR5cGUgPT09ICdQQVRIX1ZBUklBQkxFJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlci5lbmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IHR5cGVvZiBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlclZhbHVlLnZhbHVlKSkgOiBwYXJhbWV0ZXJWYWx1ZS5pbnN0YW5jZVR5cGUgPT09ICdUeXBlZFZhbHVlJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlclZhbHVlLnZhbHVlKSA6IGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IHR5cGVvZiBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVyVmFsdWUudmFsdWUpIDogcGFyYW1ldGVyVmFsdWUuaW5zdGFuY2VUeXBlID09PSAnVHlwZWRWYWx1ZScgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlLnZhbHVlIDogcGFyYW1ldGVyVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHBhcmFtZXRlciBoYXMgYSBuYW1lIGFuZCB0aGUgVVJMIGNvbnRhaW5zIHtuYW1lfSwgcmVwbGFjZSB0aGUgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwYXJhbWV0ZXIubmFtZSkgJiYgdXJsLmluZGV4T2YoJ3snICsgcGFyYW1ldGVyLm5hbWUgKyAnfScpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3snICsgcGFyYW1ldGVyLm5hbWUgKyAnfScsIHJlc29sdmVkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHk6IGFwcGVuZCB0byBlbmQgb2YgVVJMXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhQYXJhbWV0ZXJzICs9ICcvJyArIHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0dHBQYXJhbWV0ZXJUeXBlID09PSAnSEVBREVSJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgPSB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbcGFyYW1ldGVyLm5hbWVdID0gcGFyYW1ldGVyVmFsdWUudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaHR0cFBhcmFtZXRlclR5cGUgPT09ICdSRVFVRVNUX0JPRFknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdEJvZHlQYXJhbUZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIk9ubHkgb25lIHJlcXVlc3QgYm9keSBpcyBwZXJtaXR0ZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1hcmsgdGhlIHNsb3QgYXMgdGFrZW4gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgbnVsbC4gQSBzZWNvbmQgUkVRVUVTVF9CT0RZIHBhcmFtIGlzIGEgY29uZmlnIGJ1Z1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyIHdheSwgYW5kIHdlIHdhbnQgaXQgdG8gc3VyZmFjZSBsb3VkbHkuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Qm9keVBhcmFtRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzUGFyYW1WYWx1ZU51bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdEJvZHkgPSBwYXJhbWV0ZXJWYWx1ZS5pbnN0YW5jZVR5cGUgPT09ICdUeXBlZFZhbHVlJyA/IHBhcmFtZXRlclZhbHVlLnZhbHVlIDogcGFyYW1ldGVyVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGF0aFBhcmFtZXRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gcGF0aFBhcmFtZXRlcnM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHF1ZXJ5U3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9ICc/JztcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9IHF1ZXJ5U3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGNvbnRlbnRUeXBlID0gbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoaGVhZGVycykpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZSA9IGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXNvbHZlIHRoZSBIVFRQIG1ldGhvZC4gSG9ub3Igc2VydmljZS5tZXRob2Qgd2hlbiBwcm92aWRlZCBzb1xuICAgICAgICAgICAgLy8gY2FsbGVycyBjYW4gaXNzdWUgREVMRVRFLCBQVVQsIFBBVENIIChub3QganVzdCBHRVQvUE9TVCkuXG4gICAgICAgICAgICAvLyBEZWZhdWx0OiBQT1NUIHdoZW4gYSBib2R5IHdhcyBib3VuZCwgR0VUIG90aGVyd2lzZSDigJQgcHJlc2VydmVzXG4gICAgICAgICAgICAvLyB0aGUgaGlzdG9yaWNhbCBiZWhhdmlvdXIgZm9yIGNhbGxlcnMgdGhhdCBvbWl0IHNlcnZpY2UubWV0aG9kLlxuICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gc2VydmljZS5tZXRob2RcbiAgICAgICAgICAgICAgICA/IHNlcnZpY2UubWV0aG9kLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICAgICA6IChyZXF1ZXN0Qm9keSAhPT0gbnVsbCA/ICdQT1NUJyA6ICdHRVQnKTtcblxuICAgICAgICAgICAgaWYgKHJlcXVlc3RCb2R5ICE9PSBudWxsICYmIG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdBIHJlcXVlc3QgYm9keSBwYXJhbWV0ZXIgY2Fubm90IGJlIHNwZWNpZmllZCBmb3IgYSBHRVQgcmVxdWVzdCcpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERvd25sb2FkIHBhdGggKFBERiAvIEV4Y2VsKSBpcyBHRVQtb25seSBhbmQgdXNlcyBhIHNlcGFyYXRlXG4gICAgICAgICAgICAvLyBmZXRjaCBzaGFwZSAoYmxvYiBoYW5kbGluZyk7IGJyYW5jaCBmaXJzdC5cbiAgICAgICAgICAgIGlmIChtZXRob2QgPT09ICdHRVQnICYmIChjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgY29udGVudFR5cGUgPT09ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hXaXRoQ3VzdG9tQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAgICAgdmlld0lkOiByZXF1ZXN0LnZpZXdJZCxcbiAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlVHlwZTogcmVxdWVzdC5zZXJ2aWNlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyZTogcmVxdWVzdC5zZWN1cmUsXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgICAgIGRvd25sb2FkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTaW5nbGUgZGlzcGF0Y2ggZm9yIEdFVCAvIFBPU1QgLyBQVVQgLyBQQVRDSCAvIERFTEVURSAvIGV0Yy5cbiAgICAgICAgICAgIC8vIEJvZHkgaXMgcGFzc2VkIHRocm91Z2g7IHRoZSBmZXRjaCBsYXllciBkcm9wcyBpdCBmb3IgdmVyYnMgdGhhdFxuICAgICAgICAgICAgLy8gZm9yYmlkIG9uZS4gREVMRVRFIHdpdGggYSBib2R5IGlzIHVuY29tbW9uIGJ1dCBwZXJtaXR0ZWQgYnlcbiAgICAgICAgICAgIC8vIEhUVFAg4oCUIHdlIGRvbid0IGJsb2NrIGl0IGhlcmUuXG4gICAgICAgICAgICAvLyBTZWN1cmUgYnkgZGVmYXVsdDogYXR0YWNoIHRoZSBzZXNzaW9uIHRva2VuIHdoZW5ldmVyIG9uZSBleGlzdHMuXG4gICAgICAgICAgICAvLyBObyBVUkwgc3BlY2lhbC1jYXNpbmcg4oCUIHByZS1hdXRoIHN1cmZhY2VzICh2aWV3L3NlY3VyaXR5LyogbG9naW4sXG4gICAgICAgICAgICAvLyByZWdpc3RlciwgcmVzZXQpIGNsZWFyIHNlc3Npb25TdG9yYWdlIG9uIG1vdW50LCBzbyBub3RoaW5nIGlzXG4gICAgICAgICAgICAvLyBhdHRhY2hlZCBvbiB0aG9zZSBzY3JlZW5zLiBgc2VjdXJlYCBoZXJlIG9ubHkgcHJldmVudHMgbGVha2luZyBhXG4gICAgICAgICAgICAvLyB0b2tlbiB0byBhIHBsYWluLWh0dHAgZW5kcG9pbnQ7IHRoZSBhdHRhY2htZW50IGl0c2VsZiBpc1xuICAgICAgICAgICAgLy8gcHJlc2VuY2UtYmFzZWQgaW4gZmV0Y2hXaXRoQ3VzdG9tQ29uZmlnLCBzbyBhIHN0YWxlL2VtcHR5IHRva2VuIGlzXG4gICAgICAgICAgICAvLyBuZXZlciBzZW50LlxuICAgICAgICAgICAgdGhpcy5mZXRjaFdpdGhDdXN0b21Db25maWcoe1xuICAgICAgICAgICAgICAgIHZpZXdJZDogcmVxdWVzdC52aWV3SWQsXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIHNlcnZpY2VUeXBlOiByZXF1ZXN0LnNlcnZpY2UudHlwZSxcbiAgICAgICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICAgICAgc2VjdXJlOiAhc2VydmljZS51cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpLFxuICAgICAgICAgICAgICAgIGJvZHk6IHJlcXVlc3RCb2R5LFxuICAgICAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgdHJhY2s6IHJlcXVlc3QudHJhY2sgIT09IGZhbHNlXG4gICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBwYXRoID0gVXRpbHMuZ2V0UHJvcGVydHlDaGFpblBhdGgocmVxdWVzdC5yZXR1cm5WYWx1ZUJpbmRpbmcpO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHBhdGgudmFsdWVPYmplY3QpICYmICFVdGlscy5pc051bGwocGF0aC5wcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aC52YWx1ZU9iamVjdFtwYXRoLnByb3BlcnR5XSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5wcm9jZXNzU3VjY2Vzc2Z1bFJlc3BvbnNlRGF0YShyZXF1ZXN0LmNvbXBvbmVudCwgcmVzcG9uc2UsIHJlcXVlc3Qudmlld0lkLCByZXF1ZXN0LnN1Y2Nlc3NNZXNzYWdlKSk7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbnZva2VScGMocmVxdWVzdCkge1xuICAgICAgICBsZXQgcnBjUmVxdWVzdCA9IHt9O1xuICAgICAgICBycGNSZXF1ZXN0LmlkID0gcmVxdWVzdC52aWV3SWQ7XG5cbiAgICAgICAgbGV0IHNwbGl0ID0gcmVxdWVzdC5zZXJ2aWNlLnNlcnZpY2VJZC5zcGxpdCgnLicpO1xuICAgICAgICBycGNSZXF1ZXN0LnNlcnZpY2UgPSBzcGxpdFsxXTtcbiAgICAgICAgcnBjUmVxdWVzdC5tZXRob2QgPSByZXF1ZXN0LnNlcnZpY2UucHJvY2VkdXJlTmFtZTtcblxuICAgICAgICBsZXQgbW9kdWxlID0gc3BsaXRbMF0udG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBsZXQgaGVhZGVycyA9IHt9O1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocmVxdWVzdC5zZXJ2aWNlLnBhcmFtZXRlcnMpICYmIHJlcXVlc3Quc2VydmljZS5wYXJhbWV0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBycGNSZXF1ZXN0LnBhcmFtZXRlcnMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlcXVlc3Quc2VydmljZS5wYXJhbWV0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJDb25maWcgPSByZXF1ZXN0LnNlcnZpY2UucGFyYW1ldGVyc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtZXRlciA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIubmFtZSA9IHBhcmFtZXRlckNvbmZpZy5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuaW5kZXggPSBwYXJhbWV0ZXJDb25maWcuaW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbCA9IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlUGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyQ29uZmlnLCByZXF1ZXN0LmV2ZW50ID8gcmVxdWVzdC5ldmVudC5kYXRhIDogbnVsbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlID0gdmFsLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnR5cGUgPSB2YWwudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW1ldGVyLnZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocGFyYW1ldGVyLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIudHlwZSA9ICdTdHJpbmcnO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyLnZhbGlkYXRvcilcbiAgICAgICAgICAgICAgICAgICAgICAgICYmICgocGFyYW1ldGVyLnZhbGlkYXRvci5udWxsYWJsZSAmJiAhVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJhbWV0ZXIudmFsaWRhdG9yLm51bGxhYmxlLCBwYXJhbWV0ZXIubmFtZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKChVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcmFtZXRlci52YWxpZGF0b3IucmVxdWlyZWQgJiYgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJhbWV0ZXIudmFsaWRhdG9yLnJlcXVpcmVkLCBwYXJhbWV0ZXIubmFtZSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLmlzUGFyYW1WYWx1ZU51bGwocGFyYW1ldGVyLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclR5cGU6ICdJTlZBTElEX1BBUkFNRVRFUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1ldGVyQ29uZmlnLmh0dHBQYXJhbWV0ZXJUeXBlID09PSAnSEVBREVSJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGVhZGVycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzID0ge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzW3BhcmFtZXRlci5uYW1lXSA9IHBhcmFtZXRlci52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJwY1JlcXVlc3QucGFyYW1ldGVycy5wdXNoKHBhcmFtZXRlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZmV0Y2hXaXRoQ3VzdG9tQ29uZmlnKHtcbiAgICAgICAgICAgICAgICB2aWV3SWQ6IHJlcXVlc3Qudmlld0lkLFxuICAgICAgICAgICAgICAgIHVybDogbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvJyArIG1vZHVsZSArICcvYXBpL3YxL3JwYy9pbnZva2UnLFxuICAgICAgICAgICAgICAgIHNlcnZpY2VUeXBlOiByZXF1ZXN0LnNlcnZpY2UudHlwZSxcbiAgICAgICAgICAgICAgICBzZWN1cmU6IHRydWUsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgYm9keTogcnBjUmVxdWVzdCxcbiAgICAgICAgICAgICAgICB0cmFjazogcmVxdWVzdC50cmFjayAhPT0gZmFsc2UsXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdC5yZXR1cm5WYWx1ZUJpbmRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXRoID0gVXRpbHMuZ2V0UHJvcGVydHlDaGFpblBhdGgocmVxdWVzdC5yZXR1cm5WYWx1ZUJpbmRpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGF0aC52YWx1ZU9iamVjdCkgJiYgIVV0aWxzLmlzTnVsbChwYXRoLnByb3BlcnR5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgudmFsdWVPYmplY3RbcGF0aC5wcm9wZXJ0eV0gPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5wcm9jZXNzU3VjY2Vzc2Z1bFJlc3BvbnNlRGF0YShyZXF1ZXN0LmNvbXBvbmVudCwgcmVzcG9uc2UsIHJlcXVlc3Qudmlld0lkLCByZXF1ZXN0LnN1Y2Nlc3NNZXNzYWdlKSk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBmZXRjaFdpdGhDdXN0b21Db25maWcocmVxdWVzdCkge1xuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2FjY2Vzc1Rva2VuJyk7XG4gICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdpZFRva2VuJyk7XG5cbiAgICAgICAgbGV0IGRhdGEgPSByZXF1ZXN0LmJvZHkgPyAocmVxdWVzdC5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpID8gcmVxdWVzdC5ib2R5IDogSlNPTi5zdHJpbmdpZnkocmVxdWVzdC5ib2R5KSA6IG51bGw7XG4gICAgICAgIGxldCBmZXRjaENvbmZpZyA9IHJlcXVlc3QuY29uZmlnO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGZldGNoQ29uZmlnKSkge1xuICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocmVxdWVzdC5zZWN1cmUpIHx8IHJlcXVlc3Quc2VjdXJlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBVdGlscy5pc051bGwocmVxdWVzdC5tZXRob2QpID8gJ0dFVCcgOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IHJlcXVlc3QuY29udGVudFR5cGUgPyByZXF1ZXN0LmNvbnRlbnRUeXBlIDogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIC8vIFNlY3VyZSBieSBkZWZhdWx0LCBwcmVzZW5jZS1iYXNlZDogYXR0YWNoIGF1dGggT05MWSB3aGVuIGFcbiAgICAgICAgICAgICAgICAgICAgLy8gc2Vzc2lvbiBleGlzdHMuIFByZS1hdXRoIHNjcmVlbnMgKHZpZXcvc2VjdXJpdHkvKikgY2xlYXJcbiAgICAgICAgICAgICAgICAgICAgLy8gc2Vzc2lvblN0b3JhZ2Ugb24gbW91bnQsIHNvIG5vdGhpbmcgaXMgYXR0YWNoZWQgdGhlcmUg4oCUIGFuZFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZXZlciBlbWl0ICdCZWFyZXIgbnVsbCcgb3IgYSBzdGFsZSB0b2tlbi5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjY2Vzc1Rva2VuKSBmZXRjaENvbmZpZy5oZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlkVG9rZW4pIGZldGNoQ29uZmlnLmhlYWRlcnNbJ2lkVG9rZW4nXSA9IGlkVG9rZW47XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFV0aWxzLmlzTnVsbChyZXF1ZXN0Lm1ldGhvZCkgPyAnR0VUJyA6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogcmVxdWVzdC5jb250ZW50VHlwZSA/IHJlcXVlc3QuY29udGVudFR5cGUgOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6IHJlcXVlc3QuYWNjZXB0ID8gcmVxdWVzdC5hY2NlcHQgOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCdyZXN0JyA9PT0gcmVxdWVzdC5zZXJ2aWNlVHlwZSAmJiAhKHJlcXVlc3QuYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBmZXRjaENvbmZpZy5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IHJlcXVlc3QuY29udGVudFR5cGUgPyByZXF1ZXN0LmNvbnRlbnRUeXBlIDogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgocmVxdWVzdC5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmZXRjaENvbmZpZy5oZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hDb25maWcuaGVhZGVyc1snQWNjZXB0J10gPSByZXF1ZXN0LmFjY2VwdCA/IHJlcXVlc3QuYWNjZXB0IDogJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlcXVlc3QuY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICBmZXRjaENvbmZpZy5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IHJlcXVlc3QuY29udGVudFR5cGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCB1cmwgPSByZXF1ZXN0LnVybDtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LmRvd25sb2FkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVybC5pbmRleE9mKCc/JykgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCArPSAnPyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9ICcmJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvL3VybCArPSAnYWNjZXNzX3Rva2VuPScgKyBhY2Nlc3NUb2tlbjtcbiAgICAgICAgICAgICAgICAvL3VybCArPSAnJmlkVG9rZW49JyArIGlkVG9rZW47XG4gICAgICAgICAgICAgICAgdXJsICs9ICcmdGhlbWVQcmltYXJ5Q29sb3I9JyArIGVuY29kZVVSSUNvbXBvbmVudChhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25QcmltYXJ5Q29sb3IoKSk7XG4gICAgICAgICAgICAgICAgdXJsICs9ICcmdGhlbWVTZWNvbmRhcnlDb2xvcj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvblNlY29uZGFyeUNvbG9yKCkpO1xuXG4gICAgICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICdpZFRva2VuJzogaWRUb2tlblxuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS50aGVuKGVycm9yRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgJHtyZXNwb25zZS5zdGF0dXN9OiAke2Vycm9yRGF0YS5tZXNzYWdlIHx8IHJlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb250ZW50RGlzcG9zaXRpb24gPSByZXNwb25zZS5oZWFkZXJzLmdldChcIkNvbnRlbnQtRGlzcG9zaXRpb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBcImRvd25sb2FkZWQtZmlsZVwiO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudERpc3Bvc2l0aW9uICYmIGNvbnRlbnREaXNwb3NpdGlvbi5pbmNsdWRlcyhcImZpbGVuYW1lPVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gY29udGVudERpc3Bvc2l0aW9uLnNwbGl0KFwiZmlsZW5hbWU9XCIpWzFdLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UoL1tcIiddL2csIFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oYmxvYiA9PiAoe2Jsb2IsIGZpbGVuYW1lfSkpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoe2Jsb2IsIGZpbGVuYW1lfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4gY29uc29sZS5lcnJvcihcIkRvd25sb2FkIGZhaWxlZDpcIiwgZXJyb3IpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChyZXF1ZXN0LnRyYWNrKSB8fCByZXF1ZXN0LnRyYWNrID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZUZldGNoKHVybCwgZmV0Y2hDb25maWcsIHJlcXVlc3Qudmlld0lkLCByZXF1ZXN0LnN1Y2Nlc3NNZXNzYWdlKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZUZldGNoKHVybCwgZmV0Y2hDb25maWcsIHJlcXVlc3Qudmlld0lkLCByZXF1ZXN0LnN1Y2Nlc3NNZXNzYWdlKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGV4ZWN1dGVGZXRjaCh1cmwsIGZldGNoQ29uZmlnLCB2aWV3SWQsIHN1Y2Nlc3NNZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnByb2Nlc3NTdWNjZXNzZnVsUmVzcG9uc2VEYXRhKG51bGwsIGRhdGEsIHZpZXdJZCwgc3VjY2Vzc01lc3NhZ2UpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5zdGF0dXMgPT09IDQwMSAmJiAhdXJsLmVuZHNXaXRoKCcvbG9nb3V0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcm9jZXNzU3VjY2Vzc2Z1bFJlc3BvbnNlRGF0YShjb21wb25lbnQsIGRhdGEsIHZpZXdJZCwgc3VjY2Vzc01lc3NhZ2UpIHtcbiAgICAgICAgbGV0IHJlc3BvbnNlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgfHwgVXRpbHMuaXNOdWxsKGRhdGEpIHx8IGRhdGEudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgfSBjYXRjaCAoaWdub3JlZCkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5kYXRhVHlwZSA9PT0gJ21lc3NhZ2UnKSB7XG4gICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoYXBwbGljYXRpb25NYW5hZ2VyLCB2aWV3SWQsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQgPSBuZXcgRXZlbnQoY29tcG9uZW50LCB2aWV3SWQsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghVXRpbHMuaXNOdWxsKHN1Y2Nlc3NNZXNzYWdlKSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZVR5cGU6ICdTVUNDRVNTJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBhcHBsaWNhdGlvbk1hbmFnZXIucG9wdWxhdGVUZW1wbGF0ZShzdWNjZXNzTWVzc2FnZSwgcmVzcG9uc2UpXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoYXBwbGljYXRpb25NYW5hZ2VyLCB2aWV3SWQsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuTUVTU0FHRV9BUlJJVkVELCBldmVudCk7XG5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBldmVudCA9IG5ldyBFdmVudChjb21wb25lbnQsIHZpZXdJZCwgbWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuTUVTU0FHRV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxufVxuXG5jb25zdCBpbnN0YW5jZSA9IG5ldyBSZXN0U2VydmljZSgpO1xuXG5leHBvcnQgY29uc3QgaW52b2tlUnBjID0gKHJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gaW5zdGFuY2UuaW52b2tlUnBjKHJlcXVlc3QpO1xufTtcblxuZXhwb3J0IGNvbnN0IGludm9rZVJlc3QgPSAocmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBpbnN0YW5jZS5pbnZva2VSZXN0KHJlcXVlc3QpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsb0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG1CQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFBNEQsU0FBQUQsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxRQUFBSCxDQUFBLEVBQUFJLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVAsQ0FBQSxPQUFBTSxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBUixDQUFBLEdBQUFJLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFYLENBQUEsRUFBQUksQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQWYsQ0FBQSxhQUFBSSxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUQsT0FBQSxDQUFBRyxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFlLGVBQUEsQ0FBQW5CLENBQUEsRUFBQUksQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFyQixDQUFBLEVBQUFNLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FBQSxLQUFBRixPQUFBLENBQUFHLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQUUsTUFBQSxDQUFBZ0IsY0FBQSxDQUFBdEIsQ0FBQSxFQUFBSSxDQUFBLEVBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQU4sQ0FBQSxFQUFBRCxDQUFBLGlCQUFBSixDQUFBO0FBQUEsU0FBQW1CLGdCQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsWUFBQUQsQ0FBQSxHQUFBbUIsY0FBQSxDQUFBbkIsQ0FBQSxNQUFBSixDQUFBLEdBQUFNLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQXRCLENBQUEsRUFBQUksQ0FBQSxJQUFBb0IsS0FBQSxFQUFBbkIsQ0FBQSxFQUFBTyxVQUFBLE1BQUFhLFlBQUEsTUFBQUMsUUFBQSxVQUFBMUIsQ0FBQSxDQUFBSSxDQUFBLElBQUFDLENBQUEsRUFBQUwsQ0FBQTtBQUFBLFNBQUF1QixlQUFBbEIsQ0FBQSxRQUFBc0IsQ0FBQSxHQUFBQyxZQUFBLENBQUF2QixDQUFBLHVDQUFBc0IsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBQyxhQUFBdkIsQ0FBQSxFQUFBRCxDQUFBLDJCQUFBQyxDQUFBLEtBQUFBLENBQUEsU0FBQUEsQ0FBQSxNQUFBTCxDQUFBLEdBQUFLLENBQUEsQ0FBQXdCLE1BQUEsQ0FBQUMsV0FBQSxrQkFBQTlCLENBQUEsUUFBQTJCLENBQUEsR0FBQTNCLENBQUEsQ0FBQStCLElBQUEsQ0FBQTFCLENBQUEsRUFBQUQsQ0FBQSx1Q0FBQXVCLENBQUEsU0FBQUEsQ0FBQSxZQUFBSyxTQUFBLHlFQUFBNUIsQ0FBQSxHQUFBNkIsTUFBQSxHQUFBQyxNQUFBLEVBQUE3QixDQUFBO0FBRXJELE1BQU04QixRQUFRLEdBQUFDLE9BQUEsQ0FBQUQsUUFBQSxHQUFHRSxNQUFNLENBQUNGLFFBQVEsQ0FBQ0csUUFBUSxHQUFHLElBQUksR0FBR0QsTUFBTSxDQUFDRixRQUFRLENBQUNJLFFBQVE7QUFDbEYsTUFBTUMsTUFBTSxHQUFJQyxRQUFRLElBQUs7RUFDekIsSUFBSUEsUUFBUSxDQUFDQyxFQUFFLEVBQUU7SUFDYixPQUFPQyxPQUFPLENBQUNDLE9BQU8sQ0FBQ0gsUUFBUSxDQUFDO0VBQ3BDLENBQUMsTUFBTTtJQUNILE9BQU9FLE9BQU8sQ0FBQ0UsTUFBTSxDQUFDSixRQUFRLENBQUM7RUFDbkM7QUFDSixDQUFDO0FBRUQsTUFBTUssSUFBSSxHQUFJTCxRQUFRLElBQUs7RUFDdkIsT0FBT0EsUUFBUSxDQUFDTSxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTUMsV0FBVyxDQUFDO0VBQ2RDLGdCQUFnQkEsQ0FBQ0MsVUFBVSxFQUFFO0lBQ3pCLElBQUlDLGNBQUssQ0FBQ0MsTUFBTSxDQUFDRixVQUFVLENBQUMsRUFBRTtNQUMxQixPQUFPLElBQUk7SUFDZjtJQUVBLE9BQU9BLFVBQVUsQ0FBQ0csY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHRixjQUFLLENBQUNDLE1BQU0sQ0FBQ0YsVUFBVSxDQUFDMUIsS0FBSyxDQUFDLEdBQUcsS0FBSztFQUN0RjtFQUVBOEIsVUFBVUEsQ0FBQ0MsT0FBTyxFQUFFO0lBQ2hCLElBQUlDLE9BQU8sR0FBR0QsT0FBTyxDQUFDQyxPQUFPO0lBQzdCLElBQUlDLEdBQUcsR0FBR0QsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSUYsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FDN0VGLE9BQU8sQ0FBQ0MsR0FBRyxHQUFHdEIsUUFBUSxNQUFBd0IsTUFBQSxDQUFNQywyQkFBa0IsQ0FBQ0MsY0FBYyxDQUFDLENBQUMsR0FBR0wsT0FBTyxDQUFDQyxHQUFHLENBQUU7SUFDbkYsSUFBSUssV0FBVyxHQUFHLElBQUk7SUFDdEIsSUFBSUMsT0FBTyxHQUFHUCxPQUFPLENBQUNPLE9BQU87SUFFN0IsT0FBTyxJQUFJcEIsT0FBTyxDQUFDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO01BQ3BDLElBQUksQ0FBQ00sY0FBSyxDQUFDQyxNQUFNLENBQUNJLE9BQU8sQ0FBQ1EsVUFBVSxDQUFDLEVBQUU7UUFDbkMsSUFBSUMsV0FBVyxHQUFHLEVBQUU7UUFDcEIsSUFBSUMsY0FBYyxHQUFHLEVBQUU7UUFDdkIsSUFBSUMscUJBQXFCLEdBQUcsS0FBSztRQUNqQyxLQUFLLE1BQU1DLFNBQVMsSUFBSVosT0FBTyxDQUFDUSxVQUFVLEVBQUU7VUFDeEMsSUFBSUssY0FBYyxHQUFHVCwyQkFBa0IsQ0FBQ1UscUJBQXFCLENBQUNGLFNBQVMsRUFBRWIsT0FBTyxDQUFDZ0IsS0FBSyxHQUFHaEIsT0FBTyxDQUFDZ0IsS0FBSyxDQUFDQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1VBQ25ILElBQUksQ0FBQ3JCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDSyxTQUFTLENBQUMsS0FDN0JMLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDQyxRQUFRLElBQUksQ0FBQ3ZCLGNBQUssQ0FBQ3dCLHlCQUF5QixDQUFDUCxTQUFTLENBQUNLLFNBQVMsQ0FBQ0MsUUFBUSxFQUFFTixTQUFTLENBQUNRLElBQUksQ0FBQyxJQUMxR3pCLGNBQUssQ0FBQ3dCLHlCQUF5QixDQUFDUCxTQUFTLENBQUNLLFNBQVMsQ0FBQ0ksUUFBUSxJQUFJMUIsY0FBSyxDQUFDd0IseUJBQXlCLENBQUNQLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDSSxRQUFRLEVBQUVULFNBQVMsQ0FBQ1EsSUFBSSxDQUFDLENBQUcsQ0FBQyxJQUN2SixJQUFJLENBQUMzQixnQkFBZ0IsQ0FBQ29CLGNBQWMsQ0FBQyxFQUFFO1lBQzFDeEIsTUFBTSxDQUFDO2NBQ0hpQyxTQUFTLEVBQUUsbUJBQW1CO2NBQzlCVjtZQUNKLENBQUMsQ0FBQztZQUVGO1VBQ0o7VUFFQSxJQUFJVyxpQkFBaUIsR0FBR1gsU0FBUyxDQUFDVyxpQkFBaUI7VUFDbkQsSUFBSTVCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDMkIsaUJBQWlCLENBQUMsRUFBRTtZQUNqQ0EsaUJBQWlCLEdBQUcsaUJBQWlCO1VBQ3pDO1VBRUEsSUFBSUEsaUJBQWlCLEtBQUssaUJBQWlCLEVBQUU7WUFDekMsSUFBSSxDQUFDNUIsY0FBSyxDQUFDQyxNQUFNLENBQUNpQixjQUFjLENBQUMsRUFBRTtjQUMvQixJQUFJSixXQUFXLENBQUNoRCxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QmdELFdBQVcsSUFBSSxHQUFHO2NBQ3RCO2NBRUEsSUFBSSxDQUFDZCxjQUFLLENBQUNDLE1BQU0sQ0FBQ0ksT0FBTyxDQUFDd0IscUJBQXFCLENBQUMsSUFBSXhCLE9BQU8sQ0FBQ3dCLHFCQUFxQixLQUFLLElBQUksRUFBRTtnQkFDeEZmLFdBQVcsSUFBSUksY0FBYyxDQUFDWSxJQUFJLEdBQUcsR0FBRztjQUM1QztjQUVBaEIsV0FBVyxJQUFJRyxTQUFTLENBQUNRLElBQUksR0FBRyxHQUFHO2NBQ25DWCxXQUFXLElBQUssT0FBT0ksY0FBYyxDQUFDN0MsS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPNkMsY0FBYyxDQUFDN0MsS0FBSyxLQUFLLFFBQVEsR0FDaEc2QyxjQUFjLENBQUM3QyxLQUFLLEdBQUcwRCxJQUFJLENBQUNDLFNBQVMsQ0FBQ2QsY0FBYyxDQUFDN0MsS0FBSyxDQUFFO1lBQ3BFO1VBQ0o7VUFFQSxJQUFJdUQsaUJBQWlCLEtBQUssZUFBZSxFQUFFO1lBQ3ZDLElBQUksQ0FBQzVCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDaUIsY0FBYyxDQUFDLEVBQUU7Y0FDL0IsSUFBSWUsYUFBYTtjQUNqQixJQUFJaEIsU0FBUyxDQUFDaUIsTUFBTSxFQUFFO2dCQUNsQkQsYUFBYSxHQUFHLE9BQU9mLGNBQWMsQ0FBQzdDLEtBQUssS0FBSyxRQUFRLEdBQ2xEOEQsa0JBQWtCLENBQUNKLElBQUksQ0FBQ0MsU0FBUyxDQUFDZCxjQUFjLENBQUM3QyxLQUFLLENBQUMsQ0FBQyxHQUFHNkMsY0FBYyxDQUFDa0IsWUFBWSxLQUFLLFlBQVksR0FDckdELGtCQUFrQixDQUFDakIsY0FBYyxDQUFDN0MsS0FBSyxDQUFDLEdBQUc4RCxrQkFBa0IsQ0FBQ2pCLGNBQWMsQ0FBQztjQUN6RixDQUFDLE1BQU07Z0JBQ0hlLGFBQWEsR0FBRyxPQUFPZixjQUFjLENBQUM3QyxLQUFLLEtBQUssUUFBUSxHQUNsRDBELElBQUksQ0FBQ0MsU0FBUyxDQUFDZCxjQUFjLENBQUM3QyxLQUFLLENBQUMsR0FBRzZDLGNBQWMsQ0FBQ2tCLFlBQVksS0FBSyxZQUFZLEdBQ2pGbEIsY0FBYyxDQUFDN0MsS0FBSyxHQUFHNkMsY0FBYztjQUNqRDs7Y0FFQTtjQUNBLElBQUksQ0FBQ2xCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDUSxJQUFJLENBQUMsSUFBSW5CLEdBQUcsQ0FBQytCLE9BQU8sQ0FBQyxHQUFHLEdBQUdwQixTQUFTLENBQUNRLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9FbkIsR0FBRyxHQUFHQSxHQUFHLENBQUNnQyxPQUFPLENBQUMsR0FBRyxHQUFHckIsU0FBUyxDQUFDUSxJQUFJLEdBQUcsR0FBRyxFQUFFUSxhQUFhLENBQUM7Y0FDaEUsQ0FBQyxNQUFNO2dCQUNIO2dCQUNBbEIsY0FBYyxJQUFJLEdBQUcsR0FBR2tCLGFBQWE7Y0FDekM7WUFDSjtVQUNKO1VBRUEsSUFBSUwsaUJBQWlCLEtBQUssUUFBUSxFQUFFO1lBQ2hDLElBQUksQ0FBQzVCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDaUIsY0FBYyxDQUFDLEVBQUU7Y0FDL0IsSUFBSSxDQUFDTixPQUFPLEVBQUU7Z0JBQ1ZBLE9BQU8sR0FBRyxDQUFDLENBQUM7Y0FDaEI7Y0FFQUEsT0FBTyxDQUFDSyxTQUFTLENBQUNRLElBQUksQ0FBQyxHQUFHUCxjQUFjLENBQUM3QyxLQUFLO1lBQ2xEO1VBQ0o7VUFFQSxJQUFJdUQsaUJBQWlCLEtBQUssY0FBYyxFQUFFO1lBQ3RDLElBQUlaLHFCQUFxQixFQUFFO2NBQ3ZCdEIsTUFBTSxDQUFDLElBQUk2QyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztjQUN2RDtZQUNKO1lBQ0E7WUFDQTtZQUNBO1lBQ0F2QixxQkFBcUIsR0FBRyxJQUFJO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUNsQixnQkFBZ0IsQ0FBQ29CLGNBQWMsQ0FBQyxFQUFFO2NBQ3hDUCxXQUFXLEdBQUdPLGNBQWMsQ0FBQ2tCLFlBQVksS0FBSyxZQUFZLEdBQUdsQixjQUFjLENBQUM3QyxLQUFLLEdBQUc2QyxjQUFjO1lBQ3RHO1VBQ0o7UUFDSjtRQUVBLElBQUlILGNBQWMsQ0FBQ2pELE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDM0J3QyxHQUFHLElBQUlTLGNBQWM7UUFDekI7UUFFQSxJQUFJRCxXQUFXLENBQUNoRCxNQUFNLEdBQUcsQ0FBQyxFQUFFO1VBQ3hCd0MsR0FBRyxJQUFJLEdBQUc7VUFDVkEsR0FBRyxJQUFJUSxXQUFXO1FBQ3RCO01BQ0o7TUFFQSxJQUFJMEIsV0FBVyxHQUFHLElBQUk7TUFFdEIsSUFBSSxDQUFDeEMsY0FBSyxDQUFDQyxNQUFNLENBQUNXLE9BQU8sQ0FBQyxFQUFFO1FBQ3hCNEIsV0FBVyxHQUFHNUIsT0FBTyxDQUFDLGNBQWMsQ0FBQztNQUN6Qzs7TUFFQTtNQUNBO01BQ0E7TUFDQTtNQUNBLE1BQU02QixNQUFNLEdBQUdwQyxPQUFPLENBQUNvQyxNQUFNLEdBQ3ZCcEMsT0FBTyxDQUFDb0MsTUFBTSxDQUFDQyxXQUFXLENBQUMsQ0FBQyxHQUMzQi9CLFdBQVcsS0FBSyxJQUFJLEdBQUcsTUFBTSxHQUFHLEtBQU07TUFFN0MsSUFBSUEsV0FBVyxLQUFLLElBQUksSUFBSThCLE1BQU0sS0FBSyxLQUFLLEVBQUU7UUFDMUMvQyxNQUFNLENBQUMsSUFBSTZDLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1FBQ25GO01BQ0o7O01BRUE7TUFDQTtNQUNBLElBQUlFLE1BQU0sS0FBSyxLQUFLLEtBQUtELFdBQVcsS0FBSyxpQkFBaUIsSUFBSUEsV0FBVyxLQUFLLDBCQUEwQixDQUFDLEVBQUU7UUFDdkcsSUFBSSxDQUFDRyxxQkFBcUIsQ0FBQztVQUN2QkMsTUFBTSxFQUFFeEMsT0FBTyxDQUFDd0MsTUFBTTtVQUN0QnRDLEdBQUc7VUFDSHVDLFdBQVcsRUFBRXpDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDeUIsSUFBSTtVQUNqQ2dCLE1BQU0sRUFBRTFDLE9BQU8sQ0FBQzBDLE1BQU07VUFDdEJMLE1BQU0sRUFBRSxLQUFLO1VBQ2JNLFFBQVEsRUFBRSxJQUFJO1VBQ2RuQztRQUNKLENBQUMsQ0FBQyxDQUFDb0MsSUFBSSxDQUFDLE1BQU07VUFDVnZELE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUN3RCxLQUFLLENBQUVwRyxDQUFDLElBQUs7VUFDWjZDLE1BQU0sQ0FBQzdDLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQztRQUNGO01BQ0o7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBLElBQUksQ0FBQzhGLHFCQUFxQixDQUFDO1FBQ3ZCQyxNQUFNLEVBQUV4QyxPQUFPLENBQUN3QyxNQUFNO1FBQ3RCdEMsR0FBRztRQUNIdUMsV0FBVyxFQUFFekMsT0FBTyxDQUFDQyxPQUFPLENBQUN5QixJQUFJO1FBQ2pDVyxNQUFNO1FBQ05LLE1BQU0sRUFBRSxDQUFDekMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDMUMyQyxJQUFJLEVBQUV2QyxXQUFXO1FBQ2pCQyxPQUFPO1FBQ1B1QyxLQUFLLEVBQUUvQyxPQUFPLENBQUMrQyxLQUFLLEtBQUs7TUFDN0IsQ0FBQyxDQUFDLENBQUNILElBQUksQ0FBRTFELFFBQVEsSUFBSztRQUNsQixJQUFJOEQsSUFBSSxHQUFHcEQsY0FBSyxDQUFDcUQsb0JBQW9CLENBQUNqRCxPQUFPLENBQUNrRCxrQkFBa0IsQ0FBQztRQUNqRSxJQUFJLENBQUN0RCxjQUFLLENBQUNDLE1BQU0sQ0FBQ21ELElBQUksQ0FBQ0csV0FBVyxDQUFDLElBQUksQ0FBQ3ZELGNBQUssQ0FBQ0MsTUFBTSxDQUFDbUQsSUFBSSxDQUFDSSxRQUFRLENBQUMsRUFBRTtVQUNqRUosSUFBSSxDQUFDRyxXQUFXLENBQUNILElBQUksQ0FBQ0ksUUFBUSxDQUFDLEdBQUdsRSxRQUFRO1FBQzlDO1FBRUFHLE9BQU8sQ0FBQyxJQUFJLENBQUNnRSw2QkFBNkIsQ0FBQ3JELE9BQU8sQ0FBQ3NELFNBQVMsRUFBRXBFLFFBQVEsRUFBRWMsT0FBTyxDQUFDd0MsTUFBTSxFQUFFeEMsT0FBTyxDQUFDdUQsY0FBYyxDQUFDLENBQUM7TUFDcEgsQ0FBQyxDQUFDLENBQUNWLEtBQUssQ0FBRXBHLENBQUMsSUFBSztRQUNaNkMsTUFBTSxDQUFDN0MsQ0FBQyxDQUFDO01BQ2IsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO0VBQ047RUFFQStHLFNBQVNBLENBQUN4RCxPQUFPLEVBQUU7SUFDZixJQUFJeUQsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQkEsVUFBVSxDQUFDQyxFQUFFLEdBQUcxRCxPQUFPLENBQUN3QyxNQUFNO0lBRTlCLElBQUltQixLQUFLLEdBQUczRCxPQUFPLENBQUNDLE9BQU8sQ0FBQzJELFNBQVMsQ0FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNoREYsVUFBVSxDQUFDeEQsT0FBTyxHQUFHMEQsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QkYsVUFBVSxDQUFDcEIsTUFBTSxHQUFHckMsT0FBTyxDQUFDQyxPQUFPLENBQUM0RCxhQUFhO0lBRWpELElBQUlDLE1BQU0sR0FBR0gsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDSSxXQUFXLENBQUMsQ0FBQztJQUVuQyxJQUFJdkQsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNoQixPQUFPLElBQUlwQixPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7TUFDcEMsSUFBSSxDQUFDTSxjQUFLLENBQUNDLE1BQU0sQ0FBQ0csT0FBTyxDQUFDQyxPQUFPLENBQUNRLFVBQVUsQ0FBQyxJQUFJVCxPQUFPLENBQUNDLE9BQU8sQ0FBQ1EsVUFBVSxDQUFDL0MsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNwRitGLFVBQVUsQ0FBQ2hELFVBQVUsR0FBRyxFQUFFO1FBQzFCLEtBQUssSUFBSXJDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBRzRCLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDUSxVQUFVLENBQUMvQyxNQUFNLEVBQUVVLENBQUMsRUFBRSxFQUFFO1VBQ3hELElBQUk0RixlQUFlLEdBQUdoRSxPQUFPLENBQUNDLE9BQU8sQ0FBQ1EsVUFBVSxDQUFDckMsQ0FBQyxDQUFDO1VBQ25ELElBQUl5QyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1VBQ2xCQSxTQUFTLENBQUNRLElBQUksR0FBRzJDLGVBQWUsQ0FBQzNDLElBQUk7VUFDckNSLFNBQVMsQ0FBQ29ELEtBQUssR0FBR0QsZUFBZSxDQUFDQyxLQUFLO1VBRXZDLElBQUlDLEdBQUcsR0FBRzdELDJCQUFrQixDQUFDVSxxQkFBcUIsQ0FBQ2lELGVBQWUsRUFBRWhFLE9BQU8sQ0FBQ2dCLEtBQUssR0FBR2hCLE9BQU8sQ0FBQ2dCLEtBQUssQ0FBQ0MsSUFBSSxHQUFHLElBQUksQ0FBQztVQUU5RyxJQUFJLENBQUNyQixjQUFLLENBQUNDLE1BQU0sQ0FBQ3FFLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCckQsU0FBUyxDQUFDNUMsS0FBSyxHQUFHaUcsR0FBRyxDQUFDakcsS0FBSztZQUMzQjRDLFNBQVMsQ0FBQ2EsSUFBSSxHQUFHd0MsR0FBRyxDQUFDeEMsSUFBSTtVQUM3QjtVQUVBLElBQUksT0FBT2IsU0FBUyxDQUFDNUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUN4QzRDLFNBQVMsQ0FBQzVDLEtBQUssR0FBRyxJQUFJO1VBQzFCO1VBRUEsSUFBSTJCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDYSxJQUFJLENBQUMsRUFBRTtZQUM5QmIsU0FBUyxDQUFDYSxJQUFJLEdBQUcsUUFBUTtVQUM3QjtVQUVBLElBQUksQ0FBQzlCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDSyxTQUFTLENBQUMsS0FDN0JMLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDQyxRQUFRLElBQUksQ0FBQ3ZCLGNBQUssQ0FBQ3dCLHlCQUF5QixDQUFDUCxTQUFTLENBQUNLLFNBQVMsQ0FBQ0MsUUFBUSxFQUFFTixTQUFTLENBQUNRLElBQUksQ0FBQyxJQUMxR3pCLGNBQUssQ0FBQ3dCLHlCQUF5QixDQUFDUCxTQUFTLENBQUNLLFNBQVMsQ0FBQ0ksUUFBUSxJQUFJMUIsY0FBSyxDQUFDd0IseUJBQXlCLENBQUNQLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDSSxRQUFRLEVBQUVULFNBQVMsQ0FBQ1EsSUFBSSxDQUFDLENBQUcsQ0FBQyxJQUN2SixJQUFJLENBQUMzQixnQkFBZ0IsQ0FBQ21CLFNBQVMsQ0FBQzVDLEtBQUssQ0FBQyxFQUFFO1lBQzNDcUIsTUFBTSxDQUFDO2NBQ0hpQyxTQUFTLEVBQUUsbUJBQW1CO2NBQzlCVjtZQUNKLENBQUMsQ0FBQztZQUVGO1VBQ0o7VUFFQSxJQUFJbUQsZUFBZSxDQUFDeEMsaUJBQWlCLEtBQUssUUFBUSxFQUFFO1lBQ2hELElBQUksQ0FBQzVCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDNUMsS0FBSyxDQUFDLEVBQUU7Y0FDaEMsSUFBSSxDQUFDdUMsT0FBTyxFQUFFO2dCQUNWQSxPQUFPLEdBQUcsQ0FBQyxDQUFDO2NBQ2hCO2NBRUFBLE9BQU8sQ0FBQ0ssU0FBUyxDQUFDUSxJQUFJLENBQUMsR0FBR1IsU0FBUyxDQUFDNUMsS0FBSztZQUM3QztVQUNKLENBQUMsTUFBTTtZQUNId0YsVUFBVSxDQUFDaEQsVUFBVSxDQUFDbkQsSUFBSSxDQUFDdUQsU0FBUyxDQUFDO1VBQ3pDO1FBQ0o7TUFDSjtNQUVBLElBQUksQ0FBQzBCLHFCQUFxQixDQUFDO1FBQ3ZCQyxNQUFNLEVBQUV4QyxPQUFPLENBQUN3QyxNQUFNO1FBQ3RCdEMsR0FBRyxFQUFFdEIsUUFBUSxHQUFHeUIsMkJBQWtCLENBQUNDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHd0QsTUFBTSxHQUFHLG9CQUFvQjtRQUN6RnJCLFdBQVcsRUFBRXpDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDeUIsSUFBSTtRQUNqQ2dCLE1BQU0sRUFBRSxJQUFJO1FBQ1pMLE1BQU0sRUFBRSxNQUFNO1FBQ2RTLElBQUksRUFBRVcsVUFBVTtRQUNoQlYsS0FBSyxFQUFFL0MsT0FBTyxDQUFDK0MsS0FBSyxLQUFLLEtBQUs7UUFDOUJYLFdBQVcsRUFBRSxrQkFBa0I7UUFDL0I1QjtNQUNKLENBQUMsQ0FBQyxDQUNHb0MsSUFBSSxDQUFFMUQsUUFBUSxJQUFLO1FBQ2hCLElBQUljLE9BQU8sQ0FBQ2tELGtCQUFrQixFQUFFO1VBQzVCLElBQUlGLElBQUksR0FBR3BELGNBQUssQ0FBQ3FELG9CQUFvQixDQUFDakQsT0FBTyxDQUFDa0Qsa0JBQWtCLENBQUM7VUFDakUsSUFBSSxDQUFDdEQsY0FBSyxDQUFDQyxNQUFNLENBQUNtRCxJQUFJLENBQUNHLFdBQVcsQ0FBQyxJQUFJLENBQUN2RCxjQUFLLENBQUNDLE1BQU0sQ0FBQ21ELElBQUksQ0FBQ0ksUUFBUSxDQUFDLEVBQUU7WUFDakVKLElBQUksQ0FBQ0csV0FBVyxDQUFDSCxJQUFJLENBQUNJLFFBQVEsQ0FBQyxHQUFHbEUsUUFBUTtVQUM5QztRQUNKO1FBRUFHLE9BQU8sQ0FBQyxJQUFJLENBQUNnRSw2QkFBNkIsQ0FBQ3JELE9BQU8sQ0FBQ3NELFNBQVMsRUFBRXBFLFFBQVEsRUFBRWMsT0FBTyxDQUFDd0MsTUFBTSxFQUFFeEMsT0FBTyxDQUFDdUQsY0FBYyxDQUFDLENBQUM7TUFDcEgsQ0FBQyxDQUFDLENBQUNWLEtBQUssQ0FBRXBHLENBQUMsSUFBSztRQUNoQjZDLE1BQU0sQ0FBQzdDLENBQUMsQ0FBQztNQUNiLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQztFQUNOO0VBRUE4RixxQkFBcUJBLENBQUN2QyxPQUFPLEVBQUU7SUFDM0IsTUFBTW1FLFdBQVcsR0FBR0MsY0FBYyxDQUFDQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3pELE1BQU1DLE9BQU8sR0FBR0YsY0FBYyxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRWpELElBQUlwRCxJQUFJLEdBQUdqQixPQUFPLENBQUM4QyxJQUFJLEdBQUk5QyxPQUFPLENBQUM4QyxJQUFJLFlBQVl5QixRQUFRLEdBQUl2RSxPQUFPLENBQUM4QyxJQUFJLEdBQUduQixJQUFJLENBQUNDLFNBQVMsQ0FBQzVCLE9BQU8sQ0FBQzhDLElBQUksQ0FBQyxHQUFHLElBQUk7SUFDakgsSUFBSTBCLFdBQVcsR0FBR3hFLE9BQU8sQ0FBQ3lFLE1BQU07SUFFaEMsT0FBTyxJQUFJckYsT0FBTyxDQUFDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO01BQ3BDLElBQUlNLGNBQUssQ0FBQ0MsTUFBTSxDQUFDMkUsV0FBVyxDQUFDLEVBQUU7UUFDM0IsSUFBSTVFLGNBQUssQ0FBQ0MsTUFBTSxDQUFDRyxPQUFPLENBQUMwQyxNQUFNLENBQUMsSUFBSTFDLE9BQU8sQ0FBQzBDLE1BQU0sS0FBSyxJQUFJLEVBQUU7VUFDekQ4QixXQUFXLEdBQUc7WUFDVm5DLE1BQU0sRUFBRXpDLGNBQUssQ0FBQ0MsTUFBTSxDQUFDRyxPQUFPLENBQUNxQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUdyQyxPQUFPLENBQUNxQyxNQUFNO1lBQzdEN0IsT0FBTyxFQUFBaEQsYUFBQSxDQUFBQSxhQUFBLEtBQ0F3QyxPQUFPLENBQUNRLE9BQU87Y0FDbEIsY0FBYyxFQUFFUixPQUFPLENBQUNvQyxXQUFXLEdBQUdwQyxPQUFPLENBQUNvQyxXQUFXLEdBQUc7WUFBbUMsRUFDbEc7WUFDRFUsSUFBSSxFQUFFN0I7VUFDVixDQUFDO1VBQ0Q7VUFDQTtVQUNBO1VBQ0E7VUFDQSxJQUFJa0QsV0FBVyxFQUFFSyxXQUFXLENBQUNoRSxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsU0FBUyxHQUFHMkQsV0FBVztVQUMvRSxJQUFJRyxPQUFPLEVBQUVFLFdBQVcsQ0FBQ2hFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRzhELE9BQU87UUFDekQsQ0FBQyxNQUFNO1VBQ0hFLFdBQVcsR0FBRztZQUNWbkMsTUFBTSxFQUFFekMsY0FBSyxDQUFDQyxNQUFNLENBQUNHLE9BQU8sQ0FBQ3FDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBR3JDLE9BQU8sQ0FBQ3FDLE1BQU07WUFDN0Q3QixPQUFPLEVBQUFoRCxhQUFBLENBQUFBLGFBQUEsS0FDQXdDLE9BQU8sQ0FBQ1EsT0FBTztjQUNsQixjQUFjLEVBQUVSLE9BQU8sQ0FBQ29DLFdBQVcsR0FBR3BDLE9BQU8sQ0FBQ29DLFdBQVcsR0FBRyxrQkFBa0I7Y0FDOUUsUUFBUSxFQUFFcEMsT0FBTyxDQUFDMEUsTUFBTSxHQUFHMUUsT0FBTyxDQUFDMEUsTUFBTSxHQUFHO1lBQWtCLEVBQ2pFO1lBQ0Q1QixJQUFJLEVBQUU3QjtVQUNWLENBQUM7UUFDTDtRQUVBLElBQUksTUFBTSxLQUFLakIsT0FBTyxDQUFDeUMsV0FBVyxJQUFJLEVBQUV6QyxPQUFPLENBQUM4QyxJQUFJLFlBQVl5QixRQUFRLENBQUMsRUFBRTtVQUN2RUMsV0FBVyxDQUFDaEUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHUixPQUFPLENBQUNvQyxXQUFXLEdBQUdwQyxPQUFPLENBQUNvQyxXQUFXLEdBQUcsaUNBQWlDO1FBQ3ZIO1FBRUEsSUFBS3BDLE9BQU8sQ0FBQzhDLElBQUksWUFBWXlCLFFBQVEsRUFBRztVQUNwQyxPQUFPQyxXQUFXLENBQUNoRSxPQUFPLENBQUMsY0FBYyxDQUFDO1VBQzFDZ0UsV0FBVyxDQUFDaEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHUixPQUFPLENBQUMwRSxNQUFNLEdBQUcxRSxPQUFPLENBQUMwRSxNQUFNLEdBQUcsa0JBQWtCO1FBQ3hGO01BQ0o7TUFFQSxJQUFJMUUsT0FBTyxDQUFDb0MsV0FBVyxFQUFFO1FBQ3JCb0MsV0FBVyxDQUFDaEUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHUixPQUFPLENBQUNvQyxXQUFXO01BQzdEO01BRUEsSUFBSWxDLEdBQUcsR0FBR0YsT0FBTyxDQUFDRSxHQUFHO01BQ3JCLElBQUlGLE9BQU8sQ0FBQzJDLFFBQVEsRUFBRTtRQUNsQixJQUFJekMsR0FBRyxDQUFDK0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtVQUN0Qi9CLEdBQUcsSUFBSSxHQUFHO1FBQ2QsQ0FBQyxNQUFNO1VBQ0hBLEdBQUcsSUFBSSxHQUFHO1FBQ2Q7O1FBRUE7UUFDQTtRQUNBQSxHQUFHLElBQUkscUJBQXFCLEdBQUc2QixrQkFBa0IsQ0FBQzFCLDJCQUFrQixDQUFDc0UsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQ2xHekUsR0FBRyxJQUFJLHVCQUF1QixHQUFHNkIsa0JBQWtCLENBQUMxQiwyQkFBa0IsQ0FBQ3VFLDRCQUE0QixDQUFDLENBQUMsQ0FBQztRQUV0R0MsS0FBSyxDQUFDM0UsR0FBRyxFQUFFO1VBQ1BtQyxNQUFNLEVBQUUsS0FBSztVQUNiN0IsT0FBTyxFQUFBaEQsYUFBQSxDQUFBQSxhQUFBLEtBQ0F3QyxPQUFPLENBQUNRLE9BQU87WUFDbEIsZUFBZSxFQUFFLFNBQVMsR0FBRzJELFdBQVc7WUFDeEMsU0FBUyxFQUFFRztVQUFPO1FBRzFCLENBQUMsQ0FBQyxDQUNHMUIsSUFBSSxDQUFDMUQsUUFBUSxJQUFJO1VBQ2QsSUFBSSxDQUFDQSxRQUFRLENBQUNDLEVBQUUsRUFBRTtZQUNkLE9BQU9ELFFBQVEsQ0FBQ0ssSUFBSSxDQUFDLENBQUMsQ0FBQ3FELElBQUksQ0FBQ2tDLFNBQVMsSUFBSTtjQUNyQyxNQUFNLElBQUkzQyxLQUFLLFVBQUEvQixNQUFBLENBQVVsQixRQUFRLENBQUNELE1BQU0sUUFBQW1CLE1BQUEsQ0FBSzBFLFNBQVMsQ0FBQ0MsT0FBTyxJQUFJN0YsUUFBUSxDQUFDOEYsVUFBVSxDQUFFLENBQUM7WUFDNUYsQ0FBQyxDQUFDO1VBQ047VUFFQSxJQUFJQyxrQkFBa0IsR0FBRy9GLFFBQVEsQ0FBQ3NCLE9BQU8sQ0FBQzBFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztVQUNwRSxJQUFJQyxRQUFRLEdBQUcsaUJBQWlCO1VBRWhDLElBQUlGLGtCQUFrQixJQUFJQSxrQkFBa0IsQ0FBQ0csUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hFRCxRQUFRLEdBQUdGLGtCQUFrQixDQUFDdEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDMEIsSUFBSSxDQUFDLENBQUM7WUFDMURGLFFBQVEsR0FBR0EsUUFBUSxDQUFDakQsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7VUFDNUM7VUFFQSxPQUFPaEQsUUFBUSxDQUFDb0csSUFBSSxDQUFDLENBQUMsQ0FBQzFDLElBQUksQ0FBQzBDLElBQUksS0FBSztZQUFDQSxJQUFJO1lBQUVIO1VBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQ0R2QyxJQUFJLENBQUMyQyxJQUFBLElBQXNCO1VBQUEsSUFBckI7WUFBQ0QsSUFBSTtZQUFFSDtVQUFRLENBQUMsR0FBQUksSUFBQTtVQUNuQixNQUFNckYsR0FBRyxHQUFHc0YsR0FBRyxDQUFDQyxlQUFlLENBQUNILElBQUksQ0FBQztVQUNyQyxNQUFNSSxDQUFDLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLEdBQUcsQ0FBQztVQUNyQ0YsQ0FBQyxDQUFDRyxJQUFJLEdBQUczRixHQUFHO1VBQ1p3RixDQUFDLENBQUMvQyxRQUFRLEdBQUd3QyxRQUFRO1VBQ3JCUSxRQUFRLENBQUM3QyxJQUFJLENBQUNnRCxXQUFXLENBQUNKLENBQUMsQ0FBQztVQUM1QkEsQ0FBQyxDQUFDSyxLQUFLLENBQUMsQ0FBQztVQUNUSixRQUFRLENBQUM3QyxJQUFJLENBQUNrRCxXQUFXLENBQUNOLENBQUMsQ0FBQztVQUM1QkYsR0FBRyxDQUFDUyxlQUFlLENBQUMvRixHQUFHLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0QyQyxLQUFLLENBQUNxRCxLQUFLLElBQUlDLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDLGtCQUFrQixFQUFFQSxLQUFLLENBQUMsQ0FBQztNQUNqRSxDQUFDLE1BQU07UUFDSCxJQUFJdEcsY0FBSyxDQUFDQyxNQUFNLENBQUNHLE9BQU8sQ0FBQytDLEtBQUssQ0FBQyxJQUFJL0MsT0FBTyxDQUFDK0MsS0FBSyxLQUFLLElBQUksRUFBRTtVQUN2RCxJQUFBcUQsaUNBQVksRUFDUixJQUFJLENBQUNDLFlBQVksQ0FBQ25HLEdBQUcsRUFBRXNFLFdBQVcsRUFBRXhFLE9BQU8sQ0FBQ3dDLE1BQU0sRUFBRXhDLE9BQU8sQ0FBQ3VELGNBQWMsQ0FBQyxDQUFDWCxJQUFJLENBQUUxRCxRQUFRLElBQUs7WUFDM0ZHLE9BQU8sQ0FBQ0gsUUFBUSxDQUFDO1VBQ3JCLENBQUMsQ0FBQyxDQUFDMkQsS0FBSyxDQUFFcEcsQ0FBQyxJQUFLO1lBQ1o2QyxNQUFNLENBQUM3QyxDQUFDLENBQUM7VUFDYixDQUFDLENBQ0wsQ0FBQztRQUNMLENBQUMsTUFBTTtVQUNILElBQUksQ0FBQzRKLFlBQVksQ0FBQ25HLEdBQUcsRUFBRXNFLFdBQVcsRUFBRXhFLE9BQU8sQ0FBQ3dDLE1BQU0sRUFBRXhDLE9BQU8sQ0FBQ3VELGNBQWMsQ0FBQyxDQUFDWCxJQUFJLENBQUUxRCxRQUFRLElBQUs7WUFDM0ZHLE9BQU8sQ0FBQ0gsUUFBUSxDQUFDO1VBQ3JCLENBQUMsQ0FBQyxDQUFDMkQsS0FBSyxDQUFFcEcsQ0FBQyxJQUFLO1lBQ1o2QyxNQUFNLENBQUM3QyxDQUFDLENBQUM7VUFDYixDQUFDLENBQUM7UUFDTjtNQUNKO0lBQ0osQ0FBQyxDQUFDO0VBQ047RUFFQTRKLFlBQVlBLENBQUNuRyxHQUFHLEVBQUVzRSxXQUFXLEVBQUVoQyxNQUFNLEVBQUVlLGNBQWMsRUFBRTtJQUNuRCxPQUFPLElBQUluRSxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7TUFDcEN1RixLQUFLLENBQUN5QixTQUFTLENBQUNwRyxHQUFHLENBQUMsRUFBRXNFLFdBQVcsQ0FBQyxDQUM3QjVCLElBQUksQ0FBQzNELE1BQU0sQ0FBQyxDQUNaMkQsSUFBSSxDQUFDckQsSUFBSSxDQUFDLENBQ1ZxRCxJQUFJLENBQUUzQixJQUFJLElBQUs7UUFDWjVCLE9BQU8sQ0FBQyxJQUFJLENBQUNnRSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUVwQyxJQUFJLEVBQUV1QixNQUFNLEVBQUVlLGNBQWMsQ0FBQyxDQUFDO01BQ25GLENBQUMsQ0FBQyxDQUNEVixLQUFLLENBQUVwRyxDQUFDLElBQUs7UUFDVjBKLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDekosQ0FBQyxDQUFDO1FBQ2hCLElBQUlBLENBQUMsQ0FBQ3dDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQ2lCLEdBQUcsQ0FBQ3FHLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtVQUM5Q2xHLDJCQUFrQixDQUFDbUcsS0FBSyxDQUFDLENBQUM7VUFDMUJuRywyQkFBa0IsQ0FBQ29HLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDekM7UUFFQW5ILE1BQU0sQ0FBQzdDLENBQUMsQ0FBQztNQUNiLENBQUMsQ0FBQztJQUNWLENBQUMsQ0FBQztFQUNOO0VBRUE0Ryw2QkFBNkJBLENBQUNDLFNBQVMsRUFBRXJDLElBQUksRUFBRXVCLE1BQU0sRUFBRWUsY0FBYyxFQUFFO0lBQ25FLElBQUlyRSxRQUFRO0lBRVosSUFBSSxPQUFPK0IsSUFBSSxLQUFLLFFBQVEsSUFBSXJCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDb0IsSUFBSSxDQUFDLElBQUlBLElBQUksQ0FBQ3lGLFFBQVEsQ0FBQyxDQUFDLENBQ2hFckIsSUFBSSxDQUFDLENBQUMsQ0FBQzNILE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDdEJ3QixRQUFRLEdBQUcrQixJQUFJO0lBQ25CLENBQUMsTUFBTTtNQUNILElBQUk7UUFDQS9CLFFBQVEsR0FBR3lDLElBQUksQ0FBQ2dGLEtBQUssQ0FBQzFGLElBQUksQ0FBQztNQUMvQixDQUFDLENBQUMsT0FBTzJGLE9BQU8sRUFBRTtRQUNkMUgsUUFBUSxHQUFHK0IsSUFBSTtNQUNuQjtJQUNKO0lBRUEsSUFBSS9CLFFBQVEsSUFBSUEsUUFBUSxDQUFDMkgsUUFBUSxLQUFLLFNBQVMsRUFBRTtNQUM3QyxJQUFJN0YsS0FBSyxHQUFHLElBQUk4RixjQUFLLENBQUN6RywyQkFBa0IsRUFBRW1DLE1BQU0sRUFBRXRELFFBQVEsQ0FBQztNQUMzRDZILG1CQUFZLENBQUNDLFNBQVMsQ0FBQ0Msa0JBQVMsQ0FBQ0MsZUFBZSxFQUFFbEcsS0FBSyxDQUFDO01BRXhELElBQUlzQyxTQUFTLEtBQUssSUFBSSxFQUFFO1FBQ3BCdEMsS0FBSyxHQUFHLElBQUk4RixjQUFLLENBQUN4RCxTQUFTLEVBQUVkLE1BQU0sRUFBRXRELFFBQVEsQ0FBQztRQUM5QzZILG1CQUFZLENBQUNDLFNBQVMsQ0FBQ0Msa0JBQVMsQ0FBQ0MsZUFBZSxFQUFFbEcsS0FBSyxDQUFDO01BQzVEO0lBQ0osQ0FBQyxNQUFNLElBQUksQ0FBQ3BCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDMEQsY0FBYyxDQUFDLEVBQUU7TUFDdEMsSUFBSXdCLE9BQU8sR0FBRztRQUNWb0MsV0FBVyxFQUFFLFNBQVM7UUFDdEJwQyxPQUFPLEVBQUUxRSwyQkFBa0IsQ0FBQytHLGdCQUFnQixDQUFDN0QsY0FBYyxFQUFFckUsUUFBUTtNQUN6RSxDQUFDO01BRUQsSUFBSThCLEtBQUssR0FBRyxJQUFJOEYsY0FBSyxDQUFDekcsMkJBQWtCLEVBQUVtQyxNQUFNLEVBQUV1QyxPQUFPLENBQUM7TUFDMURnQyxtQkFBWSxDQUFDQyxTQUFTLENBQUNDLGtCQUFTLENBQUNDLGVBQWUsRUFBRWxHLEtBQUssQ0FBQztNQUV4RCxJQUFJc0MsU0FBUyxLQUFLLElBQUksRUFBRTtRQUNwQnRDLEtBQUssR0FBRyxJQUFJOEYsY0FBSyxDQUFDeEQsU0FBUyxFQUFFZCxNQUFNLEVBQUV1QyxPQUFPLENBQUM7UUFDN0NnQyxtQkFBWSxDQUFDQyxTQUFTLENBQUNDLGtCQUFTLENBQUNDLGVBQWUsRUFBRWxHLEtBQUssQ0FBQztNQUM1RDtJQUNKO0lBRUEsT0FBTzlCLFFBQVE7RUFDbkI7QUFDSjtBQUVBLE1BQU1tSSxRQUFRLEdBQUcsSUFBSTVILFdBQVcsQ0FBQyxDQUFDO0FBRTNCLE1BQU0rRCxTQUFTLEdBQUl4RCxPQUFPLElBQUs7RUFDbEMsT0FBT3FILFFBQVEsQ0FBQzdELFNBQVMsQ0FBQ3hELE9BQU8sQ0FBQztBQUN0QyxDQUFDO0FBQUNuQixPQUFBLENBQUEyRSxTQUFBLEdBQUFBLFNBQUE7QUFFSyxNQUFNekQsVUFBVSxHQUFJQyxPQUFPLElBQUs7RUFDbkMsT0FBT3FILFFBQVEsQ0FBQ3RILFVBQVUsQ0FBQ0MsT0FBTyxDQUFDO0FBQ3ZDLENBQUM7QUFBQ25CLE9BQUEsQ0FBQWtCLFVBQUEsR0FBQUEsVUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
424
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9wcm9wVHlwZXMiLCJfUmVzdFV0aWxzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImxvY2F0aW9uIiwiZXhwb3J0cyIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJqc29uIiwidGV4dCIsIlJlc3RTZXJ2aWNlIiwiaXNQYXJhbVZhbHVlTnVsbCIsInBhcmFtVmFsdWUiLCJVdGlscyIsImlzTnVsbCIsImhhc093blByb3BlcnR5IiwiaW52b2tlUmVzdCIsInJlcXVlc3QiLCJzZXJ2aWNlIiwidXJsIiwic3RhcnRzV2l0aCIsImNvbmNhdCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldENvbnRleHRSb290IiwicmVxdWVzdEJvZHkiLCJoZWFkZXJzIiwicGFyYW1ldGVycyIsInF1ZXJ5U3RyaW5nIiwicGF0aFBhcmFtZXRlcnMiLCJyZXF1ZXN0Qm9keVBhcmFtRm91bmQiLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSIsInJlc29sdmVQYXJhbWV0ZXJWYWx1ZSIsImV2ZW50IiwiZGF0YSIsInZhbGlkYXRvciIsIm51bGxhYmxlIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsIm5hbWUiLCJyZXF1aXJlZCIsImVycm9yVHlwZSIsImh0dHBQYXJhbWV0ZXJUeXBlIiwiaW5jbHVkZVBhcmFtZXRlclR5cGVzIiwidHlwZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXNvbHZlZFZhbHVlIiwiZW5jb2RlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaW5zdGFuY2VUeXBlIiwiaW5kZXhPZiIsInJlcGxhY2UiLCJFcnJvciIsImNvbnRlbnRUeXBlIiwibWV0aG9kIiwidG9VcHBlckNhc2UiLCJmZXRjaFdpdGhDdXN0b21Db25maWciLCJ2aWV3SWQiLCJzZXJ2aWNlVHlwZSIsInNlY3VyZSIsImRvd25sb2FkIiwidGhlbiIsImNhdGNoIiwiYm9keSIsInRyYWNrIiwicGF0aCIsImdldFByb3BlcnR5Q2hhaW5QYXRoIiwicmV0dXJuVmFsdWVCaW5kaW5nIiwidmFsdWVPYmplY3QiLCJwcm9wZXJ0eSIsInByb2Nlc3NTdWNjZXNzZnVsUmVzcG9uc2VEYXRhIiwiY29tcG9uZW50Iiwic3VjY2Vzc01lc3NhZ2UiLCJpbnZva2VScGMiLCJycGNSZXF1ZXN0IiwiaWQiLCJzcGxpdCIsInNlcnZpY2VJZCIsInByb2NlZHVyZU5hbWUiLCJtb2R1bGUiLCJ0b0xvd2VyQ2FzZSIsInBhcmFtZXRlckNvbmZpZyIsImluZGV4IiwidmFsIiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwiRm9ybURhdGEiLCJmZXRjaENvbmZpZyIsImNvbmZpZyIsImFjY2VwdCIsImdldEFwcGxpY2F0aW9uUHJpbWFyeUNvbG9yIiwiZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvciIsImZldGNoIiwiZXJyb3JEYXRhIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJjb250ZW50RGlzcG9zaXRpb24iLCJnZXQiLCJmaWxlbmFtZSIsImluY2x1ZGVzIiwidHJpbSIsImJsb2IiLCJfcmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiYSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImhyZWYiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJlcnJvciIsImNvbnNvbGUiLCJ0cmFja1Byb21pc2UiLCJleGVjdXRlRmV0Y2giLCJlbmNvZGVVUkkiLCJlbmRzV2l0aCIsImNsZWFyIiwibmF2aWdhdGUiLCJ0b1N0cmluZyIsInBhcnNlIiwiaWdub3JlZCIsImRhdGFUeXBlIiwiRXZlbnQiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJNRVNTQUdFX0FSUklWRUQiLCJtZXNzYWdlVHlwZSIsInBvcHVsYXRlVGVtcGxhdGUiLCJpbnN0YW5jZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvUmVzdFNlcnZpY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFV0aWxzIGZyb20gJy4vVXRpbHMnO1xuaW1wb3J0IHt0cmFja1Byb21pc2V9IGZyb20gJ3JlYWN0LXByb21pc2UtdHJhY2tlcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCBFdmVudCBmcm9tICcuL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IHtpbnN0YW5jZU9mfSBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHtkb3dubG9hZCwgcG9zdERhdGEsIHNlbmRSZXF1ZXN0fSBmcm9tIFwiLi9SZXN0VXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmNvbnN0IHN0YXR1cyA9IChyZXNwb25zZSkgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzcG9uc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IGpzb24gPSAocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xufTtcblxuY2xhc3MgUmVzdFNlcnZpY2Uge1xuICAgIGlzUGFyYW1WYWx1ZU51bGwocGFyYW1WYWx1ZSkge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhcmFtVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbVZhbHVlLmhhc093blByb3BlcnR5KCd2YWx1ZScpID8gVXRpbHMuaXNOdWxsKHBhcmFtVmFsdWUudmFsdWUpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaW52b2tlUmVzdChyZXF1ZXN0KSB7XG4gICAgICAgIGxldCBzZXJ2aWNlID0gcmVxdWVzdC5zZXJ2aWNlO1xuICAgICAgICBsZXQgdXJsID0gc2VydmljZS51cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHNlcnZpY2UudXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgP1xuICAgICAgICAgICAgc2VydmljZS51cmwgOiBsb2NhdGlvbiArIGAke2FwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgc2VydmljZS51cmx9YDtcbiAgICAgICAgbGV0IHJlcXVlc3RCb2R5ID0gbnVsbDtcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBzZXJ2aWNlLmhlYWRlcnM7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UucGFyYW1ldGVycykpIHtcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlTdHJpbmcgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgcGF0aFBhcmFtZXRlcnMgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdEJvZHlQYXJhbUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2Ygc2VydmljZS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJWYWx1ZSA9IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlUGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyLCByZXF1ZXN0LmV2ZW50ID8gcmVxdWVzdC5ldmVudC5kYXRhIDogbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHBhcmFtZXRlci52YWxpZGF0b3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiAoKHBhcmFtZXRlci52YWxpZGF0b3IubnVsbGFibGUgJiYgIVV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyYW1ldGVyLnZhbGlkYXRvci5udWxsYWJsZSwgcGFyYW1ldGVyLm5hbWUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICgoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJhbWV0ZXIudmFsaWRhdG9yLnJlcXVpcmVkICYmIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyYW1ldGVyLnZhbGlkYXRvci5yZXF1aXJlZCwgcGFyYW1ldGVyLm5hbWUpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5pc1BhcmFtVmFsdWVOdWxsKHBhcmFtZXRlclZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclR5cGU6ICdJTlZBTElEX1BBUkFNRVRFUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgaHR0cFBhcmFtZXRlclR5cGUgPSBwYXJhbWV0ZXIuaHR0cFBhcmFtZXRlclR5cGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoaHR0cFBhcmFtZXRlclR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1ldGVyVHlwZSA9ICdRVUVSWV9QQVJBTUVURVInO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0dHBQYXJhbWV0ZXJUeXBlID09PSAnUVVFUllfUEFSQU1FVEVSJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5U3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlTdHJpbmcgKz0gJyYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UuaW5jbHVkZVBhcmFtZXRlclR5cGVzKSAmJiBzZXJ2aWNlLmluY2x1ZGVQYXJhbWV0ZXJUeXBlcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVN0cmluZyArPSBwYXJhbWV0ZXJWYWx1ZS50eXBlICsgJzonO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nICs9IHBhcmFtZXRlci5uYW1lICsgJz0nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nICs9ICh0eXBlb2YgcGFyYW1ldGVyVmFsdWUudmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA9PT0gJ251bWJlcicgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlclZhbHVlLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaHR0cFBhcmFtZXRlclR5cGUgPT09ICdQQVRIX1ZBUklBQkxFJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtZXRlci5lbmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IHR5cGVvZiBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlclZhbHVlLnZhbHVlKSkgOiBwYXJhbWV0ZXJWYWx1ZS5pbnN0YW5jZVR5cGUgPT09ICdUeXBlZFZhbHVlJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlclZhbHVlLnZhbHVlKSA6IGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IHR5cGVvZiBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVyVmFsdWUudmFsdWUpIDogcGFyYW1ldGVyVmFsdWUuaW5zdGFuY2VUeXBlID09PSAnVHlwZWRWYWx1ZScgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlLnZhbHVlIDogcGFyYW1ldGVyVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHBhcmFtZXRlciBoYXMgYSBuYW1lIGFuZCB0aGUgVVJMIGNvbnRhaW5zIHtuYW1lfSwgcmVwbGFjZSB0aGUgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwYXJhbWV0ZXIubmFtZSkgJiYgdXJsLmluZGV4T2YoJ3snICsgcGFyYW1ldGVyLm5hbWUgKyAnfScpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3snICsgcGFyYW1ldGVyLm5hbWUgKyAnfScsIHJlc29sdmVkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHk6IGFwcGVuZCB0byBlbmQgb2YgVVJMXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhQYXJhbWV0ZXJzICs9ICcvJyArIHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0dHBQYXJhbWV0ZXJUeXBlID09PSAnSEVBREVSJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgPSB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbcGFyYW1ldGVyLm5hbWVdID0gcGFyYW1ldGVyVmFsdWUudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaHR0cFBhcmFtZXRlclR5cGUgPT09ICdSRVFVRVNUX0JPRFknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdEJvZHlQYXJhbUZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIk9ubHkgb25lIHJlcXVlc3QgYm9keSBpcyBwZXJtaXR0ZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1hcmsgdGhlIHNsb3QgYXMgdGFrZW4gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgbnVsbC4gQSBzZWNvbmQgUkVRVUVTVF9CT0RZIHBhcmFtIGlzIGEgY29uZmlnIGJ1Z1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyIHdheSwgYW5kIHdlIHdhbnQgaXQgdG8gc3VyZmFjZSBsb3VkbHkuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Qm9keVBhcmFtRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzUGFyYW1WYWx1ZU51bGwocGFyYW1ldGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdEJvZHkgPSBwYXJhbWV0ZXJWYWx1ZS5pbnN0YW5jZVR5cGUgPT09ICdUeXBlZFZhbHVlJyA/IHBhcmFtZXRlclZhbHVlLnZhbHVlIDogcGFyYW1ldGVyVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGF0aFBhcmFtZXRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gcGF0aFBhcmFtZXRlcnM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHF1ZXJ5U3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9ICc/JztcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9IHF1ZXJ5U3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGNvbnRlbnRUeXBlID0gbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoaGVhZGVycykpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZSA9IGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZXNvbHZlIHRoZSBIVFRQIG1ldGhvZC4gSG9ub3Igc2VydmljZS5tZXRob2Qgd2hlbiBwcm92aWRlZCBzb1xuICAgICAgICAgICAgLy8gY2FsbGVycyBjYW4gaXNzdWUgREVMRVRFLCBQVVQsIFBBVENIIChub3QganVzdCBHRVQvUE9TVCkuXG4gICAgICAgICAgICAvLyBEZWZhdWx0OiBQT1NUIHdoZW4gYSBib2R5IHdhcyBib3VuZCwgR0VUIG90aGVyd2lzZSDigJQgcHJlc2VydmVzXG4gICAgICAgICAgICAvLyB0aGUgaGlzdG9yaWNhbCBiZWhhdmlvdXIgZm9yIGNhbGxlcnMgdGhhdCBvbWl0IHNlcnZpY2UubWV0aG9kLlxuICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gc2VydmljZS5tZXRob2RcbiAgICAgICAgICAgICAgICA/IHNlcnZpY2UubWV0aG9kLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICAgICA6IChyZXF1ZXN0Qm9keSAhPT0gbnVsbCA/ICdQT1NUJyA6ICdHRVQnKTtcblxuICAgICAgICAgICAgaWYgKHJlcXVlc3RCb2R5ICE9PSBudWxsICYmIG1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdBIHJlcXVlc3QgYm9keSBwYXJhbWV0ZXIgY2Fubm90IGJlIHNwZWNpZmllZCBmb3IgYSBHRVQgcmVxdWVzdCcpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERvd25sb2FkIHBhdGggKFBERiAvIEV4Y2VsKSBpcyBHRVQtb25seSBhbmQgdXNlcyBhIHNlcGFyYXRlXG4gICAgICAgICAgICAvLyBmZXRjaCBzaGFwZSAoYmxvYiBoYW5kbGluZyk7IGJyYW5jaCBmaXJzdC5cbiAgICAgICAgICAgIGlmIChtZXRob2QgPT09ICdHRVQnICYmIChjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgY29udGVudFR5cGUgPT09ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hXaXRoQ3VzdG9tQ29uZmlnKHtcbiAgICAgICAgICAgICAgICAgICAgdmlld0lkOiByZXF1ZXN0LnZpZXdJZCxcbiAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlVHlwZTogcmVxdWVzdC5zZXJ2aWNlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyZTogcmVxdWVzdC5zZWN1cmUsXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgICAgIGRvd25sb2FkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTaW5nbGUgZGlzcGF0Y2ggZm9yIEdFVCAvIFBPU1QgLyBQVVQgLyBQQVRDSCAvIERFTEVURSAvIGV0Yy5cbiAgICAgICAgICAgIC8vIEJvZHkgaXMgcGFzc2VkIHRocm91Z2g7IHRoZSBmZXRjaCBsYXllciBkcm9wcyBpdCBmb3IgdmVyYnMgdGhhdFxuICAgICAgICAgICAgLy8gZm9yYmlkIG9uZS4gREVMRVRFIHdpdGggYSBib2R5IGlzIHVuY29tbW9uIGJ1dCBwZXJtaXR0ZWQgYnlcbiAgICAgICAgICAgIC8vIEhUVFAg4oCUIHdlIGRvbid0IGJsb2NrIGl0IGhlcmUuXG4gICAgICAgICAgICAvLyBTZWN1cmUgYnkgZGVmYXVsdDogYXR0YWNoIHRoZSBzZXNzaW9uIHRva2VuIHdoZW5ldmVyIG9uZSBleGlzdHMuXG4gICAgICAgICAgICAvLyBObyBVUkwgc3BlY2lhbC1jYXNpbmcg4oCUIHByZS1hdXRoIHN1cmZhY2VzICh2aWV3L3NlY3VyaXR5LyogbG9naW4sXG4gICAgICAgICAgICAvLyByZWdpc3RlciwgcmVzZXQpIGNsZWFyIHNlc3Npb25TdG9yYWdlIG9uIG1vdW50LCBzbyBub3RoaW5nIGlzXG4gICAgICAgICAgICAvLyBhdHRhY2hlZCBvbiB0aG9zZSBzY3JlZW5zLiBgc2VjdXJlYCBoZXJlIG9ubHkgcHJldmVudHMgbGVha2luZyBhXG4gICAgICAgICAgICAvLyB0b2tlbiB0byBhIHBsYWluLWh0dHAgZW5kcG9pbnQ7IHRoZSBhdHRhY2htZW50IGl0c2VsZiBpc1xuICAgICAgICAgICAgLy8gcHJlc2VuY2UtYmFzZWQgaW4gZmV0Y2hXaXRoQ3VzdG9tQ29uZmlnLCBzbyBhIHN0YWxlL2VtcHR5IHRva2VuIGlzXG4gICAgICAgICAgICAvLyBuZXZlciBzZW50LlxuICAgICAgICAgICAgdGhpcy5mZXRjaFdpdGhDdXN0b21Db25maWcoe1xuICAgICAgICAgICAgICAgIHZpZXdJZDogcmVxdWVzdC52aWV3SWQsXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIHNlcnZpY2VUeXBlOiByZXF1ZXN0LnNlcnZpY2UudHlwZSxcbiAgICAgICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICAgICAgc2VjdXJlOiAhc2VydmljZS51cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpLFxuICAgICAgICAgICAgICAgIGJvZHk6IHJlcXVlc3RCb2R5LFxuICAgICAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgdHJhY2s6IHJlcXVlc3QudHJhY2sgIT09IGZhbHNlXG4gICAgICAgICAgICB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBwYXRoID0gVXRpbHMuZ2V0UHJvcGVydHlDaGFpblBhdGgocmVxdWVzdC5yZXR1cm5WYWx1ZUJpbmRpbmcpO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHBhdGgudmFsdWVPYmplY3QpICYmICFVdGlscy5pc051bGwocGF0aC5wcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aC52YWx1ZU9iamVjdFtwYXRoLnByb3BlcnR5XSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5wcm9jZXNzU3VjY2Vzc2Z1bFJlc3BvbnNlRGF0YShyZXF1ZXN0LmNvbXBvbmVudCwgcmVzcG9uc2UsIHJlcXVlc3Qudmlld0lkLCByZXF1ZXN0LnN1Y2Nlc3NNZXNzYWdlKSk7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbnZva2VScGMocmVxdWVzdCkge1xuICAgICAgICBsZXQgcnBjUmVxdWVzdCA9IHt9O1xuICAgICAgICBycGNSZXF1ZXN0LmlkID0gcmVxdWVzdC52aWV3SWQ7XG5cbiAgICAgICAgbGV0IHNwbGl0ID0gcmVxdWVzdC5zZXJ2aWNlLnNlcnZpY2VJZC5zcGxpdCgnLicpO1xuICAgICAgICBycGNSZXF1ZXN0LnNlcnZpY2UgPSBzcGxpdFsxXTtcbiAgICAgICAgcnBjUmVxdWVzdC5tZXRob2QgPSByZXF1ZXN0LnNlcnZpY2UucHJvY2VkdXJlTmFtZTtcblxuICAgICAgICBsZXQgbW9kdWxlID0gc3BsaXRbMF0udG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBsZXQgaGVhZGVycyA9IHt9O1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocmVxdWVzdC5zZXJ2aWNlLnBhcmFtZXRlcnMpICYmIHJlcXVlc3Quc2VydmljZS5wYXJhbWV0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBycGNSZXF1ZXN0LnBhcmFtZXRlcnMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlcXVlc3Quc2VydmljZS5wYXJhbWV0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJDb25maWcgPSByZXF1ZXN0LnNlcnZpY2UucGFyYW1ldGVyc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtZXRlciA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIubmFtZSA9IHBhcmFtZXRlckNvbmZpZy5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuaW5kZXggPSBwYXJhbWV0ZXJDb25maWcuaW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbCA9IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlUGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyQ29uZmlnLCByZXF1ZXN0LmV2ZW50ID8gcmVxdWVzdC5ldmVudC5kYXRhIDogbnVsbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlID0gdmFsLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnR5cGUgPSB2YWwudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW1ldGVyLnZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocGFyYW1ldGVyLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIudHlwZSA9ICdTdHJpbmcnO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHZhbGlkYXRvciBsaXZlcyBvbiB0aGUgdmlldyBjb25maWcgKHBhcmFtZXRlckNvbmZpZyksIE5PVCBvbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gZnJlc2hseS1idWlsdCBvdXRib3VuZCBgcGFyYW1ldGVyYCBvYmplY3Qg4oCUIHJlYWRpbmcgcGFyYW1ldGVyLnZhbGlkYXRvclxuICAgICAgICAgICAgICAgICAgICAvLyBoZXJlIGFsd2F5cyBzYXcgdW5kZWZpbmVkLCBzbyByZXF1aXJlZC9udWxsYWJsZSBSUEMgcGFyYW1zIHdlcmUgbmV2ZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5mb3JjZWQgYW5kIHRoZSBjYWxsIGZpcmVkIHdpdGggYSBudWxsIHZhbHVlLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwYXJhbWV0ZXJDb25maWcudmFsaWRhdG9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgKChwYXJhbWV0ZXJDb25maWcudmFsaWRhdG9yLm51bGxhYmxlICYmICFVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcmFtZXRlckNvbmZpZy52YWxpZGF0b3IubnVsbGFibGUsIHBhcmFtZXRlci5uYW1lKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyYW1ldGVyQ29uZmlnLnZhbGlkYXRvci5yZXF1aXJlZCAmJiBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcmFtZXRlckNvbmZpZy52YWxpZGF0b3IucmVxdWlyZWQsIHBhcmFtZXRlci5uYW1lKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHRoaXMuaXNQYXJhbVZhbHVlTnVsbChwYXJhbWV0ZXIudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVHlwZTogJ0lOVkFMSURfUEFSQU1FVEVSJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJDb25maWcuaHR0cFBhcmFtZXRlclR5cGUgPT09ICdIRUFERVInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwYXJhbWV0ZXIudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgPSB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbcGFyYW1ldGVyLm5hbWVdID0gcGFyYW1ldGVyLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcnBjUmVxdWVzdC5wYXJhbWV0ZXJzLnB1c2gocGFyYW1ldGVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mZXRjaFdpdGhDdXN0b21Db25maWcoe1xuICAgICAgICAgICAgICAgIHZpZXdJZDogcmVxdWVzdC52aWV3SWQsXG4gICAgICAgICAgICAgICAgdXJsOiBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy8nICsgbW9kdWxlICsgJy9hcGkvdjEvcnBjL2ludm9rZScsXG4gICAgICAgICAgICAgICAgc2VydmljZVR5cGU6IHJlcXVlc3Quc2VydmljZS50eXBlLFxuICAgICAgICAgICAgICAgIHNlY3VyZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICBib2R5OiBycGNSZXF1ZXN0LFxuICAgICAgICAgICAgICAgIHRyYWNrOiByZXF1ZXN0LnRyYWNrICE9PSBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnJldHVyblZhbHVlQmluZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhdGggPSBVdGlscy5nZXRQcm9wZXJ0eUNoYWluUGF0aChyZXF1ZXN0LnJldHVyblZhbHVlQmluZGluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwYXRoLnZhbHVlT2JqZWN0KSAmJiAhVXRpbHMuaXNOdWxsKHBhdGgucHJvcGVydHkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC52YWx1ZU9iamVjdFtwYXRoLnByb3BlcnR5XSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnByb2Nlc3NTdWNjZXNzZnVsUmVzcG9uc2VEYXRhKHJlcXVlc3QuY29tcG9uZW50LCByZXNwb25zZSwgcmVxdWVzdC52aWV3SWQsIHJlcXVlc3Quc3VjY2Vzc01lc3NhZ2UpKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGZldGNoV2l0aEN1c3RvbUNvbmZpZyhyZXF1ZXN0KSB7XG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzVG9rZW4nKTtcbiAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2lkVG9rZW4nKTtcblxuICAgICAgICBsZXQgZGF0YSA9IHJlcXVlc3QuYm9keSA/IChyZXF1ZXN0LmJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkgPyByZXF1ZXN0LmJvZHkgOiBKU09OLnN0cmluZ2lmeShyZXF1ZXN0LmJvZHkpIDogbnVsbDtcbiAgICAgICAgbGV0IGZldGNoQ29uZmlnID0gcmVxdWVzdC5jb25maWc7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZmV0Y2hDb25maWcpKSB7XG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChyZXF1ZXN0LnNlY3VyZSkgfHwgcmVxdWVzdC5zZWN1cmUgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFV0aWxzLmlzTnVsbChyZXF1ZXN0Lm1ldGhvZCkgPyAnR0VUJyA6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogcmVxdWVzdC5jb250ZW50VHlwZSA/IHJlcXVlc3QuY29udGVudFR5cGUgOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VjdXJlIGJ5IGRlZmF1bHQsIHByZXNlbmNlLWJhc2VkOiBhdHRhY2ggYXV0aCBPTkxZIHdoZW4gYVxuICAgICAgICAgICAgICAgICAgICAvLyBzZXNzaW9uIGV4aXN0cy4gUHJlLWF1dGggc2NyZWVucyAodmlldy9zZWN1cml0eS8qKSBjbGVhclxuICAgICAgICAgICAgICAgICAgICAvLyBzZXNzaW9uU3RvcmFnZSBvbiBtb3VudCwgc28gbm90aGluZyBpcyBhdHRhY2hlZCB0aGVyZSDigJQgYW5kXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIG5ldmVyIGVtaXQgJ0JlYXJlciBudWxsJyBvciBhIHN0YWxlIHRva2VuLlxuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXNzVG9rZW4pIGZldGNoQ29uZmlnLmhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaWRUb2tlbikgZmV0Y2hDb25maWcuaGVhZGVyc1snaWRUb2tlbiddID0gaWRUb2tlbjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmZXRjaENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogVXRpbHMuaXNOdWxsKHJlcXVlc3QubWV0aG9kKSA/ICdHRVQnIDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiByZXF1ZXN0LmNvbnRlbnRUeXBlID8gcmVxdWVzdC5jb250ZW50VHlwZSA6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogcmVxdWVzdC5hY2NlcHQgPyByZXF1ZXN0LmFjY2VwdCA6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoJ3Jlc3QnID09PSByZXF1ZXN0LnNlcnZpY2VUeXBlICYmICEocmVxdWVzdC5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZldGNoQ29uZmlnLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gcmVxdWVzdC5jb250ZW50VHlwZSA/IHJlcXVlc3QuY29udGVudFR5cGUgOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKChyZXF1ZXN0LmJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZldGNoQ29uZmlnLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgICAgICAgICAgICAgICAgICBmZXRjaENvbmZpZy5oZWFkZXJzWydBY2NlcHQnXSA9IHJlcXVlc3QuYWNjZXB0ID8gcmVxdWVzdC5hY2NlcHQgOiAnYXBwbGljYXRpb24vanNvbic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVxdWVzdC5jb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgIGZldGNoQ29uZmlnLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gcmVxdWVzdC5jb250ZW50VHlwZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHVybCA9IHJlcXVlc3QudXJsO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3QuZG93bmxvYWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9ICc/JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gJyYnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vdXJsICs9ICdhY2Nlc3NfdG9rZW49JyArIGFjY2Vzc1Rva2VuO1xuICAgICAgICAgICAgICAgIC8vdXJsICs9ICcmaWRUb2tlbj0nICsgaWRUb2tlbjtcbiAgICAgICAgICAgICAgICB1cmwgKz0gJyZ0aGVtZVByaW1hcnlDb2xvcj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvblByaW1hcnlDb2xvcigpKTtcbiAgICAgICAgICAgICAgICB1cmwgKz0gJyZ0aGVtZVNlY29uZGFyeUNvbG9yPScgKyBlbmNvZGVVUklDb21wb25lbnQoYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uU2Vjb25kYXJ5Q29sb3IoKSk7XG5cbiAgICAgICAgICAgICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBpZFRva2VuXG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpLnRoZW4oZXJyb3JEYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciAke3Jlc3BvbnNlLnN0YXR1c306ICR7ZXJyb3JEYXRhLm1lc3NhZ2UgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRlbnREaXNwb3NpdGlvbiA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiQ29udGVudC1EaXNwb3NpdGlvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWxlbmFtZSA9IFwiZG93bmxvYWRlZC1maWxlXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250ZW50RGlzcG9zaXRpb24gJiYgY29udGVudERpc3Bvc2l0aW9uLmluY2x1ZGVzKFwiZmlsZW5hbWU9XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBjb250ZW50RGlzcG9zaXRpb24uc3BsaXQoXCJmaWxlbmFtZT1cIilbMV0udHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucmVwbGFjZSgvW1wiJ10vZywgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5ibG9iKCkudGhlbihibG9iID0+ICh7YmxvYiwgZmlsZW5hbWV9KSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCh7YmxvYiwgZmlsZW5hbWV9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYS5ocmVmID0gdXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChlcnJvciA9PiBjb25zb2xlLmVycm9yKFwiRG93bmxvYWQgZmFpbGVkOlwiLCBlcnJvcikpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHJlcXVlc3QudHJhY2spIHx8IHJlcXVlc3QudHJhY2sgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tQcm9taXNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5leGVjdXRlRmV0Y2godXJsLCBmZXRjaENvbmZpZywgcmVxdWVzdC52aWV3SWQsIHJlcXVlc3Quc3VjY2Vzc01lc3NhZ2UpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leGVjdXRlRmV0Y2godXJsLCBmZXRjaENvbmZpZywgcmVxdWVzdC52aWV3SWQsIHJlcXVlc3Quc3VjY2Vzc01lc3NhZ2UpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgZXhlY3V0ZUZldGNoKHVybCwgZmV0Y2hDb25maWcsIHZpZXdJZCwgc3VjY2Vzc01lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGZldGNoKGVuY29kZVVSSSh1cmwpLCBmZXRjaENvbmZpZylcbiAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRoaXMucHJvY2Vzc1N1Y2Nlc3NmdWxSZXNwb25zZURhdGEobnVsbCwgZGF0YSwgdmlld0lkLCBzdWNjZXNzTWVzc2FnZSkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnN0YXR1cyA9PT0gNDAxICYmICF1cmwuZW5kc1dpdGgoJy9sb2dvdXQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByb2Nlc3NTdWNjZXNzZnVsUmVzcG9uc2VEYXRhKGNvbXBvbmVudCwgZGF0YSwgdmlld0lkLCBzdWNjZXNzTWVzc2FnZSkge1xuICAgICAgICBsZXQgcmVzcG9uc2U7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyB8fCBVdGlscy5pc051bGwoZGF0YSkgfHwgZGF0YS50b1N0cmluZygpXG4gICAgICAgICAgICAudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVzcG9uc2UgPSBkYXRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICB9IGNhdGNoIChpZ25vcmVkKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBkYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmRhdGFUeXBlID09PSAnbWVzc2FnZScpIHtcbiAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIHZpZXdJZCwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuTUVTU0FHRV9BUlJJVkVELCBldmVudCk7XG5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBldmVudCA9IG5ldyBFdmVudChjb21wb25lbnQsIHZpZXdJZCwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFVdGlscy5pc051bGwoc3VjY2Vzc01lc3NhZ2UpKSB7XG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ1NVQ0NFU1MnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGFwcGxpY2F0aW9uTWFuYWdlci5wb3B1bGF0ZVRlbXBsYXRlKHN1Y2Nlc3NNZXNzYWdlLCByZXNwb25zZSlcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIHZpZXdJZCwgbWVzc2FnZSk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcblxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGV2ZW50ID0gbmV3IEV2ZW50KGNvbXBvbmVudCwgdmlld0lkLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IFJlc3RTZXJ2aWNlKCk7XG5cbmV4cG9ydCBjb25zdCBpbnZva2VScGMgPSAocmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBpbnN0YW5jZS5pbnZva2VScGMocmVxdWVzdCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW52b2tlUmVzdCA9IChyZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIGluc3RhbmNlLmludm9rZVJlc3QocmVxdWVzdCk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxvQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUE0RCxTQUFBRCx1QkFBQVMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBZixDQUFBLGFBQUFJLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxD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
|
|
@@ -24,7 +24,7 @@ const AlertBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
24
24
|
let defaultAction = {
|
|
25
25
|
actionType: 'script',
|
|
26
26
|
script: {
|
|
27
|
-
lines: ["if('".concat(props.viewId, "' === $event.viewId) {"), " @#{".concat(props.config.id, "}.message = $event.data.message"), " @#{".concat(props.config.id, "}.variant = $event.data.messageType === 'ERROR' ? 'danger' : $event.data.messageType === 'WARN' ? 'warning' : $event.data.messageType === 'SUCCESS' ? 'success' : 'info'"), "}"]
|
|
27
|
+
lines: ["if('".concat(props.viewId, "' === $event.viewId && !isNull(@#{").concat(props.config.id, "})) {"), " @#{".concat(props.config.id, "}.message = $event.data.message"), " @#{".concat(props.config.id, "}.variant = $event.data.messageType === 'ERROR' ? 'danger' : $event.data.messageType === 'WARN' ? 'warning' : $event.data.messageType === 'SUCCESS' ? 'success' : 'info'"), "}"]
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
if (_Utils.default.isNull(eventHandlingConfig.subscriptions)) {
|
|
@@ -146,4 +146,4 @@ const AlertBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
146
146
|
}, message))) : null;
|
|
147
147
|
});
|
|
148
148
|
var _default = exports.default = AlertBar;
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BbGVydCIsIl9FdmVudFR5cGUiLCJfT2JzZXJ2YWJsZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkFsZXJ0QmFyIiwiUmVhY3QiLCJtZW1vIiwicHJvcHMiLCJfcHJvcHMkY29uZmlnIiwibWVzc2FnZSIsInNldE1lc3NhZ2UiLCJ1c2VTdGF0ZSIsImNvbmZpZyIsInZhcmlhbnQiLCJzZXRWYXJpYW50IiwidmlzaWJsZSIsInNldFZpc2libGUiLCJwbGFjZW1lbnQiLCJhdHRyaWJ1dGVzIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImV2ZW50SGFuZGxpbmdDb25maWciLCJpc051bGwiLCJkZWZhdWx0QWN0aW9uIiwiYWN0aW9uVHlwZSIsInNjcmlwdCIsImxpbmVzIiwiY29uY2F0IiwiaWQiLCJzdWJzY3JpcHRpb25zIiwicHVibGlzaGVyIiwiZXZlbnRUeXBlIiwiRXZlbnRUeXBlIiwiTUVTU0FHRV9BUlJJVkVEIiwiYWN0aW9ucyIsInN1YnNjcmlwdGlvbiIsImxlbmd0aCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwiZnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInRpbWVvdXQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJjbG9zZUFsZXJ0IiwiY2xlYXJUaW1lb3V0IiwiZ2V0Q2hpbGRyZW4iLCJvdmVybGF5U3R5bGUiLCJwb3NpdGlvbiIsInRvcCIsImxlZnQiLCJ0cmFuc2Zvcm0iLCJ3aWR0aCIsIm1heFdpZHRoIiwiekluZGV4IiwicG9pbnRlckV2ZW50cyIsInN0cmljdFN0eWxlIiwicGFkZGluZyIsImhlaWdodCIsImNvbnRhaW5lclN0eWxlIiwibWVzc2FnZVN0eWxlIiwiY29sb3IiLCJ3aGl0ZVNwYWNlIiwid29yZEJyZWFrIiwibWFyZ2luIiwib3ZlcmZsb3ciLCJ0ZXh0T3ZlcmZsb3ciLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJtZXJnZVN0eWxlcyIsImNsYXNzTmFtZSIsIm9uQ2xvc2UiLCJkaXNtaXNzaWJsZSIsImJveFNoYWRvdyIsInRpdGxlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL0FsZXJ0QmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcbmltcG9ydCBBbGVydCBmcm9tICdyZWFjdC1ib290c3RyYXAvQWxlcnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCAnLi9BbGVydEJhci5jc3MnO1xuXG5jb25zdCBBbGVydEJhciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG5cbiAgICBjb25zdCBbbWVzc2FnZSwgc2V0TWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcubWVzc2FnZSk7XG4gICAgY29uc3QgW3ZhcmlhbnQsIHNldFZhcmlhbnRdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuY29uZmlnLnZhcmlhbnQgfHwgJ2luZm8nKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBwbGFjZW1lbnQgPSBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnBsYWNlbWVudCB8fCBcIm92ZXJsYXlcIjtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcblxuICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBsZXQgZXZlbnRIYW5kbGluZ0NvbmZpZyA9IFV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZykgPyB7fSA6IHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnO1xuXG4gICAgICAgIGxldCBkZWZhdWx0QWN0aW9uID0ge1xuICAgICAgICAgICAgYWN0aW9uVHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICBzY3JpcHQ6IHtcbiAgICAgICAgICAgICAgICBsaW5lczogW1xuICAgICAgICAgICAgICAgICAgICBgaWYoJyR7cHJvcHMudmlld0lkfScgPT09ICRldmVudC52aWV3SWQpIHtgLFxuICAgICAgICAgICAgICAgICAgICBgICAgQCN7JHtwcm9wcy5jb25maWcuaWR9fS5tZXNzYWdlID0gJGV2ZW50LmRhdGEubWVzc2FnZWAsXG4gICAgICAgICAgICAgICAgICAgIGAgICBAI3ske3Byb3BzLmNvbmZpZy5pZH19LnZhcmlhbnQgPSAkZXZlbnQuZGF0YS5tZXNzYWdlVHlwZSA9PT0gJ0VSUk9SJyA/ICdkYW5nZXInIDogJGV2ZW50LmRhdGEubWVzc2FnZVR5cGUgPT09ICdXQVJOJyA/ICd3YXJuaW5nJyA6ICRldmVudC5kYXRhLm1lc3NhZ2VUeXBlID09PSAnU1VDQ0VTUycgPyAnc3VjY2VzcycgOiAnaW5mbydgLFxuICAgICAgICAgICAgICAgICAgICBgfWBcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgICAgICBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMgPSBbe1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hlcjogJ2FwcGxpY2F0aW9uTWFuYWdlcicsXG4gICAgICAgICAgICAgICAgZXZlbnRUeXBlOiBFdmVudFR5cGUuTUVTU0FHRV9BUlJJVkVELFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtkZWZhdWx0QWN0aW9uXVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHN1YnNjcmlwdGlvbi5hY3Rpb25zKSB8fCBzdWJzY3JpcHRpb24uYWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmFjdGlvbnMgPSBbZGVmYXVsdEFjdGlvbl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMoZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyhwcm9wcy5oYW5kbGUpO1xuICAgICAgICB9O1xuXG4gICAgfSwgW10pO1xuXG4gICAgLypcbiAgICAgICBTaG93IGFuaW1hdGlvbiB3aGVuIG1lc3NhZ2UgYXJyaXZlc1xuICAgICAgIChoaWRkZW4gZmlyc3QsIHRoZW4gdmlzaWJsZSBuZXh0IGZyYW1lKVxuICAgICovXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCBmcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUoZnJhbWUpO1xuICAgICAgICB9XG4gICAgfSwgW21lc3NhZ2VdKTtcblxuICAgIC8qXG4gICAgICAgQXV0byBjbG9zZSBub24tZXJyb3IgbWVzc2FnZXNcbiAgICAqL1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG5cbiAgICAgICAgaWYgKCFtZXNzYWdlKSByZXR1cm47XG4gICAgICAgIGlmICh2YXJpYW50ID09PSBcImRhbmdlclwiKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgdGltZW91dCA9IHZhcmlhbnQgPT09IFwid2FybmluZ1wiID8gNjAwMCA6IDMwMDA7XG5cbiAgICAgICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlQWxlcnQoKTtcbiAgICAgICAgfSwgdGltZW91dCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lcik7XG5cbiAgICB9LCBbbWVzc2FnZSwgdmFyaWFudF0pO1xuXG4gICAgY29uc3QgY2xvc2VBbGVydCA9ICgpID0+IHtcbiAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG5cbiAgICAgICAgLy8gYWxsb3cgZmFkZS1vdXQgYW5pbWF0aW9uIHRvIGNvbXBsZXRlXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0TWVzc2FnZShudWxsKTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IG1lc3NhZ2UobWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHNldE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZhcmlhbnQodmFyaWFudCkge1xuICAgICAgICAgICAgICAgIHNldFZhcmlhbnQodmFyaWFudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IFtdXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IG92ZXJsYXlTdHlsZSA9IHtcbiAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgdG9wOiBcImNhbGModmFyKC0tdmlldy1oZWFkZXItaCkgKyAyNHB4KVwiLFxuICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxuICAgICAgICB3aWR0aDogXCJjYWxjKDEwMCUgLSAxMjhweClcIixcbiAgICAgICAgbWF4V2lkdGg6IFwiNjBkdndcIixcbiAgICAgICAgekluZGV4OiAxMDUwLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIlxuICAgIH07XG5cbiAgICBjb25zdCBzdHJpY3RTdHlsZSA9IHtcbiAgICAgICAgcGFkZGluZzogXCIwIDMycHhcIixcbiAgICAgICAgaGVpZ2h0OiBcImF1dG9cIlxuICAgIH07XG5cbiAgICBjb25zdCBjb250YWluZXJTdHlsZSA9IHBsYWNlbWVudCA9PT0gXCJzdHJpY3RcIlxuICAgICAgICA/IHN0cmljdFN0eWxlXG4gICAgICAgIDogb3ZlcmxheVN0eWxlO1xuXG4gICAgLy8gU3RyaWN0IHBsYWNlbWVudCBzaXRzIGlubGluZSB3aXRoIHN1cnJvdW5kaW5nIGNvbnRlbnQgKGUuZy4gaW5zaWRlIGFcbiAgICAvLyBzdGVwcGVyLXRpdGxlLWJhciBsYXlvdXQgYWJvdmUgYSBjYXJkKSBhbmQgbXVzdCBncm93IHRvIGZpdCBhIGxvbmdcbiAgICAvLyBtZXNzYWdlIOKAlCBvdGhlcndpc2UgdXNlcnMgc2VlIFwiV2UncmUgdW5hYmxlIHRvIHZlcmlmeSB5b3VyIENTRC4uLlwiXG4gICAgLy8gdHJ1bmNhdGVkIGF0IHRoZSBmaXJzdCBlbGxpcHNpcy4gT3ZlcmxheSBwbGFjZW1lbnQgZmxvYXRzIGFuZCBzdGF5c1xuICAgIC8vIHNpbmdsZS1saW5lIHNvIGl0IGRvZXNuJ3QgcHVzaCBwYWdlIGxheW91dCBhcm91bmQuXG4gICAgY29uc3QgbWVzc2FnZVN0eWxlID0gcGxhY2VtZW50ID09PSBcInN0cmljdFwiXG4gICAgICAgID8ge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDAuOSknLFxuICAgICAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gICAgICAgICAgICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbiAgICAgICAgICAgIG1hcmdpbjogMFxuICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDAuOSknLFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgICAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICAgICAgICBtYXhXaWR0aDogJ2NhbGMoMTAwJSAtIDMycHgpJyxcbiAgICAgICAgICAgIG1hcmdpbjogMFxuICAgICAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpID9cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKGNvbnRhaW5lclN0eWxlLCBwcm9wcy5jb25maWcpfT5cblxuICAgICAgICAgICAgICAgIHttZXNzYWdlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BhbGVydC1mYWRlICR7dmlzaWJsZSA/IFwiYWxlcnQtc2hvd1wiIDogXCJhbGVydC1oaWRlXCJ9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e3ZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXtjbG9zZUFsZXJ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzbWlzc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnMCA2cHggMTZweCByZ2JhKDAsMCwwLDAuMTgpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17bWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17bWVzc2FnZVN0eWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgOiBudWxsXG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBBbGVydEJhcjsiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElB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
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BbGVydCIsIl9FdmVudFR5cGUiLCJfT2JzZXJ2YWJsZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkFsZXJ0QmFyIiwiUmVhY3QiLCJtZW1vIiwicHJvcHMiLCJfcHJvcHMkY29uZmlnIiwibWVzc2FnZSIsInNldE1lc3NhZ2UiLCJ1c2VTdGF0ZSIsImNvbmZpZyIsInZhcmlhbnQiLCJzZXRWYXJpYW50IiwidmlzaWJsZSIsInNldFZpc2libGUiLCJwbGFjZW1lbnQiLCJhdHRyaWJ1dGVzIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImV2ZW50SGFuZGxpbmdDb25maWciLCJpc051bGwiLCJkZWZhdWx0QWN0aW9uIiwiYWN0aW9uVHlwZSIsInNjcmlwdCIsImxpbmVzIiwiY29uY2F0IiwiaWQiLCJzdWJzY3JpcHRpb25zIiwicHVibGlzaGVyIiwiZXZlbnRUeXBlIiwiRXZlbnRUeXBlIiwiTUVTU0FHRV9BUlJJVkVEIiwiYWN0aW9ucyIsInN1YnNjcmlwdGlvbiIsImxlbmd0aCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwiZnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInRpbWVvdXQiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJjbG9zZUFsZXJ0IiwiY2xlYXJUaW1lb3V0IiwiZ2V0Q2hpbGRyZW4iLCJvdmVybGF5U3R5bGUiLCJwb3NpdGlvbiIsInRvcCIsImxlZnQiLCJ0cmFuc2Zvcm0iLCJ3aWR0aCIsIm1heFdpZHRoIiwiekluZGV4IiwicG9pbnRlckV2ZW50cyIsInN0cmljdFN0eWxlIiwicGFkZGluZyIsImhlaWdodCIsImNvbnRhaW5lclN0eWxlIiwibWVzc2FnZVN0eWxlIiwiY29sb3IiLCJ3aGl0ZVNwYWNlIiwid29yZEJyZWFrIiwibWFyZ2luIiwib3ZlcmZsb3ciLCJ0ZXh0T3ZlcmZsb3ciLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJtZXJnZVN0eWxlcyIsImNsYXNzTmFtZSIsIm9uQ2xvc2UiLCJkaXNtaXNzaWJsZSIsImJveFNoYWRvdyIsInRpdGxlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL0FsZXJ0QmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcbmltcG9ydCBBbGVydCBmcm9tICdyZWFjdC1ib290c3RyYXAvQWxlcnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCAnLi9BbGVydEJhci5jc3MnO1xuXG5jb25zdCBBbGVydEJhciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG5cbiAgICBjb25zdCBbbWVzc2FnZSwgc2V0TWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcubWVzc2FnZSk7XG4gICAgY29uc3QgW3ZhcmlhbnQsIHNldFZhcmlhbnRdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuY29uZmlnLnZhcmlhbnQgfHwgJ2luZm8nKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBwbGFjZW1lbnQgPSBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnBsYWNlbWVudCB8fCBcIm92ZXJsYXlcIjtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcblxuICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBsZXQgZXZlbnRIYW5kbGluZ0NvbmZpZyA9IFV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZykgPyB7fSA6IHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnO1xuXG4gICAgICAgIGxldCBkZWZhdWx0QWN0aW9uID0ge1xuICAgICAgICAgICAgYWN0aW9uVHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICBzY3JpcHQ6IHtcbiAgICAgICAgICAgICAgICBsaW5lczogW1xuICAgICAgICAgICAgICAgICAgICBgaWYoJyR7cHJvcHMudmlld0lkfScgPT09ICRldmVudC52aWV3SWQgJiYgIWlzTnVsbChAI3ske3Byb3BzLmNvbmZpZy5pZH19KSkge2AsXG4gICAgICAgICAgICAgICAgICAgIGAgICBAI3ske3Byb3BzLmNvbmZpZy5pZH19Lm1lc3NhZ2UgPSAkZXZlbnQuZGF0YS5tZXNzYWdlYCxcbiAgICAgICAgICAgICAgICAgICAgYCAgIEAjeyR7cHJvcHMuY29uZmlnLmlkfX0udmFyaWFudCA9ICRldmVudC5kYXRhLm1lc3NhZ2VUeXBlID09PSAnRVJST1InID8gJ2RhbmdlcicgOiAkZXZlbnQuZGF0YS5tZXNzYWdlVHlwZSA9PT0gJ1dBUk4nID8gJ3dhcm5pbmcnIDogJGV2ZW50LmRhdGEubWVzc2FnZVR5cGUgPT09ICdTVUNDRVNTJyA/ICdzdWNjZXNzJyA6ICdpbmZvJ2AsXG4gICAgICAgICAgICAgICAgICAgIGB9YFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucykpIHtcbiAgICAgICAgICAgIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucyA9IFt7XG4gICAgICAgICAgICAgICAgcHVibGlzaGVyOiAnYXBwbGljYXRpb25NYW5hZ2VyJyxcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW2RlZmF1bHRBY3Rpb25dXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoc3Vic2NyaXB0aW9uLmFjdGlvbnMpIHx8IHN1YnNjcmlwdGlvbi5hY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24uYWN0aW9ucyA9IFtkZWZhdWx0QWN0aW9uXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzKHByb3BzLmhhbmRsZSk7XG4gICAgICAgIH07XG5cbiAgICB9LCBbXSk7XG5cbiAgICAvKlxuICAgICAgIFNob3cgYW5pbWF0aW9uIHdoZW4gbWVzc2FnZSBhcnJpdmVzXG4gICAgICAgKGhpZGRlbiBmaXJzdCwgdGhlbiB2aXNpYmxlIG5leHQgZnJhbWUpXG4gICAgKi9cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKHRydWUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZSk7XG4gICAgICAgIH1cbiAgICB9LCBbbWVzc2FnZV0pO1xuXG4gICAgLypcbiAgICAgICBBdXRvIGNsb3NlIG5vbi1lcnJvciBtZXNzYWdlc1xuICAgICovXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcblxuICAgICAgICBpZiAoIW1lc3NhZ2UpIHJldHVybjtcbiAgICAgICAgaWYgKHZhcmlhbnQgPT09IFwiZGFuZ2VyXCIpIHJldHVybjtcblxuICAgICAgICBjb25zdCB0aW1lb3V0ID0gdmFyaWFudCA9PT0gXCJ3YXJuaW5nXCIgPyA2MDAwIDogMzAwMDtcblxuICAgICAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY2xvc2VBbGVydCgpO1xuICAgICAgICB9LCB0aW1lb3V0KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVyKTtcblxuICAgIH0sIFttZXNzYWdlLCB2YXJpYW50XSk7XG5cbiAgICBjb25zdCBjbG9zZUFsZXJ0ID0gKCkgPT4ge1xuICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTtcblxuICAgICAgICAvLyBhbGxvdyBmYWRlLW91dCBhbmltYXRpb24gdG8gY29tcGxldGVcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzZXRNZXNzYWdlKG51bGwpO1xuICAgICAgICB9LCAyNTApO1xuICAgIH07XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgbWVzc2FnZShtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgc2V0TWVzc2FnZShtZXNzYWdlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmFyaWFudCh2YXJpYW50KSB7XG4gICAgICAgICAgICAgICAgc2V0VmFyaWFudCh2YXJpYW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4gW11cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb3ZlcmxheVN0eWxlID0ge1xuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IFwiY2FsYyh2YXIoLS12aWV3LWhlYWRlci1oKSArIDI0cHgpXCIsXG4gICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKC01MCUpXCIsXG4gICAgICAgIHdpZHRoOiBcImNhbGMoMTAwJSAtIDEyOHB4KVwiLFxuICAgICAgICBtYXhXaWR0aDogXCI2MGR2d1wiLFxuICAgICAgICB6SW5kZXg6IDEwNTAsXG4gICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiXG4gICAgfTtcblxuICAgIGNvbnN0IHN0cmljdFN0eWxlID0ge1xuICAgICAgICBwYWRkaW5nOiBcIjAgMzJweFwiLFxuICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbnRhaW5lclN0eWxlID0gcGxhY2VtZW50ID09PSBcInN0cmljdFwiXG4gICAgICAgID8gc3RyaWN0U3R5bGVcbiAgICAgICAgOiBvdmVybGF5U3R5bGU7XG5cbiAgICAvLyBTdHJpY3QgcGxhY2VtZW50IHNpdHMgaW5saW5lIHdpdGggc3Vycm91bmRpbmcgY29udGVudCAoZS5nLiBpbnNpZGUgYVxuICAgIC8vIHN0ZXBwZXItdGl0bGUtYmFyIGxheW91dCBhYm92ZSBhIGNhcmQpIGFuZCBtdXN0IGdyb3cgdG8gZml0IGEgbG9uZ1xuICAgIC8vIG1lc3NhZ2Ug4oCUIG90aGVyd2lzZSB1c2VycyBzZWUgXCJXZSdyZSB1bmFibGUgdG8gdmVyaWZ5IHlvdXIgQ1NELi4uXCJcbiAgICAvLyB0cnVuY2F0ZWQgYXQgdGhlIGZpcnN0IGVsbGlwc2lzLiBPdmVybGF5IHBsYWNlbWVudCBmbG9hdHMgYW5kIHN0YXlzXG4gICAgLy8gc2luZ2xlLWxpbmUgc28gaXQgZG9lc24ndCBwdXNoIHBhZ2UgbGF5b3V0IGFyb3VuZC5cbiAgICBjb25zdCBtZXNzYWdlU3R5bGUgPSBwbGFjZW1lbnQgPT09IFwic3RyaWN0XCJcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC45KScsXG4gICAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgICAgICAgICAgIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxuICAgICAgICAgICAgbWFyZ2luOiAwXG4gICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC45KScsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICAgICAgICAgIG1heFdpZHRoOiAnY2FsYygxMDAlIC0gMzJweCknLFxuICAgICAgICAgICAgbWFyZ2luOiAwXG4gICAgICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgP1xuICAgICAgICAgICAgPGRpdiBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoY29udGFpbmVyU3R5bGUsIHByb3BzLmNvbmZpZyl9PlxuXG4gICAgICAgICAgICAgICAge21lc3NhZ2UgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGFsZXJ0LWZhZGUgJHt2aXNpYmxlID8gXCJhbGVydC1zaG93XCIgOiBcImFsZXJ0LWhpZGVcIn1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17dmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlQWxlcnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNtaXNzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDZweCAxNnB4IHJnYmEoMCwwLDAsMC4xOCknXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXttZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXttZXNzYWdlU3R5bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvQWxlcnQ+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA6IG51bGxcbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFsZXJ0QmFyOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUs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
|
|
@@ -43,6 +43,56 @@ const Button = props => {
|
|
|
43
43
|
const [loading, setLoading] = _react.default.useState(false);
|
|
44
44
|
const [config, setConfig] = _react.default.useState(null);
|
|
45
45
|
let color = _Utils.default.getComponentAttribute(props.config, 'color', 'default');
|
|
46
|
+
|
|
47
|
+
// MUI's `color` prop only accepts theme palette keys. Any other value (a hex
|
|
48
|
+
// code, rgb(), a named CSS colour, ...) is a "custom colour": strip it from the
|
|
49
|
+
// `color` prop and drive it through `sx` instead so the button actually picks it up.
|
|
50
|
+
const PALETTE_COLORS = ['default', 'inherit', 'primary', 'secondary', 'success', 'error', 'info', 'warning'];
|
|
51
|
+
const isCustomColor = !_Utils.default.isNull(color) && !PALETTE_COLORS.includes(color);
|
|
52
|
+
const muiColor = isCustomColor ? 'inherit' : color;
|
|
53
|
+
|
|
54
|
+
// An explicit `variant` in the config (text | outlined | contained) overrides the
|
|
55
|
+
// colour-derived default. When absent, each render branch keeps its previous default.
|
|
56
|
+
const configVariant = _Utils.default.getComponentAttribute(props.config, 'variant', null);
|
|
57
|
+
const resolveVariant = fallback => !_Utils.default.isNull(configVariant) ? configVariant : fallback;
|
|
58
|
+
|
|
59
|
+
// Drive a custom (hex/CSS) colour through `sx`, shaped to the effective variant:
|
|
60
|
+
// contained -> filled background + contrast text; text/outlined -> colour the text
|
|
61
|
+
// (and border) instead of filling.
|
|
62
|
+
const buildCustomColorSx = () => {
|
|
63
|
+
if (!isCustomColor) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const variant = !_Utils.default.isNull(configVariant) ? configVariant : 'contained';
|
|
67
|
+
if (variant === 'text') {
|
|
68
|
+
return {
|
|
69
|
+
color: color
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (variant === 'outlined') {
|
|
73
|
+
return {
|
|
74
|
+
color: color,
|
|
75
|
+
borderColor: color
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
backgroundColor: color,
|
|
80
|
+
// getContrastText only understands hex/rgb/hsl; fall back to inherit for
|
|
81
|
+
// anything it can't parse (e.g. named CSS colours) rather than throwing.
|
|
82
|
+
color: theme => {
|
|
83
|
+
try {
|
|
84
|
+
return theme.palette.getContrastText(color);
|
|
85
|
+
} catch (e) {
|
|
86
|
+
return 'inherit';
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
'&:hover': {
|
|
90
|
+
backgroundColor: color,
|
|
91
|
+
filter: 'brightness(0.93)'
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
const customColorSx = buildCustomColorSx();
|
|
46
96
|
_react.default.useEffect(() => {
|
|
47
97
|
props.handle.api = api();
|
|
48
98
|
});
|
|
@@ -119,9 +169,10 @@ const Button = props => {
|
|
|
119
169
|
if (!_Utils.default.isNull(props.config.icon) && !_Utils.default.isNull(label)) {
|
|
120
170
|
var _props$config$attribu;
|
|
121
171
|
return /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
122
|
-
variant: color
|
|
172
|
+
variant: resolveVariant(color !== 'default' ? 'contained' : 'text'),
|
|
123
173
|
size: "large",
|
|
124
|
-
color: !_Utils.default.isNull(
|
|
174
|
+
color: !_Utils.default.isNull(muiColor) ? muiColor : null,
|
|
175
|
+
sx: customColorSx,
|
|
125
176
|
style: (_props$config$attribu = props.config.attributes) === null || _props$config$attribu === void 0 ? void 0 : _props$config$attribu.style,
|
|
126
177
|
disabled: effectiveDisabled,
|
|
127
178
|
onClick: handleClick,
|
|
@@ -133,7 +184,7 @@ const Button = props => {
|
|
|
133
184
|
if (!_Utils.default.isNull(props.config.icon)) {
|
|
134
185
|
var _props$config$attribu2, _props$config$attribu3, _props$config$attribu4;
|
|
135
186
|
return /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
136
|
-
color: !_Utils.default.isNull(
|
|
187
|
+
color: !_Utils.default.isNull(muiColor) ? muiColor : null,
|
|
137
188
|
"aria-controls": "menu-list-grow",
|
|
138
189
|
disabled: effectiveDisabled,
|
|
139
190
|
style: (_props$config$attribu2 = props.config.attributes) === null || _props$config$attribu2 === void 0 ? void 0 : _props$config$attribu2.style,
|
|
@@ -141,13 +192,14 @@ const Button = props => {
|
|
|
141
192
|
onClick: handleClick
|
|
142
193
|
}, loading ? spinnerIcon : /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
143
194
|
id: props.config.icon,
|
|
144
|
-
color: (_props$config$attribu3 = props.config.attributes) !== null && _props$config$attribu3 !== void 0 && (_props$config$attribu3 = _props$config$attribu3.style) !== null && _props$config$attribu3 !== void 0 && _props$config$attribu3.color ? (_props$config$attribu4 = props.config.attributes) === null || _props$config$attribu4 === void 0 || (_props$config$attribu4 = _props$config$attribu4.style) === null || _props$config$attribu4 === void 0 ? void 0 : _props$config$attribu4.color : _ApplicationManager.default.getApplicationSecondaryColor()
|
|
195
|
+
color: (_props$config$attribu3 = props.config.attributes) !== null && _props$config$attribu3 !== void 0 && (_props$config$attribu3 = _props$config$attribu3.style) !== null && _props$config$attribu3 !== void 0 && _props$config$attribu3.color ? (_props$config$attribu4 = props.config.attributes) === null || _props$config$attribu4 === void 0 || (_props$config$attribu4 = _props$config$attribu4.style) === null || _props$config$attribu4 === void 0 ? void 0 : _props$config$attribu4.color : isCustomColor ? color : _ApplicationManager.default.getApplicationSecondaryColor()
|
|
145
196
|
}));
|
|
146
197
|
}
|
|
147
198
|
return /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
148
|
-
variant: color === 'secondary' || color === 'primary' ? 'contained' : 'text',
|
|
199
|
+
variant: resolveVariant(color === 'secondary' || color === 'primary' || isCustomColor ? 'contained' : 'text'),
|
|
149
200
|
"aria-controls": "menu-list-grow",
|
|
150
|
-
color:
|
|
201
|
+
color: muiColor,
|
|
202
|
+
sx: customColorSx,
|
|
151
203
|
style: (_props$config$attribu5 = props.config.attributes) === null || _props$config$attribu5 === void 0 ? void 0 : _props$config$attribu5.style,
|
|
152
204
|
disabled: effectiveDisabled,
|
|
153
205
|
onClick: handleClick,
|
|
@@ -169,4 +221,4 @@ const Button = props => {
|
|
|
169
221
|
}, /*#__PURE__*/_react.default.createElement("span", null, renderButton())) : renderButton())));
|
|
170
222
|
};
|
|
171
223
|
var _default = exports.default = Button;
|
|
172
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfT2JzZXJ2YWJsZSIsIl9VdGlscyIsIl9JY29uQnV0dG9uIiwiX0ljb24iLCJfVG9vbHRpcCIsIl9zdHlsZXMiLCJfRXZlbnQiLCJfRXZlbnRUeXBlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9EeW5hbWljSlMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwidXNlU3R5bGVzIiwibWFrZVN0eWxlcyIsInRoZW1lIiwicm9vdCIsImRpc3BsYXkiLCJwYXBlciIsIm1hcmdpblJpZ2h0Iiwic3BhY2luZyIsIndyYXBwZXIiLCJ6SW5kZXgiLCJCdXR0b24iLCJwcm9wcyIsIl9wcm9wcyRhdHRyaWJ1dGVzIiwiY2xhc3NlcyIsImRpc2FibGVkIiwic2V0RGlzYWJsZWQiLCJSZWFjdCIsInVzZVN0YXRlIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJsYWJlbCIsInNldExhYmVsIiwibG9hZGluZyIsInNldExvYWRpbmciLCJjb25maWciLCJzZXRDb25maWciLCJjb2xvciIsIlV0aWxzIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwiZXZlbnRNYW5hZ2VyIiwiY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwidmlld0lkIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwicmVmcmVzaCIsIl9wcm9wcyR0YWJsZVJvdyRpZCIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJpZCIsInRhYmxlUm93IiwicmVwbGFjZUFsbCIsImhhbmRsZUNsaWNrIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZW5hYmxlRm9ybU1hcmtlcnMiLCJldmVudCIsIkV2ZW50IiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiQ0xJQ0siLCJfcHJvcHMkdGFibGVSb3ckaWQyIiwiZ2V0Q2hpbGRyZW4iLCJ0cmFja0FjdGlvbiIsImFyZ3MiLCJzdG9wVHJhY2tBY3Rpb24iLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiaXNOdWxsIiwidG9vbHRpcFRleHQiLCJzcGlubmVySWNvbiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJlZmZlY3RpdmVEaXNhYmxlZCIsInJlbmRlckJ1dHRvbiIsIl9wcm9wcyRjb25maWckYXR0cmlidTUiLCJpY29uIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1IiwidmFyaWFudCIsInNpemUiLCJzdHlsZSIsImF0dHJpYnV0ZXMiLCJvbkNsaWNrIiwic3RhcnRJY29uIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1MiIsIl9wcm9wcyRjb25maWckYXR0cmlidTMiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnU0IiwiZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvciIsIkZyYWdtZW50IiwiY29uY2F0Iiwid2lkdGgiLCJ0aXRsZSIsImFycm93IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL0J1dHRvbi5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCdXR0b25Db21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVG9vbHRpcCc7XG5pbXBvcnQge21ha2VTdHlsZXN9IGZyb20gJ0BtdWkvc3R5bGVzJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi9EeW5hbWljSlNcIjtcbmltcG9ydCBcIi4vQnV0dG9uLmNzc1wiXG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB9LFxuICAgIHBhcGVyOiB7XG4gICAgICAgIG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjaW5nKDIpLFxuICAgIH0sXG4gICAgd3JhcHBlcjoge1xuICAgICAgICB6SW5kZXg6IDJcbiAgICB9XG59KSk7XG5cbmNvbnN0IEJ1dHRvbiA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTtcbiAgICBjb25zdCBbZGlzYWJsZWQsIHNldERpc2FibGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb25maWcsIHNldENvbmZpZ10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcblxuICAgIGxldCBjb2xvciA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdjb2xvcicsICdkZWZhdWx0Jyk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyhwcm9wcy5oYW5kbGUpO1xuICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKGNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgIH0sIFtjb25maWddKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdHJ5e1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgbGV0IGxhYmVsID0gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHQocGFyc2VkQ29uZmlnLmlkICsgJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICAgICAgVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHBhcnNlZENvbmZpZywgJ2xhYmVsJywgJycpLFxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRDb25maWcudmlld0lkLCB0cnVlLCBudWxsLCBudWxsLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgc2V0TGFiZWwobGFiZWwpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHNldExhYmVsKFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdsYWJlbCcsICcnKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldENvbmZpZyhwcm9wcy50YWJsZVJvdyA/IHtcbiAgICAgICAgICAgICAgICAuLi5wcm9wcy5jb25maWcsXG4gICAgICAgICAgICAgICAgaWQ6IHByb3BzLmNvbmZpZy5pZCArICdfJyArIHByb3BzLnRhYmxlUm93LmlkPy5yZXBsYWNlQWxsKCctJywgJycpXG4gICAgICAgICAgICB9IDogcHJvcHMuY29uZmlnKTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyhwcm9wcy5oYW5kbGUpO1xuICAgICAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBudWxsO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZSkgPT4ge1xuICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZW5hYmxlRm9ybU1hcmtlcnModHJ1ZSk7XG4gICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNMSUNLLCBldmVudCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMudGFibGVSb3cgPyBwcm9wcy5jb25maWcuaWQgKyAnXycgKyBwcm9wcy50YWJsZVJvdy5pZD8ucmVwbGFjZUFsbCgnLScsJycpIDogcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCB0YWJsZVJvdygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMudGFibGVSb3c7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCB2aXNpYmxlKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKHZpc2libGUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRyYWNrQWN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0b3BUcmFja0FjdGlvbihhcmdzKSB7XG4gICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcoY29uZmlnID8gY29uZmlnIDogcHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIHNldERpc2FibGVkKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyc2VkQ29uZmlnLmRpc2FibGVkLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKFV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmlzaWJsZSkgfHwgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IHRvb2x0aXBUZXh0ID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3Rvb2xUaXAnLCAnJyk7XG5cbiAgICBjb25zdCBzcGlubmVySWNvbiA9IDxpIGNsYXNzTmFtZT1cImZhIGZhLXJlZnJlc2ggZmEtc3BpblwiLz47XG4gICAgY29uc3QgZWZmZWN0aXZlRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCBsb2FkaW5nO1xuXG4gICAgY29uc3QgcmVuZGVyQnV0dG9uID0gKCkgPT4ge1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuaWNvbikgJiYgIVV0aWxzLmlzTnVsbChsYWJlbCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEJ1dHRvbkNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtjb2xvciA9PT0gJ3NlY29uZGFyeScgfHwgY29sb3IgPT09ICdwcmltYXJ5JyA/ICdjb250YWluZWQnIDogJ3RleHQnfVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17IVV0aWxzLmlzTnVsbChjb2xvcikgPyBjb2xvciA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtlZmZlY3RpdmVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17bG9hZGluZyA/IHNwaW5uZXJJY29uIDogPEljb24gaWQ9e3Byb3BzLmNvbmZpZy5pY29ufS8+fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uQ29tcG9uZW50PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5pY29uKSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17IVV0aWxzLmlzTnVsbChjb2xvcikgPyBjb2xvciA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtlZmZlY3RpdmVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nID8gc3Bpbm5lckljb24gOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17cHJvcHMuY29uZmlnLmljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5jb2xvciA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8uY29sb3IgOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvcigpfS8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QnV0dG9uQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgdmFyaWFudD17Y29sb3IgPT09ICdzZWNvbmRhcnknIHx8IGNvbG9yID09PSAncHJpbWFyeScgPyAnY29udGFpbmVkJyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgICAgICBzdHlsZT17cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtlZmZlY3RpdmVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgc3RhcnRJY29uPXtsb2FkaW5nID8gc3Bpbm5lckljb24gOiBudWxsfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvQnV0dG9uQ29tcG9uZW50PlxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtjbGFzc2VzLnJvb3R9IG91aSBidXR0b25gfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHByb3BzLmF0dHJpYnV0ZXM/LnN0eWxlPy53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHZpc2libGUgPyAnYmxvY2snIDogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy53cmFwcGVyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHRvb2x0aXBUZXh0KSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0b29sdGlwVGV4dH0gYXJyb3c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57cmVuZGVyQnV0dG9uKCl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQnV0dG9uKClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCdXR0b247XG4iXSwibWFw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
|
|
224
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfT2JzZXJ2YWJsZSIsIl9VdGlscyIsIl9JY29uQnV0dG9uIiwiX0ljb24iLCJfVG9vbHRpcCIsIl9zdHlsZXMiLCJfRXZlbnQiLCJfRXZlbnRUeXBlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9EeW5hbWljSlMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwidXNlU3R5bGVzIiwibWFrZVN0eWxlcyIsInRoZW1lIiwicm9vdCIsImRpc3BsYXkiLCJwYXBlciIsIm1hcmdpblJpZ2h0Iiwic3BhY2luZyIsIndyYXBwZXIiLCJ6SW5kZXgiLCJCdXR0b24iLCJwcm9wcyIsIl9wcm9wcyRhdHRyaWJ1dGVzIiwiY2xhc3NlcyIsImRpc2FibGVkIiwic2V0RGlzYWJsZWQiLCJSZWFjdCIsInVzZVN0YXRlIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJsYWJlbCIsInNldExhYmVsIiwibG9hZGluZyIsInNldExvYWRpbmciLCJjb25maWciLCJzZXRDb25maWciLCJjb2xvciIsIlV0aWxzIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiUEFMRVRURV9DT0xPUlMiLCJpc0N1c3RvbUNvbG9yIiwiaXNOdWxsIiwiaW5jbHVkZXMiLCJtdWlDb2xvciIsImNvbmZpZ1ZhcmlhbnQiLCJyZXNvbHZlVmFyaWFudCIsImZhbGxiYWNrIiwiYnVpbGRDdXN0b21Db2xvclN4IiwidW5kZWZpbmVkIiwidmFyaWFudCIsImJvcmRlckNvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsImdldENvbnRyYXN0VGV4dCIsImN1c3RvbUNvbG9yU3giLCJ1c2VFZmZlY3QiLCJoYW5kbGUiLCJhcGkiLCJldmVudE1hbmFnZXIiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwicGFyc2VkQ29uZmlnIiwicGFyc2VDb25maWciLCJ2aWV3SWQiLCJhZGRTdWJzY3JpcHRpb25zIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImFkZFN5c3RlbVN1YnNjcmlwdGlvbnMiLCJyZWZyZXNoIiwiX3Byb3BzJHRhYmxlUm93JGlkIiwiZHluYW1pY0pTIiwiZXhlY3V0ZVNjcmlwdCIsImlkIiwidGFibGVSb3ciLCJyZXBsYWNlQWxsIiwiaGFuZGxlQ2xpY2siLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJlbmFibGVGb3JtTWFya2VycyIsImV2ZW50IiwiRXZlbnQiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJDTElDSyIsIl9wcm9wcyR0YWJsZVJvdyRpZDIiLCJnZXRDaGlsZHJlbiIsInRyYWNrQWN0aW9uIiwiYXJncyIsInN0b3BUcmFja0FjdGlvbiIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJ0b29sdGlwVGV4dCIsInNwaW5uZXJJY29uIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImVmZmVjdGl2ZURpc2FibGVkIiwicmVuZGVyQnV0dG9uIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1NSIsImljb24iLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJzaXplIiwic3giLCJzdHlsZSIsImF0dHJpYnV0ZXMiLCJvbkNsaWNrIiwic3RhcnRJY29uIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1MiIsIl9wcm9wcyRjb25maWckYXR0cmlidTMiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnU0IiwiZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvciIsIkZyYWdtZW50IiwiY29uY2F0Iiwid2lkdGgiLCJ0aXRsZSIsImFycm93IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL0J1dHRvbi5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCdXR0b25Db21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVG9vbHRpcCc7XG5pbXBvcnQge21ha2VTdHlsZXN9IGZyb20gJ0BtdWkvc3R5bGVzJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi9EeW5hbWljSlNcIjtcbmltcG9ydCBcIi4vQnV0dG9uLmNzc1wiXG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB9LFxuICAgIHBhcGVyOiB7XG4gICAgICAgIG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjaW5nKDIpLFxuICAgIH0sXG4gICAgd3JhcHBlcjoge1xuICAgICAgICB6SW5kZXg6IDJcbiAgICB9XG59KSk7XG5cbmNvbnN0IEJ1dHRvbiA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTtcbiAgICBjb25zdCBbZGlzYWJsZWQsIHNldERpc2FibGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtjb25maWcsIHNldENvbmZpZ10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcblxuICAgIGxldCBjb2xvciA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdjb2xvcicsICdkZWZhdWx0Jyk7XG5cbiAgICAvLyBNVUkncyBgY29sb3JgIHByb3Agb25seSBhY2NlcHRzIHRoZW1lIHBhbGV0dGUga2V5cy4gQW55IG90aGVyIHZhbHVlIChhIGhleFxuICAgIC8vIGNvZGUsIHJnYigpLCBhIG5hbWVkIENTUyBjb2xvdXIsIC4uLikgaXMgYSBcImN1c3RvbSBjb2xvdXJcIjogc3RyaXAgaXQgZnJvbSB0aGVcbiAgICAvLyBgY29sb3JgIHByb3AgYW5kIGRyaXZlIGl0IHRocm91Z2ggYHN4YCBpbnN0ZWFkIHNvIHRoZSBidXR0b24gYWN0dWFsbHkgcGlja3MgaXQgdXAuXG4gICAgY29uc3QgUEFMRVRURV9DT0xPUlMgPSBbJ2RlZmF1bHQnLCAnaW5oZXJpdCcsICdwcmltYXJ5JywgJ3NlY29uZGFyeScsICdzdWNjZXNzJywgJ2Vycm9yJywgJ2luZm8nLCAnd2FybmluZyddO1xuICAgIGNvbnN0IGlzQ3VzdG9tQ29sb3IgPSAhVXRpbHMuaXNOdWxsKGNvbG9yKSAmJiAhUEFMRVRURV9DT0xPUlMuaW5jbHVkZXMoY29sb3IpO1xuICAgIGNvbnN0IG11aUNvbG9yID0gaXNDdXN0b21Db2xvciA/ICdpbmhlcml0JyA6IGNvbG9yO1xuXG4gICAgLy8gQW4gZXhwbGljaXQgYHZhcmlhbnRgIGluIHRoZSBjb25maWcgKHRleHQgfCBvdXRsaW5lZCB8IGNvbnRhaW5lZCkgb3ZlcnJpZGVzIHRoZVxuICAgIC8vIGNvbG91ci1kZXJpdmVkIGRlZmF1bHQuIFdoZW4gYWJzZW50LCBlYWNoIHJlbmRlciBicmFuY2gga2VlcHMgaXRzIHByZXZpb3VzIGRlZmF1bHQuXG4gICAgY29uc3QgY29uZmlnVmFyaWFudCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd2YXJpYW50JywgbnVsbCk7XG4gICAgY29uc3QgcmVzb2x2ZVZhcmlhbnQgPSAoZmFsbGJhY2spID0+ICFVdGlscy5pc051bGwoY29uZmlnVmFyaWFudCkgPyBjb25maWdWYXJpYW50IDogZmFsbGJhY2s7XG5cbiAgICAvLyBEcml2ZSBhIGN1c3RvbSAoaGV4L0NTUykgY29sb3VyIHRocm91Z2ggYHN4YCwgc2hhcGVkIHRvIHRoZSBlZmZlY3RpdmUgdmFyaWFudDpcbiAgICAvLyBjb250YWluZWQgLT4gZmlsbGVkIGJhY2tncm91bmQgKyBjb250cmFzdCB0ZXh0OyB0ZXh0L291dGxpbmVkIC0+IGNvbG91ciB0aGUgdGV4dFxuICAgIC8vIChhbmQgYm9yZGVyKSBpbnN0ZWFkIG9mIGZpbGxpbmcuXG4gICAgY29uc3QgYnVpbGRDdXN0b21Db2xvclN4ID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWlzQ3VzdG9tQ29sb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFyaWFudCA9ICFVdGlscy5pc051bGwoY29uZmlnVmFyaWFudCkgPyBjb25maWdWYXJpYW50IDogJ2NvbnRhaW5lZCc7XG4gICAgICAgIGlmICh2YXJpYW50ID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIHJldHVybiB7Y29sb3I6IGNvbG9yfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFyaWFudCA9PT0gJ291dGxpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIHtjb2xvcjogY29sb3IsIGJvcmRlckNvbG9yOiBjb2xvcn07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXG4gICAgICAgICAgICAvLyBnZXRDb250cmFzdFRleHQgb25seSB1bmRlcnN0YW5kcyBoZXgvcmdiL2hzbDsgZmFsbCBiYWNrIHRvIGluaGVyaXQgZm9yXG4gICAgICAgICAgICAvLyBhbnl0aGluZyBpdCBjYW4ndCBwYXJzZSAoZS5nLiBuYW1lZCBDU1MgY29sb3VycykgcmF0aGVyIHRoYW4gdGhyb3dpbmcuXG4gICAgICAgICAgICBjb2xvcjogKHRoZW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lLnBhbGV0dGUuZ2V0Q29udHJhc3RUZXh0KGNvbG9yKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaW5oZXJpdCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICcmOmhvdmVyJzoge2JhY2tncm91bmRDb2xvcjogY29sb3IsIGZpbHRlcjogJ2JyaWdodG5lc3MoMC45MyknfSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGN1c3RvbUNvbG9yU3ggPSBidWlsZEN1c3RvbUNvbG9yU3goKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgICAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzKHByb3BzLmhhbmRsZSk7XG4gICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcoY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMocGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5hZGRTeXN0ZW1TdWJzY3JpcHRpb25zKHByb3BzLnZpZXdJZCwgcGFyc2VkQ29uZmlnKTtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgfSwgW2NvbmZpZ10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0cnl7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdChwYXJzZWRDb25maWcuaWQgKyAnbGFiZWwnLFxuICAgICAgICAgICAgICAgICAgICBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocGFyc2VkQ29uZmlnLCAnbGFiZWwnLCAnJyksXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZENvbmZpZy52aWV3SWQsIHRydWUsIG51bGwsIG51bGwsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBzZXRMYWJlbChsYWJlbCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0Q29uZmlnKHByb3BzLnRhYmxlUm93ID8ge1xuICAgICAgICAgICAgICAgIC4uLnByb3BzLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBpZDogcHJvcHMuY29uZmlnLmlkICsgJ18nICsgcHJvcHMudGFibGVSb3cuaWQ/LnJlcGxhY2VBbGwoJy0nLCAnJylcbiAgICAgICAgICAgIH0gOiBwcm9wcy5jb25maWcpO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzKHByb3BzLmhhbmRsZSk7XG4gICAgICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IG51bGw7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBoYW5kbGVDbGljayA9IChlKSA9PiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5lbmFibGVGb3JtTWFya2Vycyh0cnVlKTtcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ0xJQ0ssIGV2ZW50KTtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy50YWJsZVJvdyA/IHByb3BzLmNvbmZpZy5pZCArICdfJyArIHByb3BzLnRhYmxlUm93LmlkPy5yZXBsYWNlQWxsKCctJywnJykgOiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IHRhYmxlUm93KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy50YWJsZVJvdztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBzZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhY2tBY3Rpb24oYXJncykge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RvcFRyYWNrQWN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoKCkge1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhjb25maWcgPyBjb25maWcgOiBwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgc2V0RGlzYWJsZWQoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcuZGlzYWJsZWQsIHBhcnNlZENvbmZpZy5pZCkpO1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgdG9vbHRpcFRleHQgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAndG9vbFRpcCcsICcnKTtcblxuICAgIGNvbnN0IHNwaW5uZXJJY29uID0gPGkgY2xhc3NOYW1lPVwiZmEgZmEtcmVmcmVzaCBmYS1zcGluXCIvPjtcbiAgICBjb25zdCBlZmZlY3RpdmVEaXNhYmxlZCA9IGRpc2FibGVkIHx8IGxvYWRpbmc7XG5cbiAgICBjb25zdCByZW5kZXJCdXR0b24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5pY29uKSAmJiAhVXRpbHMuaXNOdWxsKGxhYmVsKSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8QnV0dG9uQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e3Jlc29sdmVWYXJpYW50KGNvbG9yICE9PSAnZGVmYXVsdCcgPyAnY29udGFpbmVkJyA6ICd0ZXh0Jyl9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXshVXRpbHMuaXNOdWxsKG11aUNvbG9yKSA/IG11aUNvbG9yIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgc3g9e2N1c3RvbUNvbG9yU3h9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtlZmZlY3RpdmVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17bG9hZGluZyA/IHNwaW5uZXJJY29uIDogPEljb24gaWQ9e3Byb3BzLmNvbmZpZy5pY29ufS8+fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uQ29tcG9uZW50PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5pY29uKSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17IVV0aWxzLmlzTnVsbChtdWlDb2xvcikgPyBtdWlDb2xvciA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtlZmZlY3RpdmVEaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nID8gc3Bpbm5lckljb24gOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17cHJvcHMuY29uZmlnLmljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5jb2xvciA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8uY29sb3IgOiAoaXNDdXN0b21Db2xvciA/IGNvbG9yIDogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uU2Vjb25kYXJ5Q29sb3IoKSl9Lz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxCdXR0b25Db21wb25lbnRcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtyZXNvbHZlVmFyaWFudChjb2xvciA9PT0gJ3NlY29uZGFyeScgfHwgY29sb3IgPT09ICdwcmltYXJ5JyB8fCBpc0N1c3RvbUNvbG9yID8gJ2NvbnRhaW5lZCcgOiAndGV4dCcpfVxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgY29sb3I9e211aUNvbG9yfVxuICAgICAgICAgICAgICAgIHN4PXtjdXN0b21Db2xvclN4fVxuICAgICAgICAgICAgICAgIHN0eWxlPXtwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2VmZmVjdGl2ZURpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBzdGFydEljb249e2xvYWRpbmcgPyBzcGlubmVySWNvbiA6IG51bGx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9CdXR0b25Db21wb25lbnQ+XG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2NsYXNzZXMucm9vdH0gb3VpIGJ1dHRvbmB9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcHJvcHMuYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLndyYXBwZXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwodG9vbHRpcFRleHQpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Rvb2x0aXBUZXh0fSBhcnJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntyZW5kZXJCdXR0b24oKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJCdXR0b24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FB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
|