single-scripture-rcl 3.4.27 → 3.4.28-beta
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/README.md
CHANGED
|
@@ -485,7 +485,7 @@ export default function ScriptureCard(_ref2) {
|
|
|
485
485
|
if (error) {
|
|
486
486
|
// if error was found do callback
|
|
487
487
|
var resourceStatus = scriptureConfig === null || scriptureConfig === void 0 ? void 0 : scriptureConfig.resourceStatus;
|
|
488
|
-
var _resourceLink = getResourceLink(scriptureConfig);
|
|
488
|
+
var _resourceLink = getResourceLink(scriptureConfig === null || scriptureConfig === void 0 ? void 0 : scriptureConfig.resourceLink);
|
|
489
489
|
var message = getResourceMessage(resourceStatus, server, _resourceLink, isNT_);
|
|
490
490
|
var isAccessError = resourceStatus[MANIFEST_NOT_LOADED_ERROR];
|
|
491
491
|
onResourceError && onResourceError(message, isAccessError, resourceStatus);
|
|
@@ -1592,4 +1592,4 @@ ScriptureCard.propTypes = {
|
|
|
1592
1592
|
/** use method for using local storage specific for user */
|
|
1593
1593
|
useUserLocalStorage: PropTypes.func.isRequired
|
|
1594
1594
|
};
|
|
1595
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFcnJvckRpYWxvZyIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlVwZGF0ZUJyYW5jaEJ1dHRvbiIsInVzZUJyYW5jaE1lcmdlciIsInVzZUNhcmRTdGF0ZSIsInVzZUNvbnRlbnRVcGRhdGVQcm9wcyIsInVzZU1hc3Rlck1lcmdlUHJvcHMiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZmV0Y2hCaWJsZUJvb2siLCJmaXhPY2N1cnJlbmNlIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZ2V0UmVzb3VyY2VMaW5rIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiaXNPcmlnaW5hbEJpYmxlIiwiZGVsYXkiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwiZ2V0UGF0Y2giLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiVmVyc2VPYmplY3RzVHlwZSIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsImNvbXBhcmVPYmplY3QiLCJ2ZXJzZVJlZiIsIl92ZXJzZURhdGEkdmVyc2VPYmplYyIsIl9yZWYiLCJjaGFwdGVyIiwidmVyc2UiLCJ2ZXJzZURhdGEiLCJ2ZXJzZU9iamVjdHMiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJlVmVyc2VzU2FtZSIsInZlcnNlc0ZvclJlZjEiLCJ2ZXJzZXNGb3JSZWYyIiwiYXJlU2FtZSIsInZlcnNlMSIsInZlcnNlMiIsImdldEN1cnJlbnRCb29rIiwic2NyaXB0dXJlQ29uZmlnIiwiYm9va0lkIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMiIsIl9ib29rTmFtZSR0b0xvd2VyQ2FzZSIsImxhdGVzdEJpYmxlIiwicmVzb3VyY2VTdGF0ZSIsInJlc291cmNlIiwicHJvamVjdElkIiwiZmlsZW5hbWUiLCJpc0Jvb2tWYWxpZCIsImJvb2tOYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIiwiY29uY2F0IiwiYmlibGVVc2ZtIiwiU2NyaXB0dXJlQ2FyZCIsIl9yZWYyIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzQiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc281IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvNiIsIl9zY3JpcHR1cmVDb25maWckcmVzbzciLCJfYXV0aGVudGljYXRpb24kdG9rZW4iLCJfc2NyaXB0dXJlQ29uZmlnJHJlc285IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTAiLCJfaHR0cENvbmZpZyIsIl9odHRwQ29uZmlnMiIsIl9hdXRoZW50aWNhdGlvbiR1c2VyIiwiX3ZlcnNlc0ZvclJlZjMiLCJfdmVyc2VzRm9yUmVmNCIsImFwcFJlZiIsImF1dGhlbnRpY2F0aW9uIiwiYm9va0luZGV4IiwiY2FyZE51bSIsImNsYXNzZXMiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJnZXRMYW5ndWFnZSIsImdldExleGljb25EYXRhIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImh0dHBDb25maWciLCJpZCIsImlzTlQiLCJsb2dnZWRJblVzZXIiLCJvbk1pbmltaXplIiwib25SZXNvdXJjZUVycm9yIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZV8iLCJyZWZlcmVuY2UiLCJfcmVmMiRyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0Q2FyZHNMb2FkaW5nTWVyZ2UiLCJzZXRDYXJkc0xvYWRpbmdVcGRhdGUiLCJzZXRDYXJkc1NhdmluZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidHJhbnNsYXRlIiwidGl0bGUiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwidXBkYXRlTWVyZ2VTdGF0ZSIsInNhdmVJblByb2dyZXNzIiwidXNlUmVmIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJjaGVja0ZvckVkaXRCcmFuY2giLCJjb250ZXh0TGluZXMiLCJjdXJyZW50UmVmZXJlbmNlIiwiZWRpdEJyYW5jaFJlYWR5IiwiZWRpdFZlcnNlIiwiaGF2ZVVuc2F2ZWRDaGFuZ2VzIiwibGFzdFNlbGVjdGVkUXVvdGUiLCJyZWFkeUZvckZldGNoIiwicmVmIiwic2F2ZUNsaWNrZWQiLCJzYXZlQ29udGVudCIsInNhdmVEaWZmUGF0Y2giLCJzYXZlRnVsbEJpYmxlQ29udGVudCIsInNlbGVjdGlvbnMiLCJNYXAiLCJzZWxlY3Rpb25zUmVmcyIsInNob3dBbGlnbm1lbnRQb3B1cCIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzQWxpZ25tZW50U3RhdHVzIiwidmVyc2VzRm9yUmVmIiwidmVyc2VPYmplY3RzTWFwIiwidmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJzdGF0ZSIsInNldFN0YXRlXyIsIl91c2VVc2VyTG9jYWxTdG9yYWdlIiwiX3VzZVVzZXJMb2NhbFN0b3JhZ2UyIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwibm9DYWNoZSIsIl91c2VTY3JpcHR1cmVTZXR0aW5ncyIsInNldFVybEVycm9yIiwid2hvbGVCb29rIiwiaXNOZXdUZXN0YW1lbnQiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVTZXR0aW5ncyIsInNjcmlwdHVyZVZlcnNpb25IaXN0IiwiZmV0Y2hlZFJlc291cmNlIiwicmVwbyIsInVzaW5nT3JpZ2luYWxCaWJsZSIsImNhcmRSZXNvdXJjZUlkIiwicmVmXyIsImNhblVzZUVkaXRCcmFuY2giLCJfdXNlVXNlckJyYW5jaCIsImNhcmRJZCIsIl91c2VVc2VyQnJhbmNoJHN0YXRlIiwiYnJhbmNoRGV0ZXJtaW5lZCIsInVzZXJFZGl0QnJhbmNoTmFtZSIsIl91c2luZ1VzZXJCcmFuY2giLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfdXNlVXNlckJyYW5jaCRhY3Rpb24iLCJhY3Rpb25zIiwic3RhcnRFZGl0QnJhbmNoIiwic3RhcnRFZGl0IiwiZmluaXNoRWRpdCIsIl91c2VCcmFuY2hNZXJnZXIiLCJ1c2VyQnJhbmNoIiwidG9rZW5pZCIsInRva2VuIiwic2hhMSIsIl91c2VCcmFuY2hNZXJnZXIkc3RhdCIsIm1lcmdlVG9NYXN0ZXIiLCJtZXJnZVN0YXR1cyIsIm1lcmdlRnJvbU1hc3RlciIsInVwZGF0ZVN0YXR1cyIsInVwZGF0ZUJ1dHRvblByb3BzIiwiaXNTYXZpbmciLCJvblVwZGF0ZSIsInJlbG9hZFJlc291cmNlIiwiY2FsbFVwZGF0ZVVzZXJCcmFuY2giLCJpc0Vycm9yRGlhbG9nT3BlbiIsIm9uQ2xvc2VFcnJvckRpYWxvZyIsImlzVXBkYXRlTG9hZGluZyIsImlzTG9hZGluZyIsImRpYWxvZ01lc3NhZ2UiLCJkaWFsb2dUaXRsZSIsImRpYWxvZ0xpbmsiLCJkaWFsb2dMaW5rVG9vbHRpcCIsIm9uTWVyZ2UiLCJsb2ciLCJfdXNlTWFzdGVyTWVyZ2VQcm9wcyIsImlzTWVyZ2VMb2FkaW5nIiwiY2FsbE1lcmdlVXNlckJyYW5jaCIsInVzZUVmZmVjdCIsInByZXZDYXJkc0xvYWRpbmciLCJ3b3JraW5nUmVmIiwic2NyaXB0dXJlVGl0bGUiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc284IiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwiY3JlYXRlRWxlbWVudCIsImVycm9yTWVzc2FnZSIsInNldEVkaXRWZXJzZSIsImVkaXRpbmciLCJkaXNhYmxlQ2hhbmdlQnV0dG9ucyIsIm9uTWVudUNsb3NlIiwibGFuZ3VhZ2VJZF8iLCJsYW5ndWFnZSIsImRpcmVjdGlvbiIsIl9yZWZlcmVuY2UiLCJpc0hlYnJldyIsImZvbnRGYWN0b3IiLCJzY2FsZWRGb250U2l6ZSIsIml0ZW1zIiwiX3VzZUNhcmRTdGF0ZSIsIl91c2VDYXJkU3RhdGUkc3RhdGUiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsIl91c2VDYXJkU3RhdGUkYWN0aW9ucyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwibGluZUhlaWdodCIsInNjcmlwdHVyZUxhYmVsIiwiZGlzYWJsZVdvcmRQb3BvdmVyXyIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJvcmlnaW5hbFJlcG9VcmwiLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiY3VycmVudFZlcnNlUmVmIiwiX3NldFNhdmVkQ2hhbmdlcyIsInNvdXJjZUxhbmd1YWdlIiwidGFyZ2V0TGFuZ3VhZ2UiLCJjdXJyZW50SW5kZXgiLCJzYXZlZCIsIl9yZWYzIiwiX3JlZjMkZ2V0Q2hhbmdlcyIsImdldENoYW5nZXMiLCJfcmVmMyRjbGVhckNoYW5nZXMiLCJjbGVhckNoYW5nZXMiLCJfcmVmMyRzdGF0ZSIsIl91bnNhdmVkQ2hhbmdlc0xpc3QiLCJfaGF2ZVVuc2F2ZWRDaGFuZ2VzIiwiZmluZFJlZkluQXJyYXkiLCJmaW5kSXRlbSIsImNodW5rcyIsInJlZkxlbiIsImluZGV4IiwiZmluZEluZGV4IiwiY2h1bmsiLCJpZHgiLCJzdWJzdHJpbmciLCJuZXh0Q2hhciIsImdldEJvb2tOYW1lIiwiX3NjcmlwdHVyZUNvbmZpZyRyZWZlIiwiYm9va0NhcHMiLCJ0b1VwcGVyQ2FzZSIsImZpbGVwYXRoIiwic2hhIiwiX3VzZUVkaXQiLCJjb250ZW50IiwiY29uZmlnIiwiZG9udENyZWF0ZUJyYW5jaCIsInRpbWVvdXQiLCJzZXJ2ZXJUaW1lT3V0IiwiYXV0aG9yIiwiZW1haWwiLCJ1c2VyIiwiYnJhbmNoIiwic2F2ZUVycm9yIiwiaXNTYXZlRXJyb3IiLCJpc0Vycm9yIiwib25TYXZlRWRpdCIsIm9uU2F2ZUVkaXRQYXRjaCIsImN1cnJlbnQiLCJfc2F2ZVN1Y2Nlc2Z1bCIsInByZXZDYXJkc1NhdmluZyIsInVuc2F2ZWRDYXJkSW5kaWNlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiY2FyZEluZGV4IiwibG9nQ2hhbmdlZCIsImNvbW1lbnQiLCJpbml0aWFsIiwiZmluYWwiLCJkaWZmIiwiX3NhdmVFZGl0IiwiX3JlZjQiLCJfY2FsbGVlIiwidXBsb2FkRnVuY3Rpb24iLCJzdWNjZXNzIiwicmVzdWx0cyIsIl9zYXZlQ29udGVudCIsImZpbGVTaGEiLCJzYXZlZEJpYmxlVXNmbSIsImVkaXRlZEJpYmxlVXNmbSIsInVwVG9EYXRlIiwibmV3Q29udGV4dExpbmVzIiwiZGlmZlBhdGNoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIm1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJuZXdVc2ZtIiwiY2hhcHRlckNodW5rcyIsInNwbGl0IiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJmcm9udE1hdHRlciIsIm5ld1ZlcnNlVXNmbSIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJvbGRWZXJzZSIsInByZWZpeExlbiIsImluZGV4T2YiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVhZHlGb3JTYXZlIiwiX2dldFJlYWR5Rm9yU2F2ZSIsIl9jYWxsZWUyIiwiY3JlYXRlRWRpdEJyYW5jaCIsImJpYmxlVXNmbUluaXRpYWwiLCJiaWJsZVVzZm1OZXciLCJtZXJnZUZhaWwiLCJfY2FyZE51bSIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfdW5zYXZlZENoYW5nZXNMaXN0JF8iLCJfc3RhdGUiLCJfZ2V0Q2hhbmdlcyIsIl9yZWY1IiwiX3NhdmVEaWZmUGF0Y2giLCJfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJuZXdCb29rSnNvbiIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJfY2FyZEluZGV4IiwiX2NhcmROdW0yIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCRfMiIsIl9nZXRDaGFuZ2VzMiIsIl9zdGF0ZTIiLCJfbmV3VXNmbSIsIl9nZXRDaGFuZ2VzMyIsIm5ld1ZlcnNlVGV4dCIsIl9yZWY2IiwiX3VwZGF0ZWRWZXJzZU9iamVjdHMiLCJ0YXJnZXRWZXJzZU9iamVjdHNfIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTEiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJwYXJzZUludCIsInQwIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ1cGRhdGVWZXJzZSIsInRvVVNGTSIsImZvcmNlZE5ld0xpbmVzIiwiX3JlZjciLCJfdmVyc2VzRm9yUmVmIiwibmV3U2VsZWN0aW9ucyIsInVwZGF0ZVNlbGVjdGlvbnMiLCJfbWFwIiwib3JpZ2luYWxCb29rSWQiLCJib29rVmVyc2VPYmplY3QiLCJjaGFwdGVycyIsIm5ld1NlbGVjdGVkUXVvdGUiLCJxdW90ZSIsIl9zZWxlY3RlZFF1b3RlJHJlZmVyZTMiLCJvcmlnaW5hbFZlcnNlcyIsInN1YnN0aXR1dGUiLCJzdGFydFZlcnNlIiwibGFzdFZlcnNlIiwiX3ZlcnNlIiwidmVyc2VzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsInZlcnNlSXRlbSIsInZvIiwiX2Jvb2tWZXJzZU9iamVjdCRfY2hhIiwic2V0IiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlIiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlMiIsInN1YlJlZiIsInF1b3RlTWF0Y2hlcyIsImJvb2tPYmplY3QiLCJvY2N1cnJlbmNlIiwic2l6ZSIsIndvcmRzIiwiX2tleSIsIm1hcCIsIndvcmQiLCJ0ZXh0Iiwibm9ybWFsaXplU3RyaW5nIiwiYm9va3NOb3RTYW1lIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwiYWxpZ25lZCIsIl92ZXJzZXNGb3JSZWYyIiwiX3JlZjgiLCJyZW5kZXJlZFNjcmlwdHVyZVBhbmVzIiwiX2N1cnJlbnRWZXJzZURhdGEiLCJfY3VycmVudFZlcnNlRGF0YSR2ZXIiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX3JlZjkiLCJib29rSWRfIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJkZXRlcm1pbmluZ0JyYW5jaCIsIm9uQWxpZ25tZW50RmluaXNoIiwic2F2aW5nIiwiaGFuZGxlQWxpZ25CdXR0b25DbGljayIsIm9uUmVuZGVyVG9vbGJhciIsIl9yZWYxMCIsIm5ld0l0ZW1zIiwiYWxsVmVyc2VzQWxpZ25lZCIsImV2ZXJ5IiwiYWxpZ25TdGF0dXMiLCJhbGlnbkljb24iLCJhbGlnbkJ1dHRvblRleHQiLCJjb2xvciIsIm9uQ2xpY2siLCJjdXJzb3IiLCJGcmFnbWVudCIsIm9wZW4iLCJvbkNsb3NlIiwibGluayIsImxpbmtUb29sdGlwIiwic2VsZWN0aW9uQm9va09iamVjdHMiLCJvblNlbGVjdGlvbnMiLCJyZWZTdHJpbmciLCJzZXR0aW5nc1RpdGxlIiwiZ2V0Q3VzdG9tQ29tcG9uZW50IiwiaGlkZU1hcmtkb3duVG9nZ2xlIiwiZWRpdGFibGUiLCJvblZlcnNlU2VsZWN0IiwicHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9iamVjdCIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJhbnkiLCJzZXRBcmVSZXNvdXJjZXNMb2FkaW5nIiwic2V0QXJlUmVzb3VyY2VzU2F2aW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvU2NyaXB0dXJlQ2FyZC9TY3JpcHR1cmVDYXJkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSwgU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFJ4TGluazIsIFJ4TGlua0JyZWFrMiB9IGZyb20gJ3JlYWN0LWljb25zL3J4J1xuaW1wb3J0IHtcbiAgQ2FyZCxcbiAgRXJyb3JEaWFsb2csXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBVcGRhdGVCcmFuY2hCdXR0b24sXG4gIHVzZUJyYW5jaE1lcmdlcixcbiAgdXNlQ2FyZFN0YXRlLFxuICB1c2VDb250ZW50VXBkYXRlUHJvcHMsXG4gIHVzZU1hc3Rlck1lcmdlUHJvcHMsXG4gIHVzZVVzZXJCcmFuY2gsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZiB9IGZyb20gJ3V3LXF1b3RlLWhlbHBlcnMnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdAcmVhY3QtaG9va3ovZGVlcC1lcXVhbCdcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbiAgZmV0Y2hCaWJsZUJvb2ssXG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZSxcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVsYXknXG5pbXBvcnQgeyBhcmVNYXBzVGhlU2FtZSB9IGZyb20gJy4uLy4uL3V0aWxzL21hcHMnXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJy4uL1NjcmlwdHVyZVBhbmUvc3R5bGVkJ1xuaW1wb3J0IHtcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBWZXJzZVNlbGVjdG9yUG9wdXAgfSBmcm9tICcuLi9WZXJzZVNlbGVjdG9yUG9wdXAnXG5pbXBvcnQgeyBnZXRQYXRjaCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbGVzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSwgVmVyc2VPYmplY3RzVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuLyoqXG4gKiBjcmVhdGUgYSBzaG9ydCBjb21wYXJpc29uIHZlcnNlIHJlZiBvYmplY3Qgd2l0aG91dCBhbGwgdGhlIHZlcnNlRGF0YVxuICogQHBhcmFtIHZlcnNlUmVmXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVPYmplY3QodmVyc2VSZWYpIHtcbiAgY29uc3Qge1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgdmVyc2VEYXRhLFxuICB9ID0gdmVyc2VSZWYgfHwge31cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gdmVyc2VEYXRhPy52ZXJzZU9iamVjdHM/Lmxlbmd0aCA/IEpTT04uc3RyaW5naWZ5KHZlcnNlRGF0YS52ZXJzZU9iamVjdHMpIDogJydcbiAgcmV0dXJuIHtcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIHZlcnNlT2JqZWN0cyxcbiAgfVxufVxuXG4vKipcbiAqIGNvbXBhcmUgdHdvIHZlcnNlIHJlZnMgdG8gc2VlIGlmIHRoZXkgYXJlIHN1YnN0YW50aWFsbHkgc2ltaWxhclxuICogQHBhcmFtIHZlcnNlc0ZvclJlZjFcbiAqIEBwYXJhbSB2ZXJzZXNGb3JSZWYyXG4gKi9cbmZ1bmN0aW9uIGFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmMTogYW55W10sIHZlcnNlc0ZvclJlZjI6IGFueVtdKSB7XG4gIHZlcnNlc0ZvclJlZjEgPSB2ZXJzZXNGb3JSZWYxIHx8IFtdXG4gIHZlcnNlc0ZvclJlZjIgPSB2ZXJzZXNGb3JSZWYyIHx8IFtdXG4gIGxldCBhcmVTYW1lID0gZmFsc2VcblxuICBpZiAodmVyc2VzRm9yUmVmMS5sZW5ndGggPT09IHZlcnNlc0ZvclJlZjIubGVuZ3RoKSB7XG4gICAgYXJlU2FtZSA9IHRydWVcblxuICAgIGZvciAobGV0IGkgPSAwLCBsPSB2ZXJzZXNGb3JSZWYxLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgdmVyc2UxID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYxW2ldKVxuICAgICAgY29uc3QgdmVyc2UyID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYyW2ldKVxuICAgICAgYXJlU2FtZSA9IGlzRXF1YWwodmVyc2UxLCB2ZXJzZTIpXG5cbiAgICAgIGlmICghYXJlU2FtZSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmVTYW1lXG59XG5cbi8qKlxuICogZ2V0IHRoZSBVU0ZNIGZvciBib29rSWQgZnJvbSBzY3JpcHR1cmVDb25maWcuXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50Qm9vayA9IChzY3JpcHR1cmVDb25maWcsIGJvb2tJZCkgPT4ge1xuICBjb25zdCBsYXRlc3RCaWJsZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnByb2plY3RJZFxuICBjb25zdCBmaWxlbmFtZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/Lm5hbWUgLy8gTGlrZSBcIjU3LVRJVC51c2ZtXCJcbiAgbGV0IGlzQm9va1ZhbGlkID0gZmFsc2VcbiAgY29uc3QgYm9va05hbWUgPSBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUoZmlsZW5hbWUpXG4gIGlzQm9va1ZhbGlkID0gYm9va05hbWU/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcbiAgaWYgKCFpc0Jvb2tWYWxpZCkge1xuICAgIGNvbnNvbGUud2FybihgQ3VycmVudCBib29rSWQgaXMgJHtib29rSWR9IGFuZCBVU0ZNIGZpbGUgaXMgJHtmaWxlbmFtZX1gKVxuICB9XG4gIGlmIChsYXRlc3RCaWJsZT8udG9Mb3dlckNhc2UoKSAhPT0gYm9va0lkKSB7XG4gICAgY29uc29sZS53YXJuKGBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYnV0IGZldGNoZWQgcHJvamVjdElkIGlzICR7bGF0ZXN0QmlibGV9YClcbiAgICBpc0Jvb2tWYWxpZCA9IGZhbHNlXG4gIH1cbiAgaWYgKGlzQm9va1ZhbGlkKSB7XG4gICAgY29uc3QgYmlibGVVc2ZtID0gc2NyaXB0dXJlQ29uZmlnPy5iaWJsZVVzZm07XG4gICAgaWYgKGJpYmxlVXNmbSkge1xuICAgICAgcmV0dXJuIGJpYmxlVXNmbVxuICAgIH1cbiAgICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gQmlibGUgVVNGTSBtaXNzaW5nYClcbiAgfVxuICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gRXhwZWN0ZWQgJHtib29rSWR9IGJ1dCBnb3QgZmlsZSAke2ZpbGVuYW1lfWApXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjcmlwdHVyZUNhcmQoe1xuICBhcHBSZWYsXG4gIGF1dGhlbnRpY2F0aW9uLFxuICBib29rSW5kZXgsXG4gIGNhcmROdW0sXG4gIGNsYXNzZXMsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZ2V0TGFuZ3VhZ2UsXG4gIGdldExleGljb25EYXRhLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGh0dHBDb25maWcsXG4gIGlkLFxuICBpc05ULFxuICBsb2dnZWRJblVzZXIsXG4gIG9uTWluaW1pemUsXG4gIG9uUmVzb3VyY2VFcnJvcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgcmVmZXJlbmNlOiByZWZlcmVuY2VfLFxuICByZXNvdXJjZToge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIH0sXG4gIHJlc291cmNlTGluayxcbiAgc2VsZWN0ZWRRdW90ZSxcbiAgc2VydmVyLFxuICBzZXRDYXJkc0xvYWRpbmdNZXJnZSxcbiAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlLFxuICBzZXRDYXJkc1NhdmluZyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgdHJhbnNsYXRlLFxuICB0aXRsZSxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgdXBkYXRlTWVyZ2VTdGF0ZSxcbn0pIHtcbiAgY29uc3Qgc2F2ZUluUHJvZ3Jlc3MgPSBSZWFjdC51c2VSZWYoZmFsc2UpOyAvLyBBZGQgcmVmIHRvIHRyYWNrIHNhdmUgb3BlcmF0aW9uXG4gIGNvbnN0IGJvb2tJZCA9IHJlZmVyZW5jZV8/LmJvb2tJZCB8fCByZWZlcmVuY2VfPy5wcm9qZWN0SWQgLy8gb2xkZXIgdmVyc2lvbnMgdXNlIHByb2plY3RJZCwgc28gZmFsbCBiYWNrIHRvIHRoYXRcbiAgY29uc3QgcmVmZXJlbmNlID0ge1xuICAgIGJvb2tJZCxcbiAgICBjaGFwdGVyOiByZWZlcmVuY2VfPy5jaGFwdGVyLFxuICAgIHZlcnNlOiByZWZlcmVuY2VfPy52ZXJzZSxcbiAgfVxuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgY2hlY2tGb3JFZGl0QnJhbmNoOiAwLFxuICAgIGNvbnRleHRMaW5lczogNCxcbiAgICBjdXJyZW50UmVmZXJlbmNlOiBudWxsLFxuICAgIGVkaXRCcmFuY2hSZWFkeTogZmFsc2UsXG4gICAgZWRpdFZlcnNlOiBudWxsLFxuICAgIGhhdmVVbnNhdmVkQ2hhbmdlczogZmFsc2UsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGU6IG51bGwsXG4gICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgcmVmOiBhcHBSZWYsXG4gICAgc2F2ZUNsaWNrZWQ6IGZhbHNlLFxuICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgIHNhdmVEaWZmUGF0Y2g6IGZhbHNlLFxuICAgIHNhdmVGdWxsQmlibGVDb250ZW50OiBudWxsLFxuICAgIHNlbGVjdGlvbnM6IG5ldyBNYXAoKSxcbiAgICBzZWxlY3Rpb25zUmVmczogJycsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IG51bGwsXG4gICAgdmVyc2VzRm9yUmVmOiBudWxsLFxuICAgIHZlcnNlT2JqZWN0c01hcDogbmV3IE1hcCgpLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBjaGVja0ZvckVkaXRCcmFuY2gsXG4gICAgY29udGV4dExpbmVzLFxuICAgIGN1cnJlbnRSZWZlcmVuY2UsXG4gICAgZWRpdEJyYW5jaFJlYWR5LFxuICAgIGVkaXRWZXJzZSwgLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBiZWluZyBlZGl0dGVkXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzLFxuICAgIGxhc3RTZWxlY3RlZFF1b3RlLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVmLFxuICAgIHNhdmVDbGlja2VkLFxuICAgIHNhdmVDb250ZW50LFxuICAgIHNhdmVEaWZmUGF0Y2gsXG4gICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQsXG4gICAgc2VsZWN0aW9ucyxcbiAgICBzZWxlY3Rpb25zUmVmcyxcbiAgICBzaG93QWxpZ25tZW50UG9wdXAsXG4gICAgc3RhcnRTYXZlLFxuICAgIHVybEVycm9yLFxuICAgIHVzaW5nVXNlckJyYW5jaCxcbiAgICB1bnNhdmVkQ2hhbmdlc0xpc3QsXG4gICAgdmVyc2VPYmplY3RzTWFwLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfSA9IHN0YXRlXG5cbiAgY29uc3QgW2ZvbnRTaXplLCBzZXRGb250U2l6ZV0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9GT05UX1NJWkVfQkFTRSArIGNhcmROdW0sIDEwMClcbiAgY29uc3QgaXNOVF8gPSBpc05UKGJvb2tJZClcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGh0dHBDb25maWcgPSB7XG4gICAgLi4uaHR0cENvbmZpZyxcbiAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICBub0NhY2hlOiB0cnVlLFxuICB9IC8vIGRpc2FibGUgaHR0cCBjYWNoaW5nXG5cbiAgY29uc3Qge1xuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzZXRTY3JpcHR1cmUsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gIH0gPSB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gICAgYXBwUmVmOiByZWYsXG4gICAgY2FyZE51bSxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgZ3JlZWtSZXBvVXJsLFxuICAgIGhlYnJld1JlcG9VcmwsXG4gICAgaHR0cENvbmZpZyxcbiAgICBpc05ULFxuICAgIGxhbmd1YWdlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIG93bmVyLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVmZXJlbmNlOiBjdXJyZW50UmVmZXJlbmNlIHx8IHJlZmVyZW5jZSxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlc291cmNlTGluayxcbiAgICBzZXRVcmxFcnJvcjogKGVycm9yKSA9PiBzZXRTdGF0ZSh7IHVybEVycm9yOiBlcnJvciB9KSxcbiAgICBzZXJ2ZXIsXG4gICAgdGl0bGUsXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hlZFJlc291cmNlID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgcmVwbyA9IGAke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWR9XyR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkfWBcbiAgY29uc3QgdXNpbmdPcmlnaW5hbEJpYmxlID0gaXNPcmlnaW5hbEJpYmxlKHNjcmlwdHVyZUNvbmZpZ1sncmVzb3VyY2UnXT8ucHJvamVjdElkKVxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjYXJkUmVzb3VyY2VJZCA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZCB8fCByZXNvdXJjZUlkXG4gIC8vIEB0cy1pZ25vcmVcbiAgbGV0IHJlZl8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5yZWYgfHwgYXBwUmVmXG4gIGNvbnN0IGNhblVzZUVkaXRCcmFuY2ggPSAhIShsb2dnZWRJblVzZXIgJiYgYXV0aGVudGljYXRpb24gJiYgKHJlc291cmNlSWQgIT09IE9SSUdJTkFMX1NPVVJDRSkgJiYgLy8gVFJJQ0tZIGlmIG5vdCBvcmlnaW5hbCBsYW5ndWFnZSBhbmQgd2UgaGF2ZSBsb2dpbiBkYXRhLCB0aGVuIHdlIGNhbiB1c2UgdGhlIGVkaXQgYnJhbmNoXG4gICAgKChyZWZfID09PSAnbWFzdGVyJykgfHwgKHJlZl8uaW5jbHVkZXMobG9nZ2VkSW5Vc2VyKSkpKSAvLyBhbHNvIG1ha2Ugc3VyZSBub3QgYSB2ZXJzaW9uIHRhZ1xuXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgYnJhbmNoRGV0ZXJtaW5lZCxcbiAgICAgIHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgIHVzaW5nVXNlckJyYW5jaDogX3VzaW5nVXNlckJyYW5jaCxcbiAgICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHN0YXJ0RWRpdDogc3RhcnRFZGl0QnJhbmNoLFxuICAgICAgZmluaXNoRWRpdCxcbiAgICB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgYXBwUmVmLFxuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGNhcmRSZXNvdXJjZUlkLFxuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBsYW5ndWFnZUlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3duZXIsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHNlcnZlcixcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB9KVxuXG4gIGNvbnN0IF91c2VCcmFuY2hNZXJnZXIgPSB1c2VCcmFuY2hNZXJnZXIoeyBzZXJ2ZXIsIG93bmVyLCByZXBvLCB1c2VyQnJhbmNoOiB1c2VyRWRpdEJyYW5jaE5hbWUsIHRva2VuaWQ6IGF1dGhlbnRpY2F0aW9uPy50b2tlbj8uc2hhMSB9KVxuICBjb25zdCB7XG4gICAgc3RhdGU6IHtcbiAgICAgIG1lcmdlU3RhdHVzOiBtZXJnZVRvTWFzdGVyLFxuICAgICAgdXBkYXRlU3RhdHVzOiBtZXJnZUZyb21NYXN0ZXIsXG4gICAgfSxcbiAgfSA9IF91c2VCcmFuY2hNZXJnZXJcblxuICBjb25zdCB1cGRhdGVCdXR0b25Qcm9wcyA9IHVzZUNvbnRlbnRVcGRhdGVQcm9wcyh7XG4gICAgaXNTYXZpbmc6IHN0YXJ0U2F2ZSxcbiAgICB1c2VCcmFuY2hNZXJnZXI6IF91c2VCcmFuY2hNZXJnZXIsXG4gICAgb25VcGRhdGU6ICgpID0+IHtcbiAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKCkpXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCB7XG4gICAgY2FsbFVwZGF0ZVVzZXJCcmFuY2gsXG4gICAgaXNFcnJvckRpYWxvZ09wZW4sXG4gICAgb25DbG9zZUVycm9yRGlhbG9nLFxuICAgIGlzTG9hZGluZzogaXNVcGRhdGVMb2FkaW5nLFxuICAgIGRpYWxvZ01lc3NhZ2UsXG4gICAgZGlhbG9nVGl0bGUsXG4gICAgZGlhbG9nTGluayxcbiAgICBkaWFsb2dMaW5rVG9vbHRpcCxcbiAgfSA9IHVwZGF0ZUJ1dHRvblByb3BzXG5cbiAgY29uc3Qgb25NZXJnZSA9ICgpID0+IHtcbiAgICBmaW5pc2hFZGl0KClcbiAgICBjb25zb2xlLmxvZyhgb25NZXJnZSgpIHN3aXRjaGluZyBiYWNrIHRvIG1hc3RlciBhZnRlciBtZXJnZSBhcHBSZWY6YCwgYXBwUmVmKVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgcmVmOiBhcHBSZWYsXG4gICAgfSlcbiAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBjaGVja0ZvckVkaXRCcmFuY2g6IGNoZWNrRm9yRWRpdEJyYW5jaCArIDEsIC8vIHRyaWdnZXIgcmVjaGVjayBvZiB1c2VyIGJyYW5jaCB3aGljaCB3aWxsIHN3aXRjaCB0aGUgYnJhbmNoIGJhY2sgdG8gbWFzdGVyXG4gICAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgeyBpc0xvYWRpbmc6IGlzTWVyZ2VMb2FkaW5nLCBjYWxsTWVyZ2VVc2VyQnJhbmNoIH0gPSB1c2VNYXN0ZXJNZXJnZVByb3BzKHtcbiAgICBpc1NhdmluZzogc3RhcnRTYXZlLFxuICAgIHVzZUJyYW5jaE1lcmdlcjogX3VzZUJyYW5jaE1lcmdlcixcbiAgICBvbk1lcmdlLFxuICB9KVxuXG4gIC8vIFNpbmNlIG9yaWdpbmFsIHRleHQgKEdyZWVrL0hlYnJldykgc2hvdWxkIG5vdCBiZSBlZGl0ZWQsIGRvIG5vdCBpbmNsdWRlXG4gIC8vIHRoZW0gaW4gbWVyZ2Ugc3RhdGUgc2luY2UgdXNlciB3aWxsIG5vdCBtZXJnZS9wdXNoIGNoYW5nZXMuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNhcmRSZXNvdXJjZUlkICYmICF1c2luZ09yaWdpbmFsQmlibGUpIHtcbiAgICAgIHVwZGF0ZU1lcmdlU3RhdGUgJiYgdXBkYXRlTWVyZ2VTdGF0ZShcbiAgICAgICAgY2FyZFJlc291cmNlSWQsXG4gICAgICAgIHNjcmlwdHVyZUNvbmZpZy50aXRsZSxcbiAgICAgICAgbWVyZ2VGcm9tTWFzdGVyLFxuICAgICAgICBtZXJnZVRvTWFzdGVyLFxuICAgICAgICBjYWxsVXBkYXRlVXNlckJyYW5jaCxcbiAgICAgICAgY2FsbE1lcmdlVXNlckJyYW5jaCxcbiAgICAgIClcbiAgICB9XG4gIH0sW2NhcmRSZXNvdXJjZUlkLCBzY3JpcHR1cmVDb25maWcudGl0bGUsIG1lcmdlRnJvbU1hc3RlciwgbWVyZ2VUb01hc3Rlcl0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNVcGRhdGVMb2FkaW5nKSB7XG4gICAgICBzZXRDYXJkc0xvYWRpbmdVcGRhdGU/LihwcmV2Q2FyZHNMb2FkaW5nID0+IFsuLi5wcmV2Q2FyZHNMb2FkaW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ1VwZGF0ZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gcHJldkNhcmRzTG9hZGluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgIH1cbiAgfSwgW2lzVXBkYXRlTG9hZGluZ10pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNNZXJnZUxvYWRpbmcpIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ01lcmdlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBbLi4ucHJldkNhcmRzTG9hZGluZywgY2FyZFJlc291cmNlSWRdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRDYXJkc0xvYWRpbmdNZXJnZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gcHJldkNhcmRzTG9hZGluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgIH1cbiAgfSwgW2lzTWVyZ2VMb2FkaW5nXSlcblxuICBjb25zdCB3b3JraW5nUmVmID0gY2FuVXNlRWRpdEJyYW5jaCA/IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCA6IGFwcFJlZlxuICBsZXQgc2NyaXB0dXJlVGl0bGVcblxuICBpZiAoIWNhblVzZUVkaXRCcmFuY2ggJiYgIXJlYWR5Rm9yRmV0Y2gpIHsgLy8gaWYgYmlibGUgbm90IGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgbWFrZSBzdXJlIGl0J3MgcmVhZHlcbiAgICBzZXRTdGF0ZSh7IHJlYWR5Rm9yRmV0Y2g6IHRydWUgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgYm9vayBjaGFuZ2VkYCwgeyBib29rSWQsIG93bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkIH0pXG5cbiAgICBpZiAoY2FuVXNlRWRpdEJyYW5jaCkgeyAvLyBpZiBiaWJsZSBlbGlnaWJsZSBmb3IgdXNlciBicmFuY2gsIHJlZnJlc2ggaXRcbiAgICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogZmFsc2UsIGNoZWNrRm9yRWRpdEJyYW5jaDogY2hlY2tGb3JFZGl0QnJhbmNoICsgMSB9KVxuICAgIH1cbiAgfSwgW2Jvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0VxdWFsKHJlZmVyZW5jZSwgY3VycmVudFJlZmVyZW5jZSkpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVDYXJkIHJlZmVyZW5jZSBjaGFuZ2VkYCwgcmVmZXJlbmNlKVxuICAgICAgc2V0U3RhdGUoeyBjdXJyZW50UmVmZXJlbmNlOiByZWZlcmVuY2UsIGVkaXRWZXJzZTogbnVsbCB9KVxuICAgIH1cbiAgfSwgW3JlZmVyZW5jZV0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2FpdGluZyBmb3IgYnJhbmNoIGZldGNoIHRvIGNvbXBsZXRlXG4gICAgaWYgKCFyZWFkeUZvckZldGNoICYmIGJyYW5jaERldGVybWluZWQgKSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBicmFuY2hEZXRlcm1pbmVkIGlzICR7YnJhbmNoRGV0ZXJtaW5lZH0gYW5kIHdvcmtpbmdSZWYgaXMgJHt3b3JraW5nUmVmfWApXG4gICAgICBzZXRTdGF0ZSh7IHJlYWR5Rm9yRmV0Y2g6IHRydWUsIHJlZjogd29ya2luZ1JlZiB9KVxuICAgIH1cbiAgfSwgW2JyYW5jaERldGVybWluZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGlmIChfdXNpbmdVc2VyQnJhbmNoICE9PSB1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICAgIHNldFN0YXRlKHsgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoIH0pXG4gICAgfVxuICB9LCBbX3VzaW5nVXNlckJyYW5jaCwgdXNpbmdVc2VyQnJhbmNoXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgZGlzcGxheSBzdGF0dXMgaWYgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1cblxuICAgIGlmIChlcnJvcikgeyAvLyBpZiBlcnJvciB3YXMgZm91bmQgZG8gY2FsbGJhY2tcbiAgICAgIGNvbnN0IHJlc291cmNlU3RhdHVzID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1c1xuICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZUNvbmZpZylcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UXylcbiAgICAgIGNvbnN0IGlzQWNjZXNzRXJyb3IgPSByZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihtZXNzYWdlLCBpc0FjY2Vzc0Vycm9yLCByZXNvdXJjZVN0YXR1cylcbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzPy5bRVJST1JfU1RBVEVdXSlcblxuICBpZiAoc2NyaXB0dXJlQ29uZmlnLnRpdGxlICYmIHNjcmlwdHVyZUNvbmZpZy52ZXJzaW9uKSB7XG4gICAgc2NyaXB0dXJlVGl0bGUgPSBgJHtzY3JpcHR1cmVDb25maWcudGl0bGV9IHYke3NjcmlwdHVyZUNvbmZpZy52ZXJzaW9ufWBcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC51cGRhdGVUaXRsZShzY3JpcHR1cmVDb25maWcucmVzb3VyY2VMaW5rLCBzY3JpcHR1cmVUaXRsZSlcbiAgfSBlbHNlIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGBUaXRsZSBtaXNzaW5nIGZyb20gcHJvamVjdCBtYW5pZmVzdGBcbiAgfVxuXG4gIC8qKiBEeW5hbWljYWxseSBjcmVhdGVzIHRoZSBzY3JpcHR1cmUgc2VsZWN0aW9uIGRyb3Bkb3duIHRvIGJlIGluc2VydGVkIGludG8gY2FyZCBzZXR0aW5ncyAqL1xuICBmdW5jdGlvbiBnZXRTY3JpcHR1cmVTZWxlY3RvcigpIHtcbiAgICBjb25zdCBzY3JpcHR1cmVTZWxlY3Rpb25Db25maWcgPSBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICAgICAgbGFiZWwsXG4gICAgICByZXNvdXJjZUxpbms6IHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssXG4gICAgICBzZXRTY3JpcHR1cmUsXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgICB9KVxuXG4gICAgcmV0dXJuIDxTY3JpcHR1cmVTZWxlY3RvciB7Li4uc2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnfSBzdHlsZT17c3R5bGV9IGVycm9yTWVzc2FnZT17dXJsRXJyb3J9IC8+XG4gIH1cblxuICAvKipcbiAgICogc2V0IGVkaXQgc3RhdGUgZm9yIHNwZWNpZmljIHZlcnNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzZVJlZiAtIHJlZmVyZW5jZSBvZiB2ZXJzZSBiZWluZyBlZGl0ZWQgb3IgZmluaXNoZWQgZWRpdFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVkaXRpbmcgLSB0cnVlIHdoZW4gZWRpdGluZ1xuICAgKi9cbiAgZnVuY3Rpb24gc2V0RWRpdFZlcnNlKHZlcnNlUmVmLCBlZGl0aW5nKSB7XG4gICAgaWYgKGVkaXRpbmcgJiYgKHZlcnNlUmVmICE9PSBlZGl0VmVyc2UpKSB7IC8vIGNoZWNrIGlmIHdlIG5lZWQgdG8gc2V0IGZsYWcgdGhhdCB3ZSBhcmUgZWRpdGluZyB0aGlzIHZlcnNlXG4gICAgICBzZXRTdGF0ZSh7IGVkaXRWZXJzZTogdmVyc2VSZWYgfSlcbiAgICB9IGVsc2UgaWYgKCFlZGl0aW5nICYmICh2ZXJzZVJlZiA9PT0gZWRpdFZlcnNlKSkgeyAvLyBjbGVhciBlZGl0IGZsYWcgaWYgaXQgaXMgZm9yIGN1cnJlbnQgZWRpdCB2ZXJzZVxuICAgICAgc2V0U3RhdGUoeyBlZGl0VmVyc2U6IG51bGwgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXNhYmxlQ2hhbmdlQnV0dG9ucyA9ICEhZWRpdFZlcnNlIC8vIHdlIGRvbid0IHdhbnQgdG8gYWxsb3cgY2xpY2tpbmcgb24gY2hhbmdlIGJ1dHRvbnMgd2hpbGUgZWRpdGluZ1xuXG4gIGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBvbk1lbnVDbG9zZSgpYClcbiAgICBzZXRTdGF0ZSh7IHVybEVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGxhbmd1YWdlSWRfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZFxuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKHsgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZF8gfSlcbiAgY29uc3QgZGlyZWN0aW9uID0gKGxhbmd1YWdlPy5kaXJlY3Rpb24pIHx8ICdsdHInXG4gIGNvbnN0IF9yZWZlcmVuY2UgPSBjdXJyZW50UmVmZXJlbmNlIHx8IHJlZmVyZW5jZVxuXG4gIGNvbnN0IGlzSGVicmV3ID0gKGxhbmd1YWdlSWRfID09PSAnaGJvJylcbiAgY29uc3QgZm9udEZhY3RvciA9IGlzSGVicmV3ID8gMS40IDogMSAvLyB3ZSBhdXRvbWF0aWNhbGx5IHNjYWxlIHVwIGZvbnQgc2l6ZSBmb3IgSGVicmV3XG4gIGNvbnN0IHNjYWxlZEZvbnRTaXplID0gZm9udFNpemUgKiBmb250RmFjdG9yXG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gICAgLi4uKGlzSGVicmV3ID8ge2xpbmVIZWlnaHQ6ICcyLjBlbSd9IDoge30pXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuXG4gIGlmIChkaXNhYmxlV29yZFBvcG92ZXIgPT09IHVuZGVmaW5lZCkgeyAvLyBpZiBub3Qgc3BlY2lmaWVkLCB0aGVuIGRldGVybWluZSBpZiBvcmlnaW5hbCBsYW5ndWFnZSByZXNvdXJjZVxuICAgIGRpc2FibGVXb3JkUG9wb3Zlcl8gPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIH1cblxuICBjb25zdCBlbmFibGVFZGl0ID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICBjb25zdCBlbmFibGVBbGlnbm1lbnQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IG9yaWdpbmFsUmVwb1VybCA9IGlzTmV3VGVzdGFtZW50ID8gZ3JlZWtSZXBvVXJsIDogaGVicmV3UmVwb1VybFxuICBjb25zdCBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJbmRleCxcbiAgICBjdXJyZW50VmVyc2VSZWY6IF9yZWZlcmVuY2UsXG4gICAgZW5hYmxlRWRpdCxcbiAgICBlbmFibGVBbGlnbm1lbnQsXG4gICAgaHR0cENvbmZpZyxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgbG9nZ2VkSW5Vc2VyOiBjYW5Vc2VFZGl0QnJhbmNoID8gbG9nZ2VkSW5Vc2VyIDogbnVsbCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIG9yaWdpbmFsUmVwb1VybCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc3RhcnRFZGl0QnJhbmNoLFxuICAgIHNldFNhdmVkQ2hhbmdlczogX3NldFNhdmVkQ2hhbmdlcyxcbiAgICBzb3VyY2VMYW5ndWFnZTogaXNOVF8gPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkcsXG4gICAgdGFyZ2V0TGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgIHRpdGxlOiBzY3JpcHR1cmVUaXRsZSxcbiAgICB3b3JraW5nUmVzb3VyY2VCcmFuY2g6IHJlZixcbiAgfVxuXG4gIC8qKlxuICAgKiB0aGlzIGdldHMgY2FsbGVkIHdoZW5ldmVyIGEgc2NyaXB0dXJlIHBhbmUgaGFzIGEgY2hhbmdlIGluIHNhdmUgc3RhdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGN1cnJlbnRJbmRleFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNhdmVkXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGdldENoYW5nZXMgLSB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciB1c2VyIGNsaWNrcyBzYXZlIGJ1dHRvblxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjbGVhckNoYW5nZXMgLSB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBzYXZlIGhhcyBjb21wbGV0ZWRcbiAgICogQHBhcmFtIHtvYmplY3R9IHN0YXRlIC0gY3VycmVudCBzdGF0ZSBvZiB3b3JkIGFsaWdubWVudC9lZGl0XG4gICAqL1xuICBmdW5jdGlvbiBfc2V0U2F2ZWRDaGFuZ2VzKGN1cnJlbnRJbmRleCwgc2F2ZWQsIHsgZ2V0Q2hhbmdlcyA9IG51bGwsIGNsZWFyQ2hhbmdlcyA9IG51bGwsIHN0YXRlID0gbnVsbCB9KSB7XG4gICAgY29uc3QgX3Vuc2F2ZWRDaGFuZ2VzTGlzdCA9IHsgLi4udW5zYXZlZENoYW5nZXNMaXN0IH1cblxuICAgIGlmIChzYXZlZCkge1xuICAgICAgaWYgKF91bnNhdmVkQ2hhbmdlc0xpc3QuaGFzT3duUHJvcGVydHkoY3VycmVudEluZGV4KSkge1xuICAgICAgICBkZWxldGUgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIF91bnNhdmVkQ2hhbmdlc0xpc3RbY3VycmVudEluZGV4XSA9IHsgZ2V0Q2hhbmdlcywgY2xlYXJDaGFuZ2VzLCBzdGF0ZSB9IC8vIHVwZGF0ZSB3aXRoIGxhdGVzdFxuICAgIH1cblxuICAgIGNvbnN0IF9oYXZlVW5zYXZlZENoYW5nZXMgPSAhIU9iamVjdC5rZXlzKF91bnNhdmVkQ2hhbmdlc0xpc3QpLmxlbmd0aFxuXG4gICAgaWYgKGhhdmVVbnNhdmVkQ2hhbmdlcyAhPSBfaGF2ZVVuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICBzZXRTYXZlZENoYW5nZXMgJiYgc2V0U2F2ZWRDaGFuZ2VzKHJlc291cmNlSWQsICFfaGF2ZVVuc2F2ZWRDaGFuZ2VzKVxuICAgICAgc2V0U3RhdGUoeyBoYXZlVW5zYXZlZENoYW5nZXM6IF9oYXZlVW5zYXZlZENoYW5nZXMgfSlcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCwgdW5zYXZlZENoYW5nZXNMaXN0KSkge1xuICAgICAgc2V0U3RhdGUoeyB1bnNhdmVkQ2hhbmdlc0xpc3Q6IF91bnNhdmVkQ2hhbmdlc0xpc3QgfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogc2VhcmNoIGNoYXB0ZXIgb3IgdmVyc2UgY2h1bmsgdG8gbGluZSB0aGF0IHN0YXJ0cyB3aXRoIGZpbmRJdGVtXG4gICAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gZmluZEl0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gY2h1bmtzXG4gICAqL1xuICBmdW5jdGlvbiBmaW5kUmVmSW5BcnJheShmaW5kSXRlbSwgY2h1bmtzKSB7XG4gICAgY29uc3QgcmVmXyA9IGZpbmRJdGVtICsgJydcbiAgICBjb25zdCByZWZMZW4gPSByZWZfLmxlbmd0aFxuICAgIGNvbnN0IGluZGV4ID0gY2h1bmtzLmZpbmRJbmRleCgoY2h1bmssIGlkeCkgPT4ge1xuICAgICAgaWYgKGlkeCA+IDApIHtcbiAgICAgICAgaWYgKGNodW5rLnN1YnN0cmluZygwLCByZWZMZW4pID09PSByZWZfKSB7XG4gICAgICAgICAgY29uc3QgbmV4dENoYXIgPSBjaHVua1tyZWZMZW5dXG5cbiAgICAgICAgICBpZiAoKG5leHRDaGFyID4gJzknKSB8fCAobmV4dENoYXIgPCAnMCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSlcbiAgICByZXR1cm4gaW5kZXhcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEJvb2tOYW1lKCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBib29rQ2FwcyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlPy5ib29rSWQgPyBzY3JpcHR1cmVDb25maWcucmVmZXJlbmNlLmJvb2tJZC50b1VwcGVyQ2FzZSgpIDogJydcbiAgICByZXR1cm4gYCR7Ym9va0luZGV4fS0ke2Jvb2tDYXBzfS51c2ZtYFxuICB9XG5cbiAgY29uc3QgZmlsZXBhdGggPSBnZXRCb29rTmFtZSgpXG4gIGNvbnN0IHNoYSA9IGZldGNoZWRSZXNvdXJjZT8uc2hhXG5cbiAgLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBlZGl0IHN0YXRlXG4gIGNvbnN0IHtcbiAgICBlcnJvcjogc2F2ZUVycm9yLFxuICAgIGlzRXJyb3I6IGlzU2F2ZUVycm9yLFxuICAgIG9uU2F2ZUVkaXQsXG4gICAgb25TYXZlRWRpdFBhdGNoLFxuICB9ID0gdXNlRWRpdCh7XG4gICAgc2hhLFxuICAgIG93bmVyLFxuICAgIGNvbnRlbnQ6IHNhdmVDb250ZW50LFxuICAgIGNvbmZpZzoge1xuICAgICAgY2FjaGU6IHsgbWF4QWdlOiAwIH0sXG4gICAgICAuLi5hdXRoZW50aWNhdGlvbj8uY29uZmlnLFxuICAgICAgZG9udENyZWF0ZUJyYW5jaDogdHJ1ZSxcbiAgICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aW1lb3V0OiBodHRwQ29uZmlnPy5zZXJ2ZXJUaW1lT3V0IHx8IGh0dHBDb25maWc/LnRpbWVvdXQgfHwgMTAwMDAsXG4gICAgICBzZXJ2ZXIsXG4gICAgfSxcbiAgICBhdXRob3I6IGxvZ2dlZEluVXNlcixcbiAgICBlbWFpbDogYXV0aGVudGljYXRpb24/LnVzZXI/LmVtYWlsLFxuICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgYnJhbmNoOiB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG4gICAgZmlsZXBhdGgsXG4gICAgcmVwbyxcbiAgfSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHdlIGdldCBhIHNhdmUgc2F2ZUVycm9yXG4gICAgaWYgKHNhdmVFcnJvciAmJiBpc1NhdmVFcnJvciAmJiAhc3RhcnRTYXZlKSB7IC8vIGlmIGVycm9yIHRoZW4gc2hvdyBhZnRlciBzYXZlIGNvbXBsZXRlcywgc2luY2Ugd2UgbWF5IHJldHJ5XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZSBlcnJvcmAsIHNhdmVFcnJvcilcbiAgICAgIG9uUmVzb3VyY2VFcnJvciAmJiBvblJlc291cmNlRXJyb3IobnVsbCwgZmFsc2UsIG51bGwsIGBFcnJvciBzYXZpbmcgJHtsYW5ndWFnZUlkfV8ke2NhcmRSZXNvdXJjZUlkfSAke3NhdmVFcnJvcn1gLCB0cnVlKVxuICAgICAgc2F2ZUluUHJvZ3Jlc3MuY3VycmVudCA9IGZhbHNlOyAvLyBSZXNldCB0aGUgZmxhZyBvbiBlcnJvclxuICAgIH1cbiAgfSwgW3NhdmVFcnJvciwgaXNTYXZlRXJyb3IsIHN0YXJ0U2F2ZV0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2hlbiBzdGFydFNhdmUgZ29lcyB0cnVlLCBzYXZlIGVkaXRzIHRvIHVzZXIgYnJhbmNoIGFuZCB0aGVuIGNsZWFyIHN0YXJ0U2F2ZVxuICAgIGZ1bmN0aW9uIF9zYXZlU3VjY2VzZnVsKCkge1xuICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2ZSBzY3JpcHR1cmUgZWRpdHMgc3VjY2Vzc2ApXG4gICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB1bnNhdmVkQ2FyZEluZGljZXMgPSBPYmplY3Qua2V5cyh1bnNhdmVkQ2hhbmdlc0xpc3QpXG5cbiAgICAgIGlmICh1bnNhdmVkQ2FyZEluZGljZXM/Lmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICBjb25zdCB7Y2xlYXJDaGFuZ2VzfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkSW5kZXhdXG4gICAgICAgICAgY2xlYXJDaGFuZ2VzICYmIGNsZWFyQ2hhbmdlcygpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc29sZS5pbmZvKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFJlbG9hZGluZyByZXNvdXJjZScpXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgICAgIHJlYWR5Rm9yRmV0Y2g6IHRydWUsXG4gICAgICAgIHNhdmVGdWxsQmlibGVDb250ZW50OiBudWxsLFxuICAgICAgICBzYXZlQ29udGVudDogbnVsbCxcbiAgICAgICAgcmVmOiB1c2VyRWRpdEJyYW5jaE5hbWUsXG4gICAgICB9KVxuICAgICAgZGVsYXkoMTAwKS50aGVuKCgpID0+IHtcbiAgICAgICAgc2V0Q2FyZHNTYXZpbmcocHJldkNhcmRzU2F2aW5nID0+IHByZXZDYXJkc1NhdmluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgICAgICBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKHNoYSwgdXNlckVkaXRCcmFuY2hOYW1lKVxuICAgICAgfSlcbiAgICAgIHNhdmVJblByb2dyZXNzLmN1cnJlbnQgPSBmYWxzZTsgLy8gUmVzZXQgdGhlIGZsYWcgb24gc3VjY2Vzc1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2dDaGFuZ2VkKGNvbW1lbnQsIGluaXRpYWwsIGZpbmFsLCBkaWZmLCBzaGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7Y29tbWVudH0gLSBzaGE6YCwgc2hhKVxuICAgICAgY29uc29sZS5lcnJvcihgaW5pdGlhbGAsIGluaXRpYWwpXG4gICAgICBjb25zb2xlLmVycm9yKGBmaW5hbGAsIGZpbmFsKVxuICAgICAgY29uc29sZS5lcnJvcihgZGlmZmAsIGRpZmYpXG4gICAgfVxuXG4gICAgY29uc3QgX3NhdmVFZGl0ID0gYXN5bmMgKCkgPT4geyAvLyBiZWdpbiB1cGxvYWRpbmcgbmV3IFVTRk1cbiAgICAgIGlmIChzYXZlSW5Qcm9ncmVzcy5jdXJyZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFNhdmUgYWxyZWFkeSBpbiBwcm9ncmVzcywgc2tpcHBpbmcgZHVwbGljYXRlIGNhbGwnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzYXZlSW5Qcm9ncmVzcy5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIGNvbnNvbGUuaW5mbyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBVc2luZyBzaGE6ICR7c2hhfWApXG4gICAgICBsZXQgdXBsb2FkRnVuY3Rpb24gPSBvblNhdmVFZGl0XG4gICAgICBpZiAoc2F2ZURpZmZQYXRjaCkge1xuICAgICAgICB1cGxvYWRGdW5jdGlvbiA9IG9uU2F2ZUVkaXRQYXRjaCAvLyBpZiB3ZSBhcmUgc2VuZGluZyB1cCBhIGRpZmZwYXRjaCwgd2Ugd2lsbCB1c2UgdGhpcyBtZXRob2RcbiAgICAgIH1cblxuICAgICAgbGV0IHN1Y2Nlc3MgPSBhd2FpdCB1cGxvYWRGdW5jdGlvbih1c2VyRWRpdEJyYW5jaE5hbWUpLnRoZW4ociA9PiByKS5jYXRjaCgoKSA9PiBmYWxzZSkvLyBwdXNoIGNoYW5nZSB0byBzZXJ2ZXJcbiAgICAgIGxldCBlcnJvciA9IHN1Y2Nlc3MgPyBudWxsIDogJ3NhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQnXG5cbiAgICAgIGlmICghc3VjY2VzcykgeyAvLyBpZiBzYXZlIGZhaWxlZCwgYXR0ZW1wdCBhIHJldHJ5XG4gICAgICAgIC8vIGxvZ0NoYW5nZWQoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCwgc2VudCcsIHNhdmVGdWxsQmlibGVDb250ZW50Py5pbml0aWFsLCBzYXZlRnVsbEJpYmxlQ29udGVudD8ubmV3LCBzYXZlQ29udGVudCwgc2hhKVxuICAgICAgICBjb25zb2xlLmVycm9yKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQsIHJldHJ5aW5nIC0gY29udGV4dCBsaW5lcyBhcmUgJHtjb250ZXh0TGluZXN9LCBkaWZmOlxcbmAsIHNhdmVDb250ZW50KVxuICAgICAgICBhd2FpdCBkZWxheSg1MDApIC8vIHNpbmNlIHdlIGhhZCBhbiBlcnJvciwgd2FpdCBmb3IgZGF0YSB0byB1cGRhdGUgb24gc2VydmVyIGJlZm9yZSBnZXR0aW5nIHRoZSBsYXRlc3RcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAvLyBmZXRjaCB0aGUgbGF0ZXN0IGJvb2sgY29udGVudCwgc28gd2UgY2FuIHRlbGwgaWYgbGF0ZXN0IGNoYW5nZXMgd2VyZSBzYXZlZCBhbmQgaGF2ZSB0aGUgbGF0ZXN0IGZpbGUgc2hhXG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBmZXRjaEJpYmxlQm9vayhzZXJ2ZXIsIGh0dHBDb25maWcsIHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2UsIHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlKVxuICAgICAgICBlcnJvciA9IHJlc3VsdHM/LmVycm9yXG4gICAgICAgIGxldCBfc2F2ZUNvbnRlbnQgPSBzYXZlQ29udGVudFxuICAgICAgICBsZXQgZmlsZVNoYSA9IG51bGxcbiAgICAgICAgY29uc3Qgc2F2ZWRCaWJsZVVzZm0gPSByZXN1bHRzPy5iaWJsZVVzZm1cbiAgICAgICAgY29uc3QgZWRpdGVkQmlibGVVc2ZtID0gc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/Lm5ld1xuICAgICAgICBsZXQgdXBUb0RhdGUgPSBzYXZlZEJpYmxlVXNmbSA9PT0gZWRpdGVkQmlibGVVc2ZtIC8vIGNoZWNrIGlmIG5ldyBiaWJsZSBjb250ZW50IGRpZmZlcnMgZnJvbSBsYXRlc3Qgb24gcmVwb1xuXG4gICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICBpZiAodXBUb0RhdGUpIHsgLy8gaWYgdGhlIGRhdGEgd2UgYXJlIHRyeWluZyB0byBzYXZlIG1hdGNoZXMgd2hhdCBpcyBub3cgb24gdGhlIHNlcnZlciB0aGVyZSBpcyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBkYXRhIHdhcyBjb3JyZWN0bHkgdXBsb2FkZWQsIHNvIG5vdGhpbmcgbW9yZSB0byBkbycpXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbmV3Q29udGV4dExpbmVzID0gY29udGV4dExpbmVzICsgMVxuICAgICAgICAgICAgaWYgKHNhdmVEaWZmUGF0Y2gpIHtcbiAgICAgICAgICAgICAgYXdhaXQgZGVsYXkoMTAwKSAvLyBhbGxvdyBVSSB0byB1cGRhdGUgYmVmb3JlIHJ1bm5pbmcgY29tcHV0YXRpb25hbGx5IGV4cGVuc2l2ZSBmdW5jdGlvblxuICAgICAgICAgICAgICAvLyByZWdlbmVyYXRlIHRoZSBwYXRjaCBhZ2FpbnN0IHRoZSBsYXRlc3QgY29udGVudCBhbmQgYWRkIG1vcmUgbGluZXMgb2YgY29udGV4dFxuICAgICAgICAgICAgICAvLyBUUklDS1kgLSB3ZSBoYXZlIG5vdGljZWQgdGhhdCBEQ1Mgd2lsbCBmYWlsIHRoZSBwYXRjaCBzb21ldGltZXMsIGJ1dCBpZiB3ZSBpbmNyZWFzZSB0aGUgY29udGV4dCBsaW5lIGNvdW50IGl0IHdpbGwgc3VjY2VlZCwgc28gd2UgYXJlIGluY3JlYXNpbmcgdGhlIGNvbnRleHQgbGluZSBjb3VudFxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBjb250ZXh0IGxpbmVzIGFyZSBub3cgJHtuZXdDb250ZXh0TGluZXN9YClcbiAgICAgICAgICAgICAgY29uc3QgZGlmZlBhdGNoID0gZ2V0UGF0Y2goc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/LmZpbGVuYW1lLCBzYXZlZEJpYmxlVXNmbSwgZWRpdGVkQmlibGVVc2ZtLCBmYWxzZSwgbmV3Q29udGV4dExpbmVzKVxuICAgICAgICAgICAgICBfc2F2ZUNvbnRlbnQgPSBkaWZmUGF0Y2hcbiAgICAgICAgICAgICAgZmlsZVNoYSA9IHJlc3VsdHM/LnNoYVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdWNjZXNzID0gYXdhaXQgdXBsb2FkRnVuY3Rpb24odXNlckVkaXRCcmFuY2hOYW1lLCBfc2F2ZUNvbnRlbnQsIGZpbGVTaGEpIC8vIHB1c2ggY2hhbmdlIHRvIHNlcnZlclxuICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgIGxvZ0NoYW5nZWQoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCBvbiBzZWNvbmQgYXR0ZW1wdCwgc2VudCcsIHNhdmVkQmlibGVVc2ZtLCBlZGl0ZWRCaWJsZVVzZm0sIF9zYXZlQ29udGVudCwgZmlsZVNoYSlcbiAgICAgICAgICAgICAgZXJyb3IgPSAnc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCBvbiBzZWNvbmQgYXR0ZW1wdCdcbiAgICAgICAgICAgICAgbmV3Q29udGV4dExpbmVzKysgLy8gaWYgZmFpbGVkIGluY3JlYXNlIHRoZSBjb3VudCBmb3IgbmV4dCBhdHRlbXB0XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHN1Y2Nlc3NmdWwgb24gc2Vjb25kIHdpdGggZGlmZicsIF9zYXZlQ29udGVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuZXdDb250ZXh0TGluZXMgPiAxMCkge1xuICAgICAgICAgICAgICBuZXdDb250ZXh0TGluZXMgPSA0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRTdGF0ZSh7Y29udGV4dExpbmVzOiBuZXdDb250ZXh0TGluZXN9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWVycm9yICYmIHN1Y2Nlc3MpIHsgLy8gaWYgbm8gZXJyb3IgbWVzc2FnZSBhbmQgc2F2ZSB3YXMgYSBzdWNjZXNzXG4gICAgICAgIHJldHVybiBfc2F2ZVN1Y2Nlc2Z1bCgpIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgIH1cblxuICAgICAgY29uc29sZS5lcnJvcihgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSAke2Vycm9yIHx8ICd1bmtub3duIHNhdmUgZXJyb3InfWApXG4gICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICBzZXRTdGF0ZSh7c3RhcnRTYXZlOiBmYWxzZX0pXG4gICAgICBzYXZlSW5Qcm9ncmVzcy5jdXJyZW50ID0gZmFsc2U7IC8vIFJlc2V0IHRoZSBmbGFnIG9uIGZhaWx1cmVcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmIChzdGFydFNhdmUpIHtcbiAgICAgIGlmICghZWRpdEJyYW5jaFJlYWR5KSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBlZGl0IGJyYW5jaCBub3QgeWV0IGNyZWF0ZWRgKVxuICAgICAgfSBlbHNlIGlmICghc2hhKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBzYXZlIHNoYSBub3QgeWV0IHJlYWR5YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjYWxsaW5nIF9zYXZlRWRpdCgpYClcbiAgICAgICAgc2V0Q2FyZHNTYXZpbmcocHJldkNhcmRzU2F2aW5nID0+IFsuLi5wcmV2Q2FyZHNTYXZpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICAgICAgX3NhdmVFZGl0KClcbiAgICAgIH1cbiAgICB9XG5cbiAgfSwgW3N0YXJ0U2F2ZSwgZWRpdEJyYW5jaFJlYWR5LCBzaGFdKVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHVwZGF0ZWRWZXJzZU9iamVjdHMgdG8gVVNGTSBhbmQgbWVyZ2UgaW50byB0aGUgYmlibGVVc2ZtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZVVzZm0gLSBVU0ZNIG9mIGJpYmxlXG4gICAqIEBwYXJhbSB7U2NyaXB0dXJlUmVmZXJlbmNlVHlwZX0gcmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIHRvIG1lcmdlIGluXG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gdXBkYXRlZFZlcnNlT2JqZWN0cyAtIG5ldyB2ZXJzZSBpbiB2ZXJzZU9iamVjdCBmb3JtYXRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGNhcmROdW1cbiAgICovXG4gIGZ1bmN0aW9uIG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm06IHN0cmluZywgcmVmOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLCB1cGRhdGVkVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlLCBjYXJkTnVtOiBudW1iZXIpIHtcbiAgICBsZXQgbmV3VXNmbVxuICAgIGNvbnN0IGNoYXB0ZXJDaHVua3MgPSBiaWJsZVVzZm0/LnNwbGl0KCdcXFxcYyAnKVxuICAgIGNvbnN0IGNoYXB0ZXJJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8uY2hhcHRlciwgY2hhcHRlckNodW5rcylcblxuICAgIGlmIChjaGFwdGVySW5kZXggPj0gMCkge1xuICAgICAgY29uc3QgY3VycmVudENoYXB0ZXIgPSBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF1cbiAgICAgIGxldCB2ZXJzZUNodW5rcyA9IGN1cnJlbnRDaGFwdGVyLnNwbGl0KCdcXFxcdiAnKVxuICAgICAgY29uc3QgdmVyc2VJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8udmVyc2UsIHZlcnNlQ2h1bmtzKVxuICAgICAgY29uc3QgZnJvbnRNYXR0ZXIgPSByZWY/LnZlcnNlID09PSAnZnJvbnQnXG5cbiAgICAgIGlmIChmcm9udE1hdHRlciB8fCB2ZXJzZUluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV3VmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKHVwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIG5ldyBVU0ZNIGZvciBjYXJkICR7Y2FyZE51bX0sIHZlcnNlICR7cmVmPy52ZXJzZX06fSAtICR7bmV3VmVyc2VVc2ZtLnN1YnN0cmluZygwLCAxMDApfWApXG4gICAgICAgIGlmIChmcm9udE1hdHRlcikgeyAvLyBmcm9udCBtYXR0ZXIgZ29lcyBiZWZvcmUgZmlyc3QgdmVyc2VcbiAgICAgICAgICBjb25zdCBvbGRWZXJzZSA9IHZlcnNlQ2h1bmtzWzBdXG4gICAgICAgICAgY29uc3QgcHJlZml4TGVuID0gb2xkVmVyc2UuaW5kZXhPZignXFxuJykgLy8gY2hhcmFjdGVycyBiZWZvcmUgdGhlIGZyb250IG1hdHRlciB0ZXh0XG4gICAgICAgICAgdmVyc2VDaHVua3NbMF0gPSBvbGRWZXJzZS5zdWJzdHJpbmcoMCwgcHJlZml4TGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBvbGRWZXJzZSA9IHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdXG4gICAgICAgICAgY29uc3QgdmVyc2VOdW1MZW4gPSAocmVmPy52ZXJzZSArICcnKS5sZW5ndGggLy8gY2hhcmFjdGVycyBiZWZvcmUgdGhlIHZlcnNlIHRleHRcbiAgICAgICAgICB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCB2ZXJzZU51bUxlbiArIDEpICsgbmV3VmVyc2VVc2ZtXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3Q2hhcHRlciA9IHZlcnNlQ2h1bmtzLmpvaW4oJ1xcXFx2ICcpXG4gICAgICAgIGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XSA9IG5ld0NoYXB0ZXJcbiAgICAgICAgbmV3VXNmbSA9IGNoYXB0ZXJDaHVua3Muam9pbignXFxcXGMgJylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1VzZm1cbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGZvciBlYWNoIHVuc2F2ZWQgY2hhbmdlLCBjYWxsIGludG8gc2NyaXB0dXJlUGFuZSB0byBnZXQgbGF0ZXN0IGNoYW5nZXMgZm9yIHZlcnNlIHRvIHNhdmVcbiAgICBhc3luYyBmdW5jdGlvbiBnZXRSZWFkeUZvclNhdmUoKSB7XG4gICAgICBpZiAoc2F2ZUNsaWNrZWQpIHtcbiAgICAgICAgbGV0IGNyZWF0ZUVkaXRCcmFuY2ggPSAhX3VzaW5nVXNlckJyYW5jaFxuXG4gICAgICAgIGlmICghY3JlYXRlRWRpdEJyYW5jaCkgeyAvLyBpZiBhbHJlYWR5IHVzaW5nIHRoZSB1c2VyIGJyYW5jaFxuICAgICAgICAgIGlmICh3b3JraW5nUmVzb3VyY2VCcmFuY2ggIT09IHVzZXJFZGl0QnJhbmNoTmFtZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBzdGF0ZSBjb25mbGljdCAtIHNob3VsZCBiZSBpbiB1c2VyIGJyYW5jaCAke3VzZXJFZGl0QnJhbmNoTmFtZX0sIGJ1dCBhY3R1YWxseSB1c2luZyAke3dvcmtpbmdSZXNvdXJjZUJyYW5jaH1gKVxuICAgICAgICAgICAgY3JlYXRlRWRpdEJyYW5jaCA9IHRydWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGFscmVhZHkgdXNpbmcgZWRpdCBicmFuY2g6ICR7d29ya2luZ1Jlc291cmNlQnJhbmNofWApXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IGVkaXRCcmFuY2hSZWFkeTogdHJ1ZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjcmVhdGVFZGl0QnJhbmNoKSB7IC8vIGlmIG5vdCB5ZXQgdXNpbmcgdGhlIHVzZXIgYnJhbmNoLCBjcmVhdGUgaXRcbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gY3JlYXRpbmcgZWRpdCBicmFuY2hgKVxuICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgIGVkaXRCcmFuY2hSZWFkeTogZmFsc2UsXG4gICAgICAgICAgICByZWFkeUZvckZldGNoOiBmYWxzZSxcbiAgICAgICAgICAgIHNoYTogbnVsbCxcbiAgICAgICAgICB9KSAvLyB3ZSB3aWxsIG5lZWQgYSBuZXcgc2hhIGZvciBib29rL2JyYW5jaFxuXG4gICAgICAgICAgY29uc3QgYnJhbmNoID0gYXdhaXQgc3RhcnRFZGl0QnJhbmNoKClcblxuICAgICAgICAgIGlmIChicmFuY2gpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBlZGl0IGJyYW5jaCBjcmVhdGVkYClcbiAgICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgICAgZWRpdEJyYW5jaFJlYWR5OiB0cnVlLFxuICAgICAgICAgICAgICByZWFkeUZvckZldGNoOiB0cnVlLFxuICAgICAgICAgICAgICByZWY6IGJyYW5jaCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gZXJyb3IgY3JlYXRpbmcgZWRpdCBicmFuY2gnKVxuICAgICAgICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIGNyZWF0aW5nIGVkaXQgYnJhbmNoICR7bGFuZ3VhZ2VJZF99XyR7cmVzb3VyY2VJZH1gLCB0cnVlKVxuICAgICAgICAgICAgc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBnZXR0aW5nIHZlcnNlIGNoYW5nZXNgKVxuICAgICAgICBjb25zdCB1bnNhdmVkQ2FyZEluZGljZXMgPSBPYmplY3Qua2V5cyh1bnNhdmVkQ2hhbmdlc0xpc3QpXG5cbiAgICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IGJpYmxlVXNmbUluaXRpYWwgPSBnZXRDdXJyZW50Qm9vayhzY3JpcHR1cmVDb25maWcsIGJvb2tJZCkgLy8gZ2V0IG9yaWdpbmFsIFVTRk1cbiAgICAgICAgICBsZXQgYmlibGVVc2ZtTmV3ID0gYmlibGVVc2ZtSW5pdGlhbCAvLyBtYWtlIGEgY29weSB0byBlZGl0XG4gICAgICAgICAgbGV0IG1lcmdlRmFpbCA9IGZhbHNlXG5cbiAgICAgICAgICBpZiAoYmlibGVVc2ZtSW5pdGlhbCkge1xuICAgICAgICAgICAgbGV0IGNhcmROdW0gPSAwXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgICBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgICB9ID0gZ2V0Q2hhbmdlcyhzdGF0ZSlcblxuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmIGJpYmxlVXNmbU5ldykgeyAvLyBqdXN0IHJlcGxhY2UgdmVyc2VcbiAgICAgICAgICAgICAgICAgIG5ld1VzZm0gPSBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtTmV3LCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW0pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICAgIGJpYmxlVXNmbU5ldyA9IG5ld1VzZm1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbWVyZ2VGYWlsID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgc2F2ZURpZmZQYXRjaCA9IGZhbHNlIC8vIGlmIHRydWUgdGhlbiB3ZSB3aWxsIHNlbmQgdXAgYSBkaWZmcGF0Y2ggaW5zdGVhZCBvZiB0aGUgd2hvbGUgYm9va1xuICAgICAgICAgIGxldCBfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQgPSBudWxsXG4gICAgICAgICAgbGV0IF9zYXZlQ29udGVudCA9IGJpYmxlVXNmbU5ld1xuXG4gICAgICAgICAgaWYgKG1lcmdlRmFpbCkgeyAvLyBpZiB3ZSBmYWlsZWQgdG8gbWVyZ2UsIGZhbGxiYWNrIHRvIGJydXRlIGZvcmNlIHZlcnNlIG9iamVjdHMgdG8gVVNGTVxuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgke2NhcmROdW19KSAtIHZlcnNlIG5vdCBmb3VuZCwgZmFsbGluZyBiYWNrIHRvIGluc2VydGluZyB2ZXJzZSBvYmplY3RgKVxuICAgICAgICAgICAgbGV0IG5ld0Jvb2tKc29uXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgICBjb25zdCBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgICB9ID0gZ2V0Q2hhbmdlcyhzdGF0ZSlcblxuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmICFuZXdVc2ZtKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IG51bGxcblxuICAgICAgICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmVyc2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UodXBkYXRlZFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFZlcnNlT2JqZWN0c18gPSB0YXJnZXRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0Jvb2tKc29uID0gdGFyZ2V0VmVyc2VPYmplY3RzXyAmJiBzY3JpcHR1cmVDb25maWc/LnVwZGF0ZVZlcnNlKHJlZi5jaGFwdGVyLCByZWYudmVyc2UsIHt2ZXJzZU9iamVjdHM6IHRhcmdldFZlcnNlT2JqZWN0c199KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfc2F2ZUNvbnRlbnQgPSB1c2ZtanMudG9VU0ZNKG5ld0Jvb2tKc29uLCB7IGZvcmNlZE5ld0xpbmVzOiB0cnVlIH0pXG4gICAgICAgICAgfSBlbHNlIHsgLy8gaWYgb25seSBjaGFuZ2VkIGEgZmV3IHZlcnNlcywgd2Ugd2lsbCBqdXN0IG1ha2UgYSBkaWZmcGF0Y2ggaW5zdGVhZCBvZiBzZW5kaW5nIHRoZSB3aG9sZSBib29rXG4gICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/Lm5hbWUgLy8gTGlrZSBcIjU3LVRJVC51c2ZtXCJcbiAgICAgICAgICAgIGlmIChmaWxlbmFtZSAmJiBiaWJsZVVzZm1OZXcgJiYgYmlibGVVc2ZtSW5pdGlhbCkgeyAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBldmVyeXRoaW5nIG5lZWRlZCB0byBtYWtlIGEgcGF0Y2hcbiAgICAgICAgICAgICAgaWYgKGJpYmxlVXNmbUluaXRpYWwgPT09IGJpYmxlVXNmbU5ldykgeyAvLyBpZiBubyBkYXRhIGNoYW5nZSwgdGhlbiBza2lwIHNhdmUgYmVjYXVzZSBEQ1MgY3Jhc2hlcyBvbiBhbiBlbXB0eSBwYXRjaFxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybihgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSB0aGVyZSBpcyBub3RoaW5nIHRvIHNhdmUsIHNraXBwaW5nYClcbiAgICAgICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGRpZmZQYXRjaCA9IGdldFBhdGNoKGZpbGVuYW1lLCBiaWJsZVVzZm1Jbml0aWFsLCBiaWJsZVVzZm1OZXcsIGZhbHNlLCBjb250ZXh0TGluZXMpXG4gICAgICAgICAgICAgIHNhdmVEaWZmUGF0Y2ggPSB0cnVlXG4gICAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IGRpZmZQYXRjaCAvLyByZXBsYWNlIHdob2xlIGJvb2sgY29udGVudCB3aXRoIGp1c3QgcGF0Y2ggZGF0YSAobXVjaCBmYXN0ZXIgdXBsb2FkcylcbiAgICAgICAgICAgICAgX3NhdmVGdWxsQmlibGVDb250ZW50ID0geyAgLy8ga2VlcCB0cmFjayBvZiBwYXRjaCBkYXRhIGluIGNhc2Ugd2UgbmVlZCB0byByZXRyeSBzYXZlXG4gICAgICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgaW5pdGlhbDogYmlibGVVc2ZtSW5pdGlhbCxcbiAgICAgICAgICAgICAgICBuZXc6IGJpYmxlVXNmbU5ldyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChiaWJsZVVzZm1OZXcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBuZXcgVVNGTTogJHtiaWJsZVVzZm1OZXcuc3Vic3RyaW5nKDAsIDEwMCl9Li4uYClcbiAgICAgICAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBbLi4ucHJldkNhcmRzU2F2aW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIHNhdmVDb250ZW50OiBfc2F2ZUNvbnRlbnQsXG4gICAgICAgICAgICAgIHNhdmVDbGlja2VkOiBmYWxzZSxcbiAgICAgICAgICAgICAgc2F2ZURpZmZQYXRjaCxcbiAgICAgICAgICAgICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IF9zYXZlRnVsbEJpYmxlQ29udGVudCxcbiAgICAgICAgICAgICAgc3RhcnRTYXZlOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBFcnJvciByZXRyaWV2aW5nIHRoZSBjb3JyZWN0IGJvb2sgZGF0YTogaW5jb3JyZWN0IGJvb2sgJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWApXG4gICAgICAgICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG51bGwsIGZhbHNlLCBudWxsLCBgRXJyb3IgcmV0cmlldmluZyB0aGUgY29ycmVjdCBib29rIGRhdGEgJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWAsIHRydWUpXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGdldFJlYWR5Rm9yU2F2ZSgpXG4gIH0sIFtzYXZlQ2xpY2tlZF0pXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCB7IGNoYXB0ZXIgfSA9IF9yZWZlcmVuY2UgfHwge31cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IF92ZXJzZXNGb3JSZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZlxuICAgIGxldCBuZXdTZWxlY3Rpb25zID0gbmV3IE1hcCgpXG4gICAgbGV0IHVwZGF0ZVNlbGVjdGlvbnMgPSBmYWxzZVxuICAgIGNvbnN0IF9tYXAgPSBuZXdTZWxlY3Rpb25zXG4gICAgY29uc3Qgb3JpZ2luYWxCb29rSWQgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5ib29rSWRcbiAgICBjb25zdCBib29rVmVyc2VPYmplY3QgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5jaGFwdGVyc1xuICAgIGxldCBuZXdTZWxlY3RlZFF1b3RlID0gbnVsbFxuXG4gICAgLy8gaWYgd2UgaGF2ZSBldmVyeXRoaW5nIHdlIG5lZWQgdG8gY2FsY3VsYXRlIHNlbGVjdGlvbnNcbiAgICBpZiAoX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoICYmXG4gICAgICBib29rVmVyc2VPYmplY3QgJiZcbiAgICAgIChib29rSWQgPT09IG9yaWdpbmFsQm9va0lkKSAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0W2NoYXB0ZXJdICYmIC8vIHdlIG5lZWQgdG8gaGF2ZSBkYXRhIGZvciBjaGFwdGVyXG4gICAgICBzZWxlY3RlZFF1b3RlPy5xdW90ZVxuICAgICkge1xuICAgICAgLy8gaWYgcXVvdGUgaXMgZGlmZmVyZW50IHRoYW4gbGFzdFxuICAgICAgaWYgKCFpc0VxdWFsKGxhc3RTZWxlY3RlZFF1b3RlLCBzZWxlY3RlZFF1b3RlKSB8fFxuICAgICAgICAhaXNFcXVhbCh2ZXJzZXNGb3JSZWYsIF92ZXJzZXNGb3JSZWYpKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVmVyc2VzID0ge31cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0ZSA9IHt9IC8vIGtlZXAgdHJhY2sgb2YgdmVyc2Ugc3Vic3RpdHV0aW9uc1xuICAgICAgICBsZXQgc3RhcnRWZXJzZSA9IF92ZXJzZXNGb3JSZWZbMF0udmVyc2VcblxuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0VmVyc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgc3RhcnRWZXJzZSA9IHBhcnNlSW50KHN0YXJ0VmVyc2UpXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFzdFZlcnNlID0gc3RhcnRWZXJzZVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gX3ZlcnNlc0ZvclJlZi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBjb25zdCB2ZXJzZVJlZiA9IF92ZXJzZXNGb3JSZWZbaV1cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjaGFwdGVyLFxuICAgICAgICAgICAgdmVyc2UsXG4gICAgICAgICAgfSA9IHZlcnNlUmVmXG4gICAgICAgICAgLy8gVFJJQ0tZIC0gd2UgcmVtYXAgdmVyc2VzIGluIHJlZmVyZW5jZSByYW5nZSB0byBhIGxpbmVhciBzZXJpZXMgb2YgdmVyc2VzIHNvIHZlcnNlIHNwYW5zIGRvbid0IGNob2tlIGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZlxuICAgICAgICAgIGxldCBfdmVyc2UgPSBzdGFydFZlcnNlICsgaVxuICAgICAgICAgIGxhc3RWZXJzZSA9IF92ZXJzZVxuICAgICAgICAgIHN1YnN0aXR1dGVbYCR7Y2hhcHRlcn06JHtfdmVyc2V9YF0gPSBgJHtjaGFwdGVyfToke3ZlcnNlfWBcblxuICAgICAgICAgIGlmICghb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl0pIHtcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdID0ge31cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgdmVyc2VPYmplY3RzID0gW11cblxuICAgICAgICAgIGlmICgodHlwZW9mIHZlcnNlID09PSAnc3RyaW5nJykgJiYgKHZlcnNlLmluY2x1ZGVzKCctJykpKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va1ZlcnNlT2JqZWN0LCBgJHtjaGFwdGVyfToke3ZlcnNlfWApXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmVyc2VJdGVtIG9mIHZlcnNlcykge1xuICAgICAgICAgICAgICBjb25zdCB2byA9IHZlcnNlSXRlbS52ZXJzZURhdGEudmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0cy5jb25jYXQodm8pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXVt2ZXJzZV0/LnZlcnNlT2JqZWN0c1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2ZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKVxuICAgICAgICAgICAgb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl1bX3ZlcnNlXSA9IHsgdmVyc2VPYmplY3RzIH1cbiAgICAgICAgICAgIF9tYXAuc2V0KGAke2NoYXB0ZXJ9OiR7dmVyc2V9YCwgdmVyc2VPYmplY3RzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBuZXcgcmVmZXJlbmNlIHJhbmdlIGZvciBuZXcgbGluZWFyIHZlcnNlIHJhbmdlXG4gICAgICAgIGNvbnN0IFtjaGFwdGVyXSA9IHNlbGVjdGVkUXVvdGU/LnJlZmVyZW5jZT8uc3BsaXQoJzonKVxuICAgICAgICBsZXQgc3ViUmVmID0gYCR7Y2hhcHRlcn06JHtzdGFydFZlcnNlfWBcblxuICAgICAgICBpZiAobGFzdFZlcnNlICE9IHN0YXJ0VmVyc2UpIHtcbiAgICAgICAgICBzdWJSZWYgKz0gYC0ke2xhc3RWZXJzZX1gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdW90ZU1hdGNoZXMgPSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYoe1xuICAgICAgICAgIGJvb2tPYmplY3Q6IG9yaWdpbmFsVmVyc2VzLFxuICAgICAgICAgIHJlZjogc3ViUmVmLFxuICAgICAgICAgIHF1b3RlOiBzZWxlY3RlZFF1b3RlPy5xdW90ZSxcbiAgICAgICAgICBvY2N1cnJlbmNlOiBzZWxlY3RlZFF1b3RlPy5vY2N1cnJlbmNlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSBuZXcgTWFwKClcblxuICAgICAgICBpZiAocXVvdGVNYXRjaGVzPy5zaXplKSB7XG4gICAgICAgICAgcXVvdGVNYXRjaGVzLmZvckVhY2goKHdvcmRzLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9rZXkgPSBzdWJzdGl0dXRlW2tleV1cblxuICAgICAgICAgICAgc2VsZWN0aW9ucy5zZXQoX2tleSwgd29yZHMubWFwKHdvcmQgPT4gKFxuICAgICAgICAgICAgICB7IC4uLndvcmQsIHRleHQ6IGNvcmUubm9ybWFsaXplU3RyaW5nKHdvcmQudGV4dCkgfVxuICAgICAgICAgICAgKSkpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBuZXdTZWxlY3Rpb25zID0gc2VsZWN0aW9uc1xuICAgICAgICBuZXdTZWxlY3RlZFF1b3RlID0gc2VsZWN0ZWRRdW90ZVxuICAgICAgICB1cGRhdGVTZWxlY3Rpb25zID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5ld1N0YXRlOiBhbnkgPSB7fVxuXG4gICAgLy8gdXBkYXRlIHN0YXRlcyB0aGF0IGhhdmUgY2hhbmdlZFxuICAgIGlmICghYXJlTWFwc1RoZVNhbWUodmVyc2VPYmplY3RzTWFwLCBfbWFwKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VPYmplY3RzTWFwID0gX21hcFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3U3RhdGUuc2VsZWN0aW9uc1JlZnMgPSBfbWFwID8gWy4uLl9tYXAua2V5cygpXS5qb2luKCc7JykgOiAnJyAvLyBjb21iaW5lIGFsbCB0aGUgdmVyc2UgcmVmZXJlbmNlcyBpbnRvIGEgc2luZ2xlIHZlcnNlIHJlZmVyZW5jZSBmb3IgdGhlIHNlbGVjdGlvbnNcbiAgICB9XG5cbiAgICBjb25zdCBib29rc05vdFNhbWUgPSByZWZlcmVuY2U/LmJvb2tJZCAhPT0gY3VycmVudFJlZmVyZW5jZT8uYm9va0lkXG5cbiAgICBpZiAoYm9va3NOb3RTYW1lIHx8ICFhcmVWZXJzZXNTYW1lKHZlcnNlc0ZvclJlZiwgX3ZlcnNlc0ZvclJlZikpIHtcbiAgICAgIG5ld1N0YXRlLnZlcnNlc0ZvclJlZiA9IF92ZXJzZXNGb3JSZWZcbiAgICAgIG5ld1N0YXRlLmxhc3RTZWxlY3RlZFF1b3RlID0gbmV3U2VsZWN0ZWRRdW90ZVxuICAgICAgbmV3U3RhdGUuc2VsZWN0aW9ucyA9IG5ld1NlbGVjdGlvbnNcbiAgICB9XG5cbiAgICBpZiAobmV3U2VsZWN0ZWRRdW90ZSkge1xuICAgICAgbmV3U3RhdGUubGFzdFNlbGVjdGVkUXVvdGUgPSBuZXdTZWxlY3RlZFF1b3RlXG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZVNlbGVjdGlvbnMpIHtcbiAgICAgIGlmICghYXJlTWFwc1RoZVNhbWUoc2VsZWN0aW9ucyB8fCAobmV3IE1hcCgpKSwgbmV3U2VsZWN0aW9ucykpIHtcbiAgICAgICAgbmV3U3RhdGUuc2VsZWN0aW9ucyA9IG5ld1NlbGVjdGlvbnNcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMobmV3U3RhdGUpLmxlbmd0aCkge1xuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgfVxuICB9LCBbXG4gICAgb3duZXIsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBib29rSWQsXG4gICAgbGFuZ3VhZ2VJZF8sXG4gICAgc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWYsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgICBzZWxlY3RlZFF1b3RlLFxuICBdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGNsZWFyIHNldHRpbmdzIG9uIHZlcnNlIGNoYW5nZVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdDoge30sXG4gICAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIH0pXG4gIH0sIFtfcmVmZXJlbmNlXSlcblxuICBjb25zdCB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgPSAocmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLCBhbGlnbmVkOiBib29sZWFuKSA9PiB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiB7IC4uLnByZXZTdGF0ZS52ZXJzZXNBbGlnbm1lbnRTdGF0dXMsIFtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YF06IGFsaWduZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGxldCBfdmVyc2VzRm9yUmVmID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWZcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChfdmVyc2VzRm9yUmVmPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHsgcmVmZXJlbmNlLCByZXNvdXJjZUxpbmsgfSA9IHNjcmlwdHVyZUNvbmZpZyB8fCB7fVxuICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQuX3ZlcnNlc0ZvclJlZiBjaGFuZ2VkYCwgeyByZWZlcmVuY2UsIHJlc291cmNlTGluayB9KVxuICAgIH1cbiAgfSwgW192ZXJzZXNGb3JSZWZdKVxuXG4gIGlmICghX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoKSB7IC8vIGlmIGVtcHR5IG9mIHJlZmVyZW5jZXMsIGNyZWF0ZSBzaW5nbGUgZW1wdHkgcmVmZXJlbmNlXG4gICAgX3ZlcnNlc0ZvclJlZiA9IFt7IC4uLnJlZmVyZW5jZSB9XVxuICB9XG5cbiAgY29uc3QgcmVuZGVyZWRTY3JpcHR1cmVQYW5lcyA9IF92ZXJzZXNGb3JSZWY/Lm1hcCgoX2N1cnJlbnRWZXJzZURhdGEsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IF9jdXJyZW50VmVyc2VEYXRhPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cyB8fCBbXVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSBfY3VycmVudFZlcnNlRGF0YSB8fCB7fVxuICAgIGNvbnN0IGJvb2tJZF8gPSBjdXJyZW50UmVmZXJlbmNlPy5ib29rSWQgfHwgYm9va0lkXG4gICAgY29uc3QgX3JlZmVyZW5jZSA9IHtcbiAgICAgIC4uLl92ZXJzZXNGb3JSZWYsXG4gICAgICBjaGFwdGVyLFxuICAgICAgYm9va0lkOiBib29rSWRfLFxuICAgICAgdmVyc2UsXG4gICAgfVxuICAgIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgICAgLi4uc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgICAgIGN1cnJlbnRJbmRleDogaW5kZXgsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgcmVmZXJlbmNlOiBfcmVmZXJlbmNlLFxuICAgICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgfVxuXG4gICAgbGV0IGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCA9IGZhbHNlXG5cbiAgICBpZiAodmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCkge1xuICAgICAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudC5jaGFwdGVyID09IGNoYXB0ZXIgJiYgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudC52ZXJzZSA9PSB2ZXJzZVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U2NyaXB0dXJlUGFuZVxuICAgICAgICB7Li4uc2NyaXB0dXJlQ29uZmlnfVxuICAgICAgICBjb250ZW50U3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgY3VycmVudEluZGV4PXtpbmRleH1cbiAgICAgICAgZGV0ZXJtaW5pbmdCcmFuY2g9eyFyZWFkeUZvckZldGNofVxuICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJffVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgaXNOVD17aXNOVF99XG4gICAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudD17aXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50fVxuICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICBvbkFsaWdubWVudEZpbmlzaD17KCkgPT4gc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBudWxsIH0pfVxuICAgICAgICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPXtvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzfVxuICAgICAgICByZWZTdHlsZT17cmVmU3R5bGV9XG4gICAgICAgIHJlZmVyZW5jZT17X3JlZmVyZW5jZX1cbiAgICAgICAgc2F2aW5nPXtzdGFydFNhdmV9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZz17X3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWd9XG4gICAgICAgIHNldEVkaXRWZXJzZT17c2V0RWRpdFZlcnNlfVxuICAgICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cz17c2V0V29yZEFsaWduZXJTdGF0dXN9XG4gICAgICAgIHNlcnZlcj17c2VydmVyfVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzPXt1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAvPlxuICAgIClcbiAgfSlcblxuICBjb25zdCBoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrID0gKCkgPT4ge1xuICAgIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA+IDEpIHsgLy8gaWYgdGhlcmUgYXJlIG11bHRpcGxlIHZlcnNlcyBzaG93biBpbiBjYXJkLCBuZWVkIHRvIHByb21wdCB1c2VyIGZvciB3aGljaCB2ZXJzZSB0byBhbGlnblxuICAgICAgc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IHRydWUgfSlcbiAgICB9IGVsc2UgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID09PSAxKSB7IC8vIGlmIG9ubHkgb25lIHZlcnNlIGlzIHNob3duIG9uIGNhcmQsIHRoZW4gZWRpdCB0aGF0IHZlcnNlXG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlc0ZvclJlZlswXSB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG9uUmVuZGVyVG9vbGJhciA9ICh7IGl0ZW1zIH0pID0+IHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi5pdGVtc11cblxuICAgIGxldCBhbGxWZXJzZXNBbGlnbmVkID0gZmFsc2VcblxuICAgIC8vIENoZWNrIGlmIGFsbCB2YWx1ZXMgaW4gdmVyc2VzQWxpZ25tZW50U3RhdHVzIGFyZSB0cnVlXG4gICAgaWYgKHZlcnNlc0FsaWdubWVudFN0YXR1cykge1xuICAgICAgYWxsVmVyc2VzQWxpZ25lZCA9IE9iamVjdC52YWx1ZXModmVyc2VzQWxpZ25tZW50U3RhdHVzKS5ldmVyeShhbGlnblN0YXR1cyA9PiBhbGlnblN0YXR1cyA9PT0gdHJ1ZSlcbiAgICB9XG5cbiAgICBsZXQgYWxpZ25JY29uID0gbnVsbFxuICAgIGxldCBhbGlnbkJ1dHRvblRleHQgPSAnJ1xuXG4gICAgaWYgKGFsbFZlcnNlc0FsaWduZWQpIHtcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmsyIGlkPXtgdmFsaWRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyNCQkInIC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIFZhbGlkJ1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb2xvciA9IGRpc2FibGVDaGFuZ2VCdXR0b25zID8gJyNCQkInIDogJyMwMDAnIC8vIGdyYXkgb3V0IGJ1dHRvbiBpZiBkaXNhYmxlZFxuICAgICAgYWxpZ25JY29uID0gPFJ4TGlua0JyZWFrMiBpZD17YGludmFsaWRfYWxpZ25tZW50X2ljb25fJHtyZXNvdXJjZUlkfWB9IGNvbG9yPXtjb2xvcn0gLz5cbiAgICAgIGFsaWduQnV0dG9uVGV4dCA9ICdBbGlnbm1lbnQgaXMgSW52YWxpZCdcbiAgICB9XG5cbiAgICBpZiAoc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgcmVzb3VyY2VJZCAhPT0gJ09SSUdJTkFMX1NPVVJDRScpIHtcbiAgICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgaWQ9e2BhbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH1cbiAgICAgICAgICBrZXk9J2NoZWNraW5nLWJ1dHRvbidcbiAgICAgICAgICBvbkNsaWNrPXtkaXNhYmxlQ2hhbmdlQnV0dG9ucyA/IG51bGwgOiBoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrfVxuICAgICAgICAgIHRpdGxlPXthbGlnbkJ1dHRvblRleHR9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICAgID5cbiAgICAgICAgICB7YWxpZ25JY29ufVxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gT25seSBzaG93IHRoZSB1cGRhdGUgZnJvbSBtYWluIGJ1dHRvbiBpZiBzY3JpcHR1cmUgaXMgbm90IG9yaWdpbmFsIHRleHQuXG4gICAgIXVzaW5nT3JpZ2luYWxCaWJsZSAmJiBuZXdJdGVtcy5wdXNoKFxuICAgICAgPD5cbiAgICAgICAgPFVwZGF0ZUJyYW5jaEJ1dHRvbiB7Li4udXBkYXRlQnV0dG9uUHJvcHN9IGlzTG9hZGluZz17aXNVcGRhdGVMb2FkaW5nIHx8IHN0YXJ0U2F2ZX0vPlxuICAgICAgICA8RXJyb3JEaWFsb2cgdGl0bGU9e2RpYWxvZ1RpdGxlfSBjb250ZW50PXtkaWFsb2dNZXNzYWdlfSBvcGVuPXtpc0Vycm9yRGlhbG9nT3Blbn0gb25DbG9zZT17b25DbG9zZUVycm9yRGlhbG9nfSBpc0xvYWRpbmc9eyBpc1VwZGF0ZUxvYWRpbmcgfHwgc3RhcnRTYXZlIH0gbGluaz17ZGlhbG9nTGlua30gbGlua1Rvb2x0aXA9e2RpYWxvZ0xpbmtUb29sdGlwfSAvPlxuICAgICAgPC8+XG4gICAgKVxuXG4gICAgcmV0dXJuIG5ld0l0ZW1zXG4gIH1cblxuICBjb25zdCBzZWxlY3Rpb25Cb29rT2JqZWN0cyA9IG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/LmNoYXB0ZXJzXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0aW9uc0NvbnRleHRQcm92aWRlclxuICAgICAgYm9va09iamVjdD17c2VsZWN0aW9uQm9va09iamVjdHMgfHwge319XG4gICAgICBvY2N1cnJlbmNlPXtmaXhPY2N1cnJlbmNlKHNlbGVjdGVkUXVvdGU/Lm9jY3VycmVuY2UpfVxuICAgICAgb25TZWxlY3Rpb25zPXtuZXdTZWxlY3Rpb25zID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ29uU2VsZWN0aW9ucycsIG5ld1NlbGVjdGlvbnMpXG4gICAgICB9fVxuICAgICAgcXVvdGU9e3NlbGVjdGVkUXVvdGU/LnF1b3RlIHx8ICcnfVxuICAgICAgcmVmU3RyaW5nPXtzZWxlY3Rpb25zUmVmc31cbiAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgPlxuICAgICAgPENhcmRcbiAgICAgICAgaWQ9e2BzY3JpcHR1cmVfY2FyZF8ke2NhcmROdW19YH1cbiAgICAgICAgdGl0bGU9e3NjcmlwdHVyZUxhYmVsfVxuICAgICAgICBzZXR0aW5nc1RpdGxlPXtzY3JpcHR1cmVUaXRsZSArICcgU2V0dGluZ3MnfVxuICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgIGhlYWRlcnM9e2hlYWRlcnN9XG4gICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgaXRlbUluZGV4PXtpdGVtSW5kZXh9XG4gICAgICAgIHNldEZpbHRlcnM9e3NldEZpbHRlcnN9XG4gICAgICAgIHNldEZvbnRTaXplPXtzZXRGb250U2l6ZX1cbiAgICAgICAgc2V0SXRlbUluZGV4PXtzZXRJdGVtSW5kZXh9XG4gICAgICAgIG1hcmtkb3duVmlldz17bWFya2Rvd25WaWV3fVxuICAgICAgICBzZXRNYXJrZG93blZpZXc9e3NldE1hcmtkb3duVmlld31cbiAgICAgICAgZ2V0Q3VzdG9tQ29tcG9uZW50PXtnZXRTY3JpcHR1cmVTZWxlY3Rvcn1cbiAgICAgICAgaGlkZU1hcmtkb3duVG9nZ2xlXG4gICAgICAgIG9uTWVudUNsb3NlPXtvbk1lbnVDbG9zZX1cbiAgICAgICAgb25NaW5pbWl6ZT17b25NaW5pbWl6ZSA/ICgpID0+IG9uTWluaW1pemUoaWQsIHNjcmlwdHVyZVRpdGxlKSA6IG51bGx9XG4gICAgICAgIGVkaXRhYmxlPXtlbmFibGVFZGl0IHx8IGVuYWJsZUFsaWdubWVudH1cbiAgICAgICAgc2F2ZWQ9e2Rpc2FibGVDaGFuZ2VCdXR0b25zIHx8IHN0YXJ0U2F2ZSB8fCAhaGF2ZVVuc2F2ZWRDaGFuZ2VzfSAvLyBncmF5IG91dCBzYXZlIGJ1dHRvbiBpZiBkaXNhYmxlZCwgaWYgc2F2aW5nLCBvciBpZiBubyB1bnNhdmVkIGNoYW5nZXNcbiAgICAgICAgb25TYXZlRWRpdD17KCkgPT4gc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogdHJ1ZSB9KX1cbiAgICAgICAgb25SZW5kZXJUb29sYmFyPXtvblJlbmRlclRvb2xiYXJ9XG4gICAgICA+XG4gICAgICAgIDxkaXYgaWQ9XCJzY3JpcHR1cmUtcGFuZS1saXN0XCI+XG4gICAgICAgICAge3JlbmRlcmVkU2NyaXB0dXJlUGFuZXN9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9DYXJkPlxuICAgICAgPFZlcnNlU2VsZWN0b3JQb3B1cFxuICAgICAgICByZXNvdXJjZUlkPXtyZXNvdXJjZUlkfVxuICAgICAgICBvcGVuPXtzaG93QWxpZ25tZW50UG9wdXB9XG4gICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFN0YXRlKHsgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSB9KX1cbiAgICAgICAgdmVyc2VzRm9yUmVmPXt2ZXJzZXNGb3JSZWZ9XG4gICAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1cz17dmVyc2VzQWxpZ25tZW50U3RhdHVzfVxuICAgICAgICBvblZlcnNlU2VsZWN0PXsodmVyc2UpID0+IHNldFN0YXRlKHtcbiAgICAgICAgICB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiB2ZXJzZSxcbiAgICAgICAgICBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlLFxuICAgICAgICB9KX1cbiAgICAgIC8+XG4gICAgPC9TZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyPlxuICApXG59XG5cblNjcmlwdHVyZUNhcmQucHJvcFR5cGVzID0ge1xuICAvKiogcmVwbyBicmFuY2ggb3IgdGFnIHN1Y2ggYXMgbWFzdGVyICovXG4gIGFwcFJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogYXV0aGVudGljYXRpb24gaW5mbyAqL1xuICBhdXRoZW50aWNhdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGluZGV4IGZvciBjdXJyZW50IGJvb2sgKGUuZy4gJzAxJyBmb3IgJ2dlbicpKi9cbiAgYm9va0luZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogc2NyaXB0dXJlIGNhcmQgbnVtYmVyICgwIHRvIDIgZm9yIGV4YW1wbGUpICovXG4gIGNhcmROdW06IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgLyoqIENTUyBjbGFzc2VzICovXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBpZiB0cnVlIHRoZW4gd29yZCBkYXRhIGhvdmVyIGlzIHNob3duICovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKiBnZXQgbGFuZ3VhZ2UgZGV0YWlscyAqL1xuICBnZXRMYW5ndWFnZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgZ3JlZWsgcmVwbyAqL1xuICBncmVla1JlcG9Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBvcHRpb25hbCB1cmwgZm9yIGhlYnJldyByZXBvICovXG4gIGhlYnJld1JlcG9Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBvcHRpb25hbCBodHRwIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciBmZXRjaGluZyByZXNvdXJjZXMsIGRlZmF1bHQgaXMgMCAodmVyeSBsb25nIHdhaXQpICovXG4gIGh0dHBDb25maWc6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBodG1sIGlkZW50aWZpZXIgdG8gdXNlIGZvciBjYXJkICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogbWV0aG9kIHRvIGRldGVybWluZSBpZiBOVCBvciBPVCAqL1xuICBpc05UOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogdXNlci1uYW1lICovXG4gIGxvZ2dlZEluVXNlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGZ1bmN0aW9uIHRvIG1pbmltaXplIHRoZSBjYXJkIChvcHRpb25hbCkgKi9cbiAgb25NaW5pbWl6ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBvcHRpb25hbCBjYWxsYmFjayBpZiBlcnJvciBsb2FkaW5nIHJlc291cmNlLCBwYXJhbWV0ZXIgcmV0dXJuZWQgYXJlOlxuICAgKiAgICAoe3N0cmluZ30gZXJyb3JNZXNzYWdlLCB7Ym9vbGVhbn0gaXNBY2Nlc3NFcnJvciwge29iamVjdH0gcmVzb3VyY2VTdGF0dXMpXG4gICAqICAgICAgLSBpc0FjY2Vzc0Vycm9yIC0gaXMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBlcnJvciB0cnlpbmcgdG8gYWNjZXNzIGZpbGVcbiAgICogICAgICAtIHJlc291cmNlU3RhdHVzIC0gaXMgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBwcm9ibGVtcyBmZXRjaGluZyByZXNvdXJjZSAqL1xuICBvblJlc291cmNlRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdGhlIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rICovXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIHJlZmVyZW5jZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogYm9vayBJRCB0byB1c2UsIG9sZGVyIGxpYnJhcmllcyB1c2VkIHByb2plY3RJZCAqL1xuICAgIGJvb2tJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBvbGRlciBsaWJyYXJpZXMgdXNlZCBwcm9qZWN0SWQgaW5zdGVhZCBvZiBib29rSWQgKi9cbiAgICBwcm9qZWN0SWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIGN1cnJlbnQgY2hhcHRlciBudW1iZXIgKi9cbiAgICBjaGFwdGVyOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgICAvKiogY3VycmVudCB2ZXJzZSBudW1iZXIgKi9cbiAgICB2ZXJzZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gIH0pLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiByZXNvdXJjZUxpbmsgKi9cbiAgcmVzb3VyY2VMaW5rOiBQcm9wVHlwZXMuYW55LFxuICAvKipUaGlzIGlzIGN1cnJlbnRseSBzZWxlY3RlZCBxdW90ZSAqL1xuICBzZWxlY3RlZFF1b3RlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogc2VydmVyIChlLmcuICdodHRwczovL2dpdC5kb29yNDMub3JnJykgKi9cbiAgc2VydmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgbG9hZGluZyBzdGF0ZSAqL1xuICBzZXRBcmVSZXNvdXJjZXNMb2FkaW5nOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSBzYXZpbmcgc3RhdGUqL1xuICBzZXRBcmVSZXNvdXJjZXNTYXZpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gcmVwb3J0IGNhcmQgbWVyZ2Ugc3RhdHVzICovXG4gIHNldENhcmRzTG9hZGluZ01lcmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHJlcG9ydCBjYXJkIHVwZGF0ZSBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHJlcG9ydCBjYXJkIHNhdmluZyBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNTYXZpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSB3b3JkIGFsaWduZXIgc3RhdGUgKi9cbiAgc2V0V29yZEFsaWduZXJTdGF0dXM6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdGl0bGUgZm9yIHNjcmlwdHVyZSBjYXJkICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgdGhlIGNhcmQncyBtZXJnZSBzdGF0ZSBpbiBhcHAgKi9cbiAgdXBkYXRlTWVyZ2VTdGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFT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
|
|
1595
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFcnJvckRpYWxvZyIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlVwZGF0ZUJyYW5jaEJ1dHRvbiIsInVzZUJyYW5jaE1lcmdlciIsInVzZUNhcmRTdGF0ZSIsInVzZUNvbnRlbnRVcGRhdGVQcm9wcyIsInVzZU1hc3Rlck1lcmdlUHJvcHMiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZmV0Y2hCaWJsZUJvb2siLCJmaXhPY2N1cnJlbmNlIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZ2V0UmVzb3VyY2VMaW5rIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiaXNPcmlnaW5hbEJpYmxlIiwiZGVsYXkiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwiZ2V0UGF0Y2giLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiVmVyc2VPYmplY3RzVHlwZSIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsImNvbXBhcmVPYmplY3QiLCJ2ZXJzZVJlZiIsIl92ZXJzZURhdGEkdmVyc2VPYmplYyIsIl9yZWYiLCJjaGFwdGVyIiwidmVyc2UiLCJ2ZXJzZURhdGEiLCJ2ZXJzZU9iamVjdHMiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJlVmVyc2VzU2FtZSIsInZlcnNlc0ZvclJlZjEiLCJ2ZXJzZXNGb3JSZWYyIiwiYXJlU2FtZSIsInZlcnNlMSIsInZlcnNlMiIsImdldEN1cnJlbnRCb29rIiwic2NyaXB0dXJlQ29uZmlnIiwiYm9va0lkIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMiIsIl9ib29rTmFtZSR0b0xvd2VyQ2FzZSIsImxhdGVzdEJpYmxlIiwicmVzb3VyY2VTdGF0ZSIsInJlc291cmNlIiwicHJvamVjdElkIiwiZmlsZW5hbWUiLCJpc0Jvb2tWYWxpZCIsImJvb2tOYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIiwiY29uY2F0IiwiYmlibGVVc2ZtIiwiU2NyaXB0dXJlQ2FyZCIsIl9yZWYyIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzQiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc281IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvNiIsIl9zY3JpcHR1cmVDb25maWckcmVzbzciLCJfYXV0aGVudGljYXRpb24kdG9rZW4iLCJfc2NyaXB0dXJlQ29uZmlnJHJlc285IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTAiLCJfaHR0cENvbmZpZyIsIl9odHRwQ29uZmlnMiIsIl9hdXRoZW50aWNhdGlvbiR1c2VyIiwiX3ZlcnNlc0ZvclJlZjMiLCJfdmVyc2VzRm9yUmVmNCIsImFwcFJlZiIsImF1dGhlbnRpY2F0aW9uIiwiYm9va0luZGV4IiwiY2FyZE51bSIsImNsYXNzZXMiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJnZXRMYW5ndWFnZSIsImdldExleGljb25EYXRhIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImh0dHBDb25maWciLCJpZCIsImlzTlQiLCJsb2dnZWRJblVzZXIiLCJvbk1pbmltaXplIiwib25SZXNvdXJjZUVycm9yIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZV8iLCJyZWZlcmVuY2UiLCJfcmVmMiRyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0Q2FyZHNMb2FkaW5nTWVyZ2UiLCJzZXRDYXJkc0xvYWRpbmdVcGRhdGUiLCJzZXRDYXJkc1NhdmluZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidHJhbnNsYXRlIiwidGl0bGUiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwidXBkYXRlTWVyZ2VTdGF0ZSIsInNhdmVJblByb2dyZXNzIiwidXNlUmVmIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJjaGVja0ZvckVkaXRCcmFuY2giLCJjb250ZXh0TGluZXMiLCJjdXJyZW50UmVmZXJlbmNlIiwiZWRpdEJyYW5jaFJlYWR5IiwiZWRpdFZlcnNlIiwiaGF2ZVVuc2F2ZWRDaGFuZ2VzIiwibGFzdFNlbGVjdGVkUXVvdGUiLCJyZWFkeUZvckZldGNoIiwicmVmIiwic2F2ZUNsaWNrZWQiLCJzYXZlQ29udGVudCIsInNhdmVEaWZmUGF0Y2giLCJzYXZlRnVsbEJpYmxlQ29udGVudCIsInNlbGVjdGlvbnMiLCJNYXAiLCJzZWxlY3Rpb25zUmVmcyIsInNob3dBbGlnbm1lbnRQb3B1cCIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzQWxpZ25tZW50U3RhdHVzIiwidmVyc2VzRm9yUmVmIiwidmVyc2VPYmplY3RzTWFwIiwidmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJzdGF0ZSIsInNldFN0YXRlXyIsIl91c2VVc2VyTG9jYWxTdG9yYWdlIiwiX3VzZVVzZXJMb2NhbFN0b3JhZ2UyIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwibm9DYWNoZSIsIl91c2VTY3JpcHR1cmVTZXR0aW5ncyIsInNldFVybEVycm9yIiwid2hvbGVCb29rIiwiaXNOZXdUZXN0YW1lbnQiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVTZXR0aW5ncyIsInNjcmlwdHVyZVZlcnNpb25IaXN0IiwiZmV0Y2hlZFJlc291cmNlIiwicmVwbyIsInVzaW5nT3JpZ2luYWxCaWJsZSIsImNhcmRSZXNvdXJjZUlkIiwicmVmXyIsImNhblVzZUVkaXRCcmFuY2giLCJfdXNlVXNlckJyYW5jaCIsImNhcmRJZCIsIl91c2VVc2VyQnJhbmNoJHN0YXRlIiwiYnJhbmNoRGV0ZXJtaW5lZCIsInVzZXJFZGl0QnJhbmNoTmFtZSIsIl91c2luZ1VzZXJCcmFuY2giLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfdXNlVXNlckJyYW5jaCRhY3Rpb24iLCJhY3Rpb25zIiwic3RhcnRFZGl0QnJhbmNoIiwic3RhcnRFZGl0IiwiZmluaXNoRWRpdCIsIl91c2VCcmFuY2hNZXJnZXIiLCJ1c2VyQnJhbmNoIiwidG9rZW5pZCIsInRva2VuIiwic2hhMSIsIl91c2VCcmFuY2hNZXJnZXIkc3RhdCIsIm1lcmdlVG9NYXN0ZXIiLCJtZXJnZVN0YXR1cyIsIm1lcmdlRnJvbU1hc3RlciIsInVwZGF0ZVN0YXR1cyIsInVwZGF0ZUJ1dHRvblByb3BzIiwiaXNTYXZpbmciLCJvblVwZGF0ZSIsInJlbG9hZFJlc291cmNlIiwiY2FsbFVwZGF0ZVVzZXJCcmFuY2giLCJpc0Vycm9yRGlhbG9nT3BlbiIsIm9uQ2xvc2VFcnJvckRpYWxvZyIsImlzVXBkYXRlTG9hZGluZyIsImlzTG9hZGluZyIsImRpYWxvZ01lc3NhZ2UiLCJkaWFsb2dUaXRsZSIsImRpYWxvZ0xpbmsiLCJkaWFsb2dMaW5rVG9vbHRpcCIsIm9uTWVyZ2UiLCJsb2ciLCJfdXNlTWFzdGVyTWVyZ2VQcm9wcyIsImlzTWVyZ2VMb2FkaW5nIiwiY2FsbE1lcmdlVXNlckJyYW5jaCIsInVzZUVmZmVjdCIsInByZXZDYXJkc0xvYWRpbmciLCJ3b3JraW5nUmVmIiwic2NyaXB0dXJlVGl0bGUiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc284IiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwiY3JlYXRlRWxlbWVudCIsImVycm9yTWVzc2FnZSIsInNldEVkaXRWZXJzZSIsImVkaXRpbmciLCJkaXNhYmxlQ2hhbmdlQnV0dG9ucyIsIm9uTWVudUNsb3NlIiwibGFuZ3VhZ2VJZF8iLCJsYW5ndWFnZSIsImRpcmVjdGlvbiIsIl9yZWZlcmVuY2UiLCJpc0hlYnJldyIsImZvbnRGYWN0b3IiLCJzY2FsZWRGb250U2l6ZSIsIml0ZW1zIiwiX3VzZUNhcmRTdGF0ZSIsIl91c2VDYXJkU3RhdGUkc3RhdGUiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsIl91c2VDYXJkU3RhdGUkYWN0aW9ucyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwibGluZUhlaWdodCIsInNjcmlwdHVyZUxhYmVsIiwiZGlzYWJsZVdvcmRQb3BvdmVyXyIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJvcmlnaW5hbFJlcG9VcmwiLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiY3VycmVudFZlcnNlUmVmIiwiX3NldFNhdmVkQ2hhbmdlcyIsInNvdXJjZUxhbmd1YWdlIiwidGFyZ2V0TGFuZ3VhZ2UiLCJjdXJyZW50SW5kZXgiLCJzYXZlZCIsIl9yZWYzIiwiX3JlZjMkZ2V0Q2hhbmdlcyIsImdldENoYW5nZXMiLCJfcmVmMyRjbGVhckNoYW5nZXMiLCJjbGVhckNoYW5nZXMiLCJfcmVmMyRzdGF0ZSIsIl91bnNhdmVkQ2hhbmdlc0xpc3QiLCJfaGF2ZVVuc2F2ZWRDaGFuZ2VzIiwiZmluZFJlZkluQXJyYXkiLCJmaW5kSXRlbSIsImNodW5rcyIsInJlZkxlbiIsImluZGV4IiwiZmluZEluZGV4IiwiY2h1bmsiLCJpZHgiLCJzdWJzdHJpbmciLCJuZXh0Q2hhciIsImdldEJvb2tOYW1lIiwiX3NjcmlwdHVyZUNvbmZpZyRyZWZlIiwiYm9va0NhcHMiLCJ0b1VwcGVyQ2FzZSIsImZpbGVwYXRoIiwic2hhIiwiX3VzZUVkaXQiLCJjb250ZW50IiwiY29uZmlnIiwiZG9udENyZWF0ZUJyYW5jaCIsInRpbWVvdXQiLCJzZXJ2ZXJUaW1lT3V0IiwiYXV0aG9yIiwiZW1haWwiLCJ1c2VyIiwiYnJhbmNoIiwic2F2ZUVycm9yIiwiaXNTYXZlRXJyb3IiLCJpc0Vycm9yIiwib25TYXZlRWRpdCIsIm9uU2F2ZUVkaXRQYXRjaCIsImN1cnJlbnQiLCJfc2F2ZVN1Y2Nlc2Z1bCIsInByZXZDYXJkc1NhdmluZyIsInVuc2F2ZWRDYXJkSW5kaWNlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiY2FyZEluZGV4IiwibG9nQ2hhbmdlZCIsImNvbW1lbnQiLCJpbml0aWFsIiwiZmluYWwiLCJkaWZmIiwiX3NhdmVFZGl0IiwiX3JlZjQiLCJfY2FsbGVlIiwidXBsb2FkRnVuY3Rpb24iLCJzdWNjZXNzIiwicmVzdWx0cyIsIl9zYXZlQ29udGVudCIsImZpbGVTaGEiLCJzYXZlZEJpYmxlVXNmbSIsImVkaXRlZEJpYmxlVXNmbSIsInVwVG9EYXRlIiwibmV3Q29udGV4dExpbmVzIiwiZGlmZlBhdGNoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIm1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJuZXdVc2ZtIiwiY2hhcHRlckNodW5rcyIsInNwbGl0IiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJmcm9udE1hdHRlciIsIm5ld1ZlcnNlVXNmbSIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJvbGRWZXJzZSIsInByZWZpeExlbiIsImluZGV4T2YiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVhZHlGb3JTYXZlIiwiX2dldFJlYWR5Rm9yU2F2ZSIsIl9jYWxsZWUyIiwiY3JlYXRlRWRpdEJyYW5jaCIsImJpYmxlVXNmbUluaXRpYWwiLCJiaWJsZVVzZm1OZXciLCJtZXJnZUZhaWwiLCJfY2FyZE51bSIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfdW5zYXZlZENoYW5nZXNMaXN0JF8iLCJfc3RhdGUiLCJfZ2V0Q2hhbmdlcyIsIl9yZWY1IiwiX3NhdmVEaWZmUGF0Y2giLCJfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJuZXdCb29rSnNvbiIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJfY2FyZEluZGV4IiwiX2NhcmROdW0yIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCRfMiIsIl9nZXRDaGFuZ2VzMiIsIl9zdGF0ZTIiLCJfbmV3VXNmbSIsIl9nZXRDaGFuZ2VzMyIsIm5ld1ZlcnNlVGV4dCIsIl9yZWY2IiwiX3VwZGF0ZWRWZXJzZU9iamVjdHMiLCJ0YXJnZXRWZXJzZU9iamVjdHNfIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTEiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJwYXJzZUludCIsInQwIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ1cGRhdGVWZXJzZSIsInRvVVNGTSIsImZvcmNlZE5ld0xpbmVzIiwiX3JlZjciLCJfdmVyc2VzRm9yUmVmIiwibmV3U2VsZWN0aW9ucyIsInVwZGF0ZVNlbGVjdGlvbnMiLCJfbWFwIiwib3JpZ2luYWxCb29rSWQiLCJib29rVmVyc2VPYmplY3QiLCJjaGFwdGVycyIsIm5ld1NlbGVjdGVkUXVvdGUiLCJxdW90ZSIsIl9zZWxlY3RlZFF1b3RlJHJlZmVyZTMiLCJvcmlnaW5hbFZlcnNlcyIsInN1YnN0aXR1dGUiLCJzdGFydFZlcnNlIiwibGFzdFZlcnNlIiwiX3ZlcnNlIiwidmVyc2VzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsInZlcnNlSXRlbSIsInZvIiwiX2Jvb2tWZXJzZU9iamVjdCRfY2hhIiwic2V0IiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlIiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlMiIsInN1YlJlZiIsInF1b3RlTWF0Y2hlcyIsImJvb2tPYmplY3QiLCJvY2N1cnJlbmNlIiwic2l6ZSIsIndvcmRzIiwiX2tleSIsIm1hcCIsIndvcmQiLCJ0ZXh0Iiwibm9ybWFsaXplU3RyaW5nIiwiYm9va3NOb3RTYW1lIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwiYWxpZ25lZCIsIl92ZXJzZXNGb3JSZWYyIiwiX3JlZjgiLCJyZW5kZXJlZFNjcmlwdHVyZVBhbmVzIiwiX2N1cnJlbnRWZXJzZURhdGEiLCJfY3VycmVudFZlcnNlRGF0YSR2ZXIiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX3JlZjkiLCJib29rSWRfIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJkZXRlcm1pbmluZ0JyYW5jaCIsIm9uQWxpZ25tZW50RmluaXNoIiwic2F2aW5nIiwiaGFuZGxlQWxpZ25CdXR0b25DbGljayIsIm9uUmVuZGVyVG9vbGJhciIsIl9yZWYxMCIsIm5ld0l0ZW1zIiwiYWxsVmVyc2VzQWxpZ25lZCIsImV2ZXJ5IiwiYWxpZ25TdGF0dXMiLCJhbGlnbkljb24iLCJhbGlnbkJ1dHRvblRleHQiLCJjb2xvciIsIm9uQ2xpY2siLCJjdXJzb3IiLCJGcmFnbWVudCIsIm9wZW4iLCJvbkNsb3NlIiwibGluayIsImxpbmtUb29sdGlwIiwic2VsZWN0aW9uQm9va09iamVjdHMiLCJvblNlbGVjdGlvbnMiLCJyZWZTdHJpbmciLCJzZXR0aW5nc1RpdGxlIiwiZ2V0Q3VzdG9tQ29tcG9uZW50IiwiaGlkZU1hcmtkb3duVG9nZ2xlIiwiZWRpdGFibGUiLCJvblZlcnNlU2VsZWN0IiwicHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9iamVjdCIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJhbnkiLCJzZXRBcmVSZXNvdXJjZXNMb2FkaW5nIiwic2V0QXJlUmVzb3VyY2VzU2F2aW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvU2NyaXB0dXJlQ2FyZC9TY3JpcHR1cmVDYXJkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSwgU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFJ4TGluazIsIFJ4TGlua0JyZWFrMiB9IGZyb20gJ3JlYWN0LWljb25zL3J4J1xuaW1wb3J0IHtcbiAgQ2FyZCxcbiAgRXJyb3JEaWFsb2csXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBVcGRhdGVCcmFuY2hCdXR0b24sXG4gIHVzZUJyYW5jaE1lcmdlcixcbiAgdXNlQ2FyZFN0YXRlLFxuICB1c2VDb250ZW50VXBkYXRlUHJvcHMsXG4gIHVzZU1hc3Rlck1lcmdlUHJvcHMsXG4gIHVzZVVzZXJCcmFuY2gsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZiB9IGZyb20gJ3V3LXF1b3RlLWhlbHBlcnMnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdAcmVhY3QtaG9va3ovZGVlcC1lcXVhbCdcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbiAgZmV0Y2hCaWJsZUJvb2ssXG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZSxcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVsYXknXG5pbXBvcnQgeyBhcmVNYXBzVGhlU2FtZSB9IGZyb20gJy4uLy4uL3V0aWxzL21hcHMnXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJy4uL1NjcmlwdHVyZVBhbmUvc3R5bGVkJ1xuaW1wb3J0IHtcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBWZXJzZVNlbGVjdG9yUG9wdXAgfSBmcm9tICcuLi9WZXJzZVNlbGVjdG9yUG9wdXAnXG5pbXBvcnQgeyBnZXRQYXRjaCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbGVzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSwgVmVyc2VPYmplY3RzVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuLyoqXG4gKiBjcmVhdGUgYSBzaG9ydCBjb21wYXJpc29uIHZlcnNlIHJlZiBvYmplY3Qgd2l0aG91dCBhbGwgdGhlIHZlcnNlRGF0YVxuICogQHBhcmFtIHZlcnNlUmVmXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVPYmplY3QodmVyc2VSZWYpIHtcbiAgY29uc3Qge1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgdmVyc2VEYXRhLFxuICB9ID0gdmVyc2VSZWYgfHwge31cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gdmVyc2VEYXRhPy52ZXJzZU9iamVjdHM/Lmxlbmd0aCA/IEpTT04uc3RyaW5naWZ5KHZlcnNlRGF0YS52ZXJzZU9iamVjdHMpIDogJydcbiAgcmV0dXJuIHtcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIHZlcnNlT2JqZWN0cyxcbiAgfVxufVxuXG4vKipcbiAqIGNvbXBhcmUgdHdvIHZlcnNlIHJlZnMgdG8gc2VlIGlmIHRoZXkgYXJlIHN1YnN0YW50aWFsbHkgc2ltaWxhclxuICogQHBhcmFtIHZlcnNlc0ZvclJlZjFcbiAqIEBwYXJhbSB2ZXJzZXNGb3JSZWYyXG4gKi9cbmZ1bmN0aW9uIGFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmMTogYW55W10sIHZlcnNlc0ZvclJlZjI6IGFueVtdKSB7XG4gIHZlcnNlc0ZvclJlZjEgPSB2ZXJzZXNGb3JSZWYxIHx8IFtdXG4gIHZlcnNlc0ZvclJlZjIgPSB2ZXJzZXNGb3JSZWYyIHx8IFtdXG4gIGxldCBhcmVTYW1lID0gZmFsc2VcblxuICBpZiAodmVyc2VzRm9yUmVmMS5sZW5ndGggPT09IHZlcnNlc0ZvclJlZjIubGVuZ3RoKSB7XG4gICAgYXJlU2FtZSA9IHRydWVcblxuICAgIGZvciAobGV0IGkgPSAwLCBsPSB2ZXJzZXNGb3JSZWYxLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgdmVyc2UxID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYxW2ldKVxuICAgICAgY29uc3QgdmVyc2UyID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYyW2ldKVxuICAgICAgYXJlU2FtZSA9IGlzRXF1YWwodmVyc2UxLCB2ZXJzZTIpXG5cbiAgICAgIGlmICghYXJlU2FtZSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmVTYW1lXG59XG5cbi8qKlxuICogZ2V0IHRoZSBVU0ZNIGZvciBib29rSWQgZnJvbSBzY3JpcHR1cmVDb25maWcuXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50Qm9vayA9IChzY3JpcHR1cmVDb25maWcsIGJvb2tJZCkgPT4ge1xuICBjb25zdCBsYXRlc3RCaWJsZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnByb2plY3RJZFxuICBjb25zdCBmaWxlbmFtZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/Lm5hbWUgLy8gTGlrZSBcIjU3LVRJVC51c2ZtXCJcbiAgbGV0IGlzQm9va1ZhbGlkID0gZmFsc2VcbiAgY29uc3QgYm9va05hbWUgPSBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUoZmlsZW5hbWUpXG4gIGlzQm9va1ZhbGlkID0gYm9va05hbWU/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcbiAgaWYgKCFpc0Jvb2tWYWxpZCkge1xuICAgIGNvbnNvbGUud2FybihgQ3VycmVudCBib29rSWQgaXMgJHtib29rSWR9IGFuZCBVU0ZNIGZpbGUgaXMgJHtmaWxlbmFtZX1gKVxuICB9XG4gIGlmIChsYXRlc3RCaWJsZT8udG9Mb3dlckNhc2UoKSAhPT0gYm9va0lkKSB7XG4gICAgY29uc29sZS53YXJuKGBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYnV0IGZldGNoZWQgcHJvamVjdElkIGlzICR7bGF0ZXN0QmlibGV9YClcbiAgICBpc0Jvb2tWYWxpZCA9IGZhbHNlXG4gIH1cbiAgaWYgKGlzQm9va1ZhbGlkKSB7XG4gICAgY29uc3QgYmlibGVVc2ZtID0gc2NyaXB0dXJlQ29uZmlnPy5iaWJsZVVzZm07XG4gICAgaWYgKGJpYmxlVXNmbSkge1xuICAgICAgcmV0dXJuIGJpYmxlVXNmbVxuICAgIH1cbiAgICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gQmlibGUgVVNGTSBtaXNzaW5nYClcbiAgfVxuICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gRXhwZWN0ZWQgJHtib29rSWR9IGJ1dCBnb3QgZmlsZSAke2ZpbGVuYW1lfWApXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjcmlwdHVyZUNhcmQoe1xuICBhcHBSZWYsXG4gIGF1dGhlbnRpY2F0aW9uLFxuICBib29rSW5kZXgsXG4gIGNhcmROdW0sXG4gIGNsYXNzZXMsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZ2V0TGFuZ3VhZ2UsXG4gIGdldExleGljb25EYXRhLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGh0dHBDb25maWcsXG4gIGlkLFxuICBpc05ULFxuICBsb2dnZWRJblVzZXIsXG4gIG9uTWluaW1pemUsXG4gIG9uUmVzb3VyY2VFcnJvcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgcmVmZXJlbmNlOiByZWZlcmVuY2VfLFxuICByZXNvdXJjZToge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIH0sXG4gIHJlc291cmNlTGluayxcbiAgc2VsZWN0ZWRRdW90ZSxcbiAgc2VydmVyLFxuICBzZXRDYXJkc0xvYWRpbmdNZXJnZSxcbiAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlLFxuICBzZXRDYXJkc1NhdmluZyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgdHJhbnNsYXRlLFxuICB0aXRsZSxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgdXBkYXRlTWVyZ2VTdGF0ZSxcbn0pIHtcbiAgY29uc3Qgc2F2ZUluUHJvZ3Jlc3MgPSBSZWFjdC51c2VSZWYoZmFsc2UpOyAvLyBBZGQgcmVmIHRvIHRyYWNrIHNhdmUgb3BlcmF0aW9uXG4gIGNvbnN0IGJvb2tJZCA9IHJlZmVyZW5jZV8/LmJvb2tJZCB8fCByZWZlcmVuY2VfPy5wcm9qZWN0SWQgLy8gb2xkZXIgdmVyc2lvbnMgdXNlIHByb2plY3RJZCwgc28gZmFsbCBiYWNrIHRvIHRoYXRcbiAgY29uc3QgcmVmZXJlbmNlID0ge1xuICAgIGJvb2tJZCxcbiAgICBjaGFwdGVyOiByZWZlcmVuY2VfPy5jaGFwdGVyLFxuICAgIHZlcnNlOiByZWZlcmVuY2VfPy52ZXJzZSxcbiAgfVxuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgY2hlY2tGb3JFZGl0QnJhbmNoOiAwLFxuICAgIGNvbnRleHRMaW5lczogNCxcbiAgICBjdXJyZW50UmVmZXJlbmNlOiBudWxsLFxuICAgIGVkaXRCcmFuY2hSZWFkeTogZmFsc2UsXG4gICAgZWRpdFZlcnNlOiBudWxsLFxuICAgIGhhdmVVbnNhdmVkQ2hhbmdlczogZmFsc2UsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGU6IG51bGwsXG4gICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgcmVmOiBhcHBSZWYsXG4gICAgc2F2ZUNsaWNrZWQ6IGZhbHNlLFxuICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgIHNhdmVEaWZmUGF0Y2g6IGZhbHNlLFxuICAgIHNhdmVGdWxsQmlibGVDb250ZW50OiBudWxsLFxuICAgIHNlbGVjdGlvbnM6IG5ldyBNYXAoKSxcbiAgICBzZWxlY3Rpb25zUmVmczogJycsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IG51bGwsXG4gICAgdmVyc2VzRm9yUmVmOiBudWxsLFxuICAgIHZlcnNlT2JqZWN0c01hcDogbmV3IE1hcCgpLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBjaGVja0ZvckVkaXRCcmFuY2gsXG4gICAgY29udGV4dExpbmVzLFxuICAgIGN1cnJlbnRSZWZlcmVuY2UsXG4gICAgZWRpdEJyYW5jaFJlYWR5LFxuICAgIGVkaXRWZXJzZSwgLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBiZWluZyBlZGl0dGVkXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzLFxuICAgIGxhc3RTZWxlY3RlZFF1b3RlLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVmLFxuICAgIHNhdmVDbGlja2VkLFxuICAgIHNhdmVDb250ZW50LFxuICAgIHNhdmVEaWZmUGF0Y2gsXG4gICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQsXG4gICAgc2VsZWN0aW9ucyxcbiAgICBzZWxlY3Rpb25zUmVmcyxcbiAgICBzaG93QWxpZ25tZW50UG9wdXAsXG4gICAgc3RhcnRTYXZlLFxuICAgIHVybEVycm9yLFxuICAgIHVzaW5nVXNlckJyYW5jaCxcbiAgICB1bnNhdmVkQ2hhbmdlc0xpc3QsXG4gICAgdmVyc2VPYmplY3RzTWFwLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfSA9IHN0YXRlXG5cbiAgY29uc3QgW2ZvbnRTaXplLCBzZXRGb250U2l6ZV0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9GT05UX1NJWkVfQkFTRSArIGNhcmROdW0sIDEwMClcbiAgY29uc3QgaXNOVF8gPSBpc05UKGJvb2tJZClcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGh0dHBDb25maWcgPSB7XG4gICAgLi4uaHR0cENvbmZpZyxcbiAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICBub0NhY2hlOiB0cnVlLFxuICB9IC8vIGRpc2FibGUgaHR0cCBjYWNoaW5nXG5cbiAgY29uc3Qge1xuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzZXRTY3JpcHR1cmUsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gIH0gPSB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gICAgYXBwUmVmOiByZWYsXG4gICAgY2FyZE51bSxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgZ3JlZWtSZXBvVXJsLFxuICAgIGhlYnJld1JlcG9VcmwsXG4gICAgaHR0cENvbmZpZyxcbiAgICBpc05ULFxuICAgIGxhbmd1YWdlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIG93bmVyLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVmZXJlbmNlOiBjdXJyZW50UmVmZXJlbmNlIHx8IHJlZmVyZW5jZSxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlc291cmNlTGluayxcbiAgICBzZXRVcmxFcnJvcjogKGVycm9yKSA9PiBzZXRTdGF0ZSh7IHVybEVycm9yOiBlcnJvciB9KSxcbiAgICBzZXJ2ZXIsXG4gICAgdGl0bGUsXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hlZFJlc291cmNlID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgcmVwbyA9IGAke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWR9XyR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkfWBcbiAgY29uc3QgdXNpbmdPcmlnaW5hbEJpYmxlID0gaXNPcmlnaW5hbEJpYmxlKHNjcmlwdHVyZUNvbmZpZ1sncmVzb3VyY2UnXT8ucHJvamVjdElkKVxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjYXJkUmVzb3VyY2VJZCA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZCB8fCByZXNvdXJjZUlkXG4gIC8vIEB0cy1pZ25vcmVcbiAgbGV0IHJlZl8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5yZWYgfHwgYXBwUmVmXG4gIGNvbnN0IGNhblVzZUVkaXRCcmFuY2ggPSAhIShsb2dnZWRJblVzZXIgJiYgYXV0aGVudGljYXRpb24gJiYgKHJlc291cmNlSWQgIT09IE9SSUdJTkFMX1NPVVJDRSkgJiYgLy8gVFJJQ0tZIGlmIG5vdCBvcmlnaW5hbCBsYW5ndWFnZSBhbmQgd2UgaGF2ZSBsb2dpbiBkYXRhLCB0aGVuIHdlIGNhbiB1c2UgdGhlIGVkaXQgYnJhbmNoXG4gICAgKChyZWZfID09PSAnbWFzdGVyJykgfHwgKHJlZl8uaW5jbHVkZXMobG9nZ2VkSW5Vc2VyKSkpKSAvLyBhbHNvIG1ha2Ugc3VyZSBub3QgYSB2ZXJzaW9uIHRhZ1xuXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgYnJhbmNoRGV0ZXJtaW5lZCxcbiAgICAgIHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgIHVzaW5nVXNlckJyYW5jaDogX3VzaW5nVXNlckJyYW5jaCxcbiAgICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHN0YXJ0RWRpdDogc3RhcnRFZGl0QnJhbmNoLFxuICAgICAgZmluaXNoRWRpdCxcbiAgICB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgYXBwUmVmLFxuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGNhcmRSZXNvdXJjZUlkLFxuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBsYW5ndWFnZUlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3duZXIsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHNlcnZlcixcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB9KVxuXG4gIGNvbnN0IF91c2VCcmFuY2hNZXJnZXIgPSB1c2VCcmFuY2hNZXJnZXIoeyBzZXJ2ZXIsIG93bmVyLCByZXBvLCB1c2VyQnJhbmNoOiB1c2VyRWRpdEJyYW5jaE5hbWUsIHRva2VuaWQ6IGF1dGhlbnRpY2F0aW9uPy50b2tlbj8uc2hhMSB9KVxuICBjb25zdCB7XG4gICAgc3RhdGU6IHtcbiAgICAgIG1lcmdlU3RhdHVzOiBtZXJnZVRvTWFzdGVyLFxuICAgICAgdXBkYXRlU3RhdHVzOiBtZXJnZUZyb21NYXN0ZXIsXG4gICAgfSxcbiAgfSA9IF91c2VCcmFuY2hNZXJnZXJcblxuICBjb25zdCB1cGRhdGVCdXR0b25Qcm9wcyA9IHVzZUNvbnRlbnRVcGRhdGVQcm9wcyh7XG4gICAgaXNTYXZpbmc6IHN0YXJ0U2F2ZSxcbiAgICB1c2VCcmFuY2hNZXJnZXI6IF91c2VCcmFuY2hNZXJnZXIsXG4gICAgb25VcGRhdGU6ICgpID0+IHtcbiAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKCkpXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCB7XG4gICAgY2FsbFVwZGF0ZVVzZXJCcmFuY2gsXG4gICAgaXNFcnJvckRpYWxvZ09wZW4sXG4gICAgb25DbG9zZUVycm9yRGlhbG9nLFxuICAgIGlzTG9hZGluZzogaXNVcGRhdGVMb2FkaW5nLFxuICAgIGRpYWxvZ01lc3NhZ2UsXG4gICAgZGlhbG9nVGl0bGUsXG4gICAgZGlhbG9nTGluayxcbiAgICBkaWFsb2dMaW5rVG9vbHRpcCxcbiAgfSA9IHVwZGF0ZUJ1dHRvblByb3BzXG5cbiAgY29uc3Qgb25NZXJnZSA9ICgpID0+IHtcbiAgICBmaW5pc2hFZGl0KClcbiAgICBjb25zb2xlLmxvZyhgb25NZXJnZSgpIHN3aXRjaGluZyBiYWNrIHRvIG1hc3RlciBhZnRlciBtZXJnZSBhcHBSZWY6YCwgYXBwUmVmKVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgcmVmOiBhcHBSZWYsXG4gICAgfSlcbiAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBjaGVja0ZvckVkaXRCcmFuY2g6IGNoZWNrRm9yRWRpdEJyYW5jaCArIDEsIC8vIHRyaWdnZXIgcmVjaGVjayBvZiB1c2VyIGJyYW5jaCB3aGljaCB3aWxsIHN3aXRjaCB0aGUgYnJhbmNoIGJhY2sgdG8gbWFzdGVyXG4gICAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgeyBpc0xvYWRpbmc6IGlzTWVyZ2VMb2FkaW5nLCBjYWxsTWVyZ2VVc2VyQnJhbmNoIH0gPSB1c2VNYXN0ZXJNZXJnZVByb3BzKHtcbiAgICBpc1NhdmluZzogc3RhcnRTYXZlLFxuICAgIHVzZUJyYW5jaE1lcmdlcjogX3VzZUJyYW5jaE1lcmdlcixcbiAgICBvbk1lcmdlLFxuICB9KVxuXG4gIC8vIFNpbmNlIG9yaWdpbmFsIHRleHQgKEdyZWVrL0hlYnJldykgc2hvdWxkIG5vdCBiZSBlZGl0ZWQsIGRvIG5vdCBpbmNsdWRlXG4gIC8vIHRoZW0gaW4gbWVyZ2Ugc3RhdGUgc2luY2UgdXNlciB3aWxsIG5vdCBtZXJnZS9wdXNoIGNoYW5nZXMuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNhcmRSZXNvdXJjZUlkICYmICF1c2luZ09yaWdpbmFsQmlibGUpIHtcbiAgICAgIHVwZGF0ZU1lcmdlU3RhdGUgJiYgdXBkYXRlTWVyZ2VTdGF0ZShcbiAgICAgICAgY2FyZFJlc291cmNlSWQsXG4gICAgICAgIHNjcmlwdHVyZUNvbmZpZy50aXRsZSxcbiAgICAgICAgbWVyZ2VGcm9tTWFzdGVyLFxuICAgICAgICBtZXJnZVRvTWFzdGVyLFxuICAgICAgICBjYWxsVXBkYXRlVXNlckJyYW5jaCxcbiAgICAgICAgY2FsbE1lcmdlVXNlckJyYW5jaCxcbiAgICAgIClcbiAgICB9XG4gIH0sW2NhcmRSZXNvdXJjZUlkLCBzY3JpcHR1cmVDb25maWcudGl0bGUsIG1lcmdlRnJvbU1hc3RlciwgbWVyZ2VUb01hc3Rlcl0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNVcGRhdGVMb2FkaW5nKSB7XG4gICAgICBzZXRDYXJkc0xvYWRpbmdVcGRhdGU/LihwcmV2Q2FyZHNMb2FkaW5nID0+IFsuLi5wcmV2Q2FyZHNMb2FkaW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ1VwZGF0ZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gcHJldkNhcmRzTG9hZGluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgIH1cbiAgfSwgW2lzVXBkYXRlTG9hZGluZ10pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNNZXJnZUxvYWRpbmcpIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ01lcmdlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBbLi4ucHJldkNhcmRzTG9hZGluZywgY2FyZFJlc291cmNlSWRdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRDYXJkc0xvYWRpbmdNZXJnZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gcHJldkNhcmRzTG9hZGluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgIH1cbiAgfSwgW2lzTWVyZ2VMb2FkaW5nXSlcblxuICBjb25zdCB3b3JraW5nUmVmID0gY2FuVXNlRWRpdEJyYW5jaCA/IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCA6IGFwcFJlZlxuICBsZXQgc2NyaXB0dXJlVGl0bGVcblxuICBpZiAoIWNhblVzZUVkaXRCcmFuY2ggJiYgIXJlYWR5Rm9yRmV0Y2gpIHsgLy8gaWYgYmlibGUgbm90IGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgbWFrZSBzdXJlIGl0J3MgcmVhZHlcbiAgICBzZXRTdGF0ZSh7IHJlYWR5Rm9yRmV0Y2g6IHRydWUgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgYm9vayBjaGFuZ2VkYCwgeyBib29rSWQsIG93bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkIH0pXG5cbiAgICBpZiAoY2FuVXNlRWRpdEJyYW5jaCkgeyAvLyBpZiBiaWJsZSBlbGlnaWJsZSBmb3IgdXNlciBicmFuY2gsIHJlZnJlc2ggaXRcbiAgICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogZmFsc2UsIGNoZWNrRm9yRWRpdEJyYW5jaDogY2hlY2tGb3JFZGl0QnJhbmNoICsgMSB9KVxuICAgIH1cbiAgfSwgW2Jvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0VxdWFsKHJlZmVyZW5jZSwgY3VycmVudFJlZmVyZW5jZSkpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVDYXJkIHJlZmVyZW5jZSBjaGFuZ2VkYCwgcmVmZXJlbmNlKVxuICAgICAgc2V0U3RhdGUoeyBjdXJyZW50UmVmZXJlbmNlOiByZWZlcmVuY2UsIGVkaXRWZXJzZTogbnVsbCB9KVxuICAgIH1cbiAgfSwgW3JlZmVyZW5jZV0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2FpdGluZyBmb3IgYnJhbmNoIGZldGNoIHRvIGNvbXBsZXRlXG4gICAgaWYgKCFyZWFkeUZvckZldGNoICYmIGJyYW5jaERldGVybWluZWQgKSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBicmFuY2hEZXRlcm1pbmVkIGlzICR7YnJhbmNoRGV0ZXJtaW5lZH0gYW5kIHdvcmtpbmdSZWYgaXMgJHt3b3JraW5nUmVmfWApXG4gICAgICBzZXRTdGF0ZSh7IHJlYWR5Rm9yRmV0Y2g6IHRydWUsIHJlZjogd29ya2luZ1JlZiB9KVxuICAgIH1cbiAgfSwgW2JyYW5jaERldGVybWluZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGlmIChfdXNpbmdVc2VyQnJhbmNoICE9PSB1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICAgIHNldFN0YXRlKHsgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoIH0pXG4gICAgfVxuICB9LCBbX3VzaW5nVXNlckJyYW5jaCwgdXNpbmdVc2VyQnJhbmNoXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgZGlzcGxheSBzdGF0dXMgaWYgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1cblxuICAgIGlmIChlcnJvcikgeyAvLyBpZiBlcnJvciB3YXMgZm91bmQgZG8gY2FsbGJhY2tcbiAgICAgIGNvbnN0IHJlc291cmNlU3RhdHVzID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1c1xuICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VMaW5rKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIC8qKlxuICAgKiBzZXQgZWRpdCBzdGF0ZSBmb3Igc3BlY2lmaWMgdmVyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlUmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIGJlaW5nIGVkaXRlZCBvciBmaW5pc2hlZCBlZGl0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZyAtIHRydWUgd2hlbiBlZGl0aW5nXG4gICAqL1xuICBmdW5jdGlvbiBzZXRFZGl0VmVyc2UodmVyc2VSZWYsIGVkaXRpbmcpIHtcbiAgICBpZiAoZWRpdGluZyAmJiAodmVyc2VSZWYgIT09IGVkaXRWZXJzZSkpIHsgLy8gY2hlY2sgaWYgd2UgbmVlZCB0byBzZXQgZmxhZyB0aGF0IHdlIGFyZSBlZGl0aW5nIHRoaXMgdmVyc2VcbiAgICAgIHNldFN0YXRlKHsgZWRpdFZlcnNlOiB2ZXJzZVJlZiB9KVxuICAgIH0gZWxzZSBpZiAoIWVkaXRpbmcgJiYgKHZlcnNlUmVmID09PSBlZGl0VmVyc2UpKSB7IC8vIGNsZWFyIGVkaXQgZmxhZyBpZiBpdCBpcyBmb3IgY3VycmVudCBlZGl0IHZlcnNlXG4gICAgICBzZXRTdGF0ZSh7IGVkaXRWZXJzZTogbnVsbCB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRpc2FibGVDaGFuZ2VCdXR0b25zID0gISFlZGl0VmVyc2UgLy8gd2UgZG9uJ3Qgd2FudCB0byBhbGxvdyBjbGlja2luZyBvbiBjaGFuZ2UgYnV0dG9ucyB3aGlsZSBlZGl0aW5nXG5cbiAgZnVuY3Rpb24gb25NZW51Q2xvc2UoKSB7XG4gICAgLy8gY29uc29sZS5sb2coYG9uTWVudUNsb3NlKClgKVxuICAgIHNldFN0YXRlKHsgdXJsRXJyb3I6IG51bGwgfSlcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbGFuZ3VhZ2VJZF8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkXG4gIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UoeyBsYW5ndWFnZUlkOiBsYW5ndWFnZUlkXyB9KVxuICBjb25zdCBkaXJlY3Rpb24gPSAobGFuZ3VhZ2U/LmRpcmVjdGlvbikgfHwgJ2x0cidcbiAgY29uc3QgX3JlZmVyZW5jZSA9IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlXG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcblxuICBjb25zdCBpdGVtcyA9IG51bGxcbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBoZWFkZXJzLCBmaWx0ZXJzLCBpdGVtSW5kZXgsIG1hcmtkb3duVmlldyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHNldEZpbHRlcnMsIHNldEl0ZW1JbmRleCwgc2V0TWFya2Rvd25WaWV3LFxuICAgIH0sXG4gIH0gPSB1c2VDYXJkU3RhdGUoeyBpdGVtcyB9KVxuXG4gIGNvbnN0IHJlZlN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtNYXRoLnJvdW5kKHNjYWxlZEZvbnRTaXplICogMC45KX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3QgY29udGVudFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtzY2FsZWRGb250U2l6ZX0lYCxcbiAgICAuLi4oaXNIZWJyZXcgPyB7bGluZUhlaWdodDogJzIuMGVtJ30gOiB7fSlcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3Qgc2NyaXB0dXJlTGFiZWwgPSA8VGl0bGU+e3NjcmlwdHVyZVRpdGxlfTwvVGl0bGU+XG4gIGxldCBkaXNhYmxlV29yZFBvcG92ZXJfID0gZGlzYWJsZVdvcmRQb3BvdmVyXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogX3JlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJvb2tDYXBzID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2U/LmJvb2tJZCA/IHNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UuYm9va0lkLnRvVXBwZXJDYXNlKCkgOiAnJ1xuICAgIHJldHVybiBgJHtib29rSW5kZXh9LSR7Ym9va0NhcHN9LnVzZm1gXG4gIH1cblxuICBjb25zdCBmaWxlcGF0aCA9IGdldEJvb2tOYW1lKClcbiAgY29uc3Qgc2hhID0gZmV0Y2hlZFJlc291cmNlPy5zaGFcblxuICAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGVkaXQgc3RhdGVcbiAgY29uc3Qge1xuICAgIGVycm9yOiBzYXZlRXJyb3IsXG4gICAgaXNFcnJvcjogaXNTYXZlRXJyb3IsXG4gICAgb25TYXZlRWRpdCxcbiAgICBvblNhdmVFZGl0UGF0Y2gsXG4gIH0gPSB1c2VFZGl0KHtcbiAgICBzaGEsXG4gICAgb3duZXIsXG4gICAgY29udGVudDogc2F2ZUNvbnRlbnQsXG4gICAgY29uZmlnOiB7XG4gICAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICAgIC4uLmF1dGhlbnRpY2F0aW9uPy5jb25maWcsXG4gICAgICBkb250Q3JlYXRlQnJhbmNoOiB0cnVlLFxuICAgICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRpbWVvdXQ6IGh0dHBDb25maWc/LnNlcnZlclRpbWVPdXQgfHwgaHR0cENvbmZpZz8udGltZW91dCB8fCAxMDAwMCxcbiAgICAgIHNlcnZlcixcbiAgICB9LFxuICAgIGF1dGhvcjogbG9nZ2VkSW5Vc2VyLFxuICAgIGVtYWlsOiBhdXRoZW50aWNhdGlvbj8udXNlcj8uZW1haWwsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gd2UgZ2V0IGEgc2F2ZSBzYXZlRXJyb3JcbiAgICBpZiAoc2F2ZUVycm9yICYmIGlzU2F2ZUVycm9yICYmICFzdGFydFNhdmUpIHsgLy8gaWYgZXJyb3IgdGhlbiBzaG93IGFmdGVyIHNhdmUgY29tcGxldGVzLCBzaW5jZSB3ZSBtYXkgcmV0cnlcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlIGVycm9yYCwgc2F2ZUVycm9yKVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIHNhdmluZyAke2xhbmd1YWdlSWR9XyR7Y2FyZFJlc291cmNlSWR9ICR7c2F2ZUVycm9yfWAsIHRydWUpXG4gICAgICBzYXZlSW5Qcm9ncmVzcy5jdXJyZW50ID0gZmFsc2U7IC8vIFJlc2V0IHRoZSBmbGFnIG9uIGVycm9yXG4gICAgfVxuICB9LCBbc2F2ZUVycm9yLCBpc1NhdmVFcnJvciwgc3RhcnRTYXZlXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHN0YXJ0U2F2ZSBnb2VzIHRydWUsIHNhdmUgZWRpdHMgdG8gdXNlciBicmFuY2ggYW5kIHRoZW4gY2xlYXIgc3RhcnRTYXZlXG4gICAgZnVuY3Rpb24gX3NhdmVTdWNjZXNmdWwoKSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHNjcmlwdHVyZSBlZGl0cyBzdWNjZXNzYClcbiAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgIGNvbnN0IHtjbGVhckNoYW5nZXN9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmRJbmRleF1cbiAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgICAgcmVhZHlGb3JGZXRjaDogdHJ1ZSxcbiAgICAgICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IG51bGwsXG4gICAgICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgICAgICByZWY6IHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgIH0pXG4gICAgICBkZWxheSgxMDApLnRoZW4oKCkgPT4ge1xuICAgICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICAgIHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2Uoc2hhLCB1c2VyRWRpdEJyYW5jaE5hbWUpXG4gICAgICB9KVxuICAgICAgc2F2ZUluUHJvZ3Jlc3MuY3VycmVudCA9IGZhbHNlOyAvLyBSZXNldCB0aGUgZmxhZyBvbiBzdWNjZXNzXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvZ0NoYW5nZWQoY29tbWVudCwgaW5pdGlhbCwgZmluYWwsIGRpZmYsIHNoYSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtjb21tZW50fSAtIHNoYTpgLCBzaGEpXG4gICAgICBjb25zb2xlLmVycm9yKGBpbml0aWFsYCwgaW5pdGlhbClcbiAgICAgIGNvbnNvbGUuZXJyb3IoYGZpbmFsYCwgZmluYWwpXG4gICAgICBjb25zb2xlLmVycm9yKGBkaWZmYCwgZGlmZilcbiAgICB9XG5cbiAgICBjb25zdCBfc2F2ZUVkaXQgPSBhc3luYyAoKSA9PiB7IC8vIGJlZ2luIHVwbG9hZGluZyBuZXcgVVNGTVxuICAgICAgaWYgKHNhdmVJblByb2dyZXNzLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gU2F2ZSBhbHJlYWR5IGluIHByb2dyZXNzLCBza2lwcGluZyBkdXBsaWNhdGUgY2FsbCcpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNhdmVJblByb2dyZXNzLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgY29uc29sZS5pbmZvKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFVzaW5nIHNoYTogJHtzaGF9YClcbiAgICAgIGxldCB1cGxvYWRGdW5jdGlvbiA9IG9uU2F2ZUVkaXRcbiAgICAgIGlmIChzYXZlRGlmZlBhdGNoKSB7XG4gICAgICAgIHVwbG9hZEZ1bmN0aW9uID0gb25TYXZlRWRpdFBhdGNoIC8vIGlmIHdlIGFyZSBzZW5kaW5nIHVwIGEgZGlmZnBhdGNoLCB3ZSB3aWxsIHVzZSB0aGlzIG1ldGhvZFxuICAgICAgfVxuXG4gICAgICBsZXQgc3VjY2VzcyA9IGF3YWl0IHVwbG9hZEZ1bmN0aW9uKHVzZXJFZGl0QnJhbmNoTmFtZSkudGhlbihyID0+IHIpLmNhdGNoKCgpID0+IGZhbHNlKS8vIHB1c2ggY2hhbmdlIHRvIHNlcnZlclxuICAgICAgbGV0IGVycm9yID0gc3VjY2VzcyA/IG51bGwgOiAnc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCdcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7IC8vIGlmIHNhdmUgZmFpbGVkLCBhdHRlbXB0IGEgcmV0cnlcbiAgICAgICAgLy8gbG9nQ2hhbmdlZCgnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkLCBzZW50Jywgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/LmluaXRpYWwsIHNhdmVGdWxsQmlibGVDb250ZW50Py5uZXcsIHNhdmVDb250ZW50LCBzaGEpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCwgcmV0cnlpbmcgLSBjb250ZXh0IGxpbmVzIGFyZSAke2NvbnRleHRMaW5lc30sIGRpZmY6XFxuYCwgc2F2ZUNvbnRlbnQpXG4gICAgICAgIGF3YWl0IGRlbGF5KDUwMCkgLy8gc2luY2Ugd2UgaGFkIGFuIGVycm9yLCB3YWl0IGZvciBkYXRhIHRvIHVwZGF0ZSBvbiBzZXJ2ZXIgYmVmb3JlIGdldHRpbmcgdGhlIGxhdGVzdFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIC8vIGZldGNoIHRoZSBsYXRlc3QgYm9vayBjb250ZW50LCBzbyB3ZSBjYW4gdGVsbCBpZiBsYXRlc3QgY2hhbmdlcyB3ZXJlIHNhdmVkIGFuZCBoYXZlIHRoZSBsYXRlc3QgZmlsZSBzaGFcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGZldGNoQmlibGVCb29rKHNlcnZlciwgaHR0cENvbmZpZywgc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZSwgc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2UpXG4gICAgICAgIGVycm9yID0gcmVzdWx0cz8uZXJyb3JcbiAgICAgICAgbGV0IF9zYXZlQ29udGVudCA9IHNhdmVDb250ZW50XG4gICAgICAgIGxldCBmaWxlU2hhID0gbnVsbFxuICAgICAgICBjb25zdCBzYXZlZEJpYmxlVXNmbSA9IHJlc3VsdHM/LmJpYmxlVXNmbVxuICAgICAgICBjb25zdCBlZGl0ZWRCaWJsZVVzZm0gPSBzYXZlRnVsbEJpYmxlQ29udGVudD8ubmV3XG4gICAgICAgIGxldCB1cFRvRGF0ZSA9IHNhdmVkQmlibGVVc2ZtID09PSBlZGl0ZWRCaWJsZVVzZm0gLy8gY2hlY2sgaWYgbmV3IGJpYmxlIGNvbnRlbnQgZGlmZmVycyBmcm9tIGxhdGVzdCBvbiByZXBvXG5cbiAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgIGlmICh1cFRvRGF0ZSkgeyAvLyBpZiB0aGUgZGF0YSB3ZSBhcmUgdHJ5aW5nIHRvIHNhdmUgbWF0Y2hlcyB3aGF0IGlzIG5vdyBvbiB0aGUgc2VydmVyIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIGRhdGEgd2FzIGNvcnJlY3RseSB1cGxvYWRlZCwgc28gbm90aGluZyBtb3JlIHRvIGRvJylcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBuZXdDb250ZXh0TGluZXMgPSBjb250ZXh0TGluZXMgKyAxXG4gICAgICAgICAgICBpZiAoc2F2ZURpZmZQYXRjaCkge1xuICAgICAgICAgICAgICBhd2FpdCBkZWxheSgxMDApIC8vIGFsbG93IFVJIHRvIHVwZGF0ZSBiZWZvcmUgcnVubmluZyBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlIGZ1bmN0aW9uXG4gICAgICAgICAgICAgIC8vIHJlZ2VuZXJhdGUgdGhlIHBhdGNoIGFnYWluc3QgdGhlIGxhdGVzdCBjb250ZW50IGFuZCBhZGQgbW9yZSBsaW5lcyBvZiBjb250ZXh0XG4gICAgICAgICAgICAgIC8vIFRSSUNLWSAtIHdlIGhhdmUgbm90aWNlZCB0aGF0IERDUyB3aWxsIGZhaWwgdGhlIHBhdGNoIHNvbWV0aW1lcywgYnV0IGlmIHdlIGluY3JlYXNlIHRoZSBjb250ZXh0IGxpbmUgY291bnQgaXQgd2lsbCBzdWNjZWVkLCBzbyB3ZSBhcmUgaW5jcmVhc2luZyB0aGUgY29udGV4dCBsaW5lIGNvdW50XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIGNvbnRleHQgbGluZXMgYXJlIG5vdyAke25ld0NvbnRleHRMaW5lc31gKVxuICAgICAgICAgICAgICBjb25zdCBkaWZmUGF0Y2ggPSBnZXRQYXRjaChzYXZlRnVsbEJpYmxlQ29udGVudD8uZmlsZW5hbWUsIHNhdmVkQmlibGVVc2ZtLCBlZGl0ZWRCaWJsZVVzZm0sIGZhbHNlLCBuZXdDb250ZXh0TGluZXMpXG4gICAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IGRpZmZQYXRjaFxuICAgICAgICAgICAgICBmaWxlU2hhID0gcmVzdWx0cz8uc2hhXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSBhd2FpdCB1cGxvYWRGdW5jdGlvbih1c2VyRWRpdEJyYW5jaE5hbWUsIF9zYXZlQ29udGVudCwgZmlsZVNoYSkgLy8gcHVzaCBjaGFuZ2UgdG8gc2VydmVyXG4gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgbG9nQ2hhbmdlZCgnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkIG9uIHNlY29uZCBhdHRlbXB0LCBzZW50Jywgc2F2ZWRCaWJsZVVzZm0sIGVkaXRlZEJpYmxlVXNmbSwgX3NhdmVDb250ZW50LCBmaWxlU2hhKVxuICAgICAgICAgICAgICBlcnJvciA9ICdzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkIG9uIHNlY29uZCBhdHRlbXB0J1xuICAgICAgICAgICAgICBuZXdDb250ZXh0TGluZXMrKyAvLyBpZiBmYWlsZWQgaW5jcmVhc2UgdGhlIGNvdW50IGZvciBuZXh0IGF0dGVtcHRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc3VjY2Vzc2Z1bCBvbiBzZWNvbmQgd2l0aCBkaWZmJywgX3NhdmVDb250ZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5ld0NvbnRleHRMaW5lcyA+IDEwKSB7XG4gICAgICAgICAgICAgIG5ld0NvbnRleHRMaW5lcyA9IDRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFN0YXRlKHtjb250ZXh0TGluZXM6IG5ld0NvbnRleHRMaW5lc30pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZXJyb3IgJiYgc3VjY2VzcykgeyAvLyBpZiBubyBlcnJvciBtZXNzYWdlIGFuZCBzYXZlIHdhcyBhIHN1Y2Nlc3NcbiAgICAgICAgcmV0dXJuIF9zYXZlU3VjY2VzZnVsKCkgLy8gbm90aGluZyB0byBkb1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtICR7ZXJyb3IgfHwgJ3Vua25vd24gc2F2ZSBlcnJvcid9YClcbiAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgIHNldFN0YXRlKHtzdGFydFNhdmU6IGZhbHNlfSlcbiAgICAgIHNhdmVJblByb2dyZXNzLmN1cnJlbnQgPSBmYWxzZTsgLy8gUmVzZXQgdGhlIGZsYWcgb24gZmFpbHVyZVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0U2F2ZSkge1xuICAgICAgaWYgKCFlZGl0QnJhbmNoUmVhZHkpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGVkaXQgYnJhbmNoIG5vdCB5ZXQgY3JlYXRlZGApXG4gICAgICB9IGVsc2UgaWYgKCFzaGEpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIHNhdmUgc2hhIG5vdCB5ZXQgcmVhZHlgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGNhbGxpbmcgX3NhdmVFZGl0KClgKVxuICAgICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gWy4uLnByZXZDYXJkc1NhdmluZywgY2FyZFJlc291cmNlSWRdKVxuICAgICAgICBfc2F2ZUVkaXQoKVxuICAgICAgfVxuICAgIH1cblxuICB9LCBbc3RhcnRTYXZlLCBlZGl0QnJhbmNoUmVhZHksIHNoYV0pXG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdXBkYXRlZFZlcnNlT2JqZWN0cyB0byBVU0ZNIGFuZCBtZXJnZSBpbnRvIHRoZSBiaWJsZVVzZm1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbSAtIFVTRk0gb2YgYmlibGVcbiAgICogQHBhcmFtIHtTY3JpcHR1cmVSZWZlcmVuY2VUeXBlfSByZWYgLSByZWZlcmVuY2Ugb2YgdmVyc2UgdG8gbWVyZ2UgaW5cbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzIC0gbmV3IHZlcnNlIGluIHZlcnNlT2JqZWN0IGZvcm1hdFxuICAgKiBAcGFyYW0ge251bWJlcn0gY2FyZE51bVxuICAgKi9cbiAgZnVuY3Rpb24gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbTogc3RyaW5nLCByZWY6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUsIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsIGNhcmROdW06IG51bWJlcikge1xuICAgIGxldCBuZXdVc2ZtXG4gICAgY29uc3QgY2hhcHRlckNodW5rcyA9IGJpYmxlVXNmbT8uc3BsaXQoJ1xcXFxjICcpXG4gICAgY29uc3QgY2hhcHRlckluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy5jaGFwdGVyLCBjaGFwdGVyQ2h1bmtzKVxuXG4gICAgaWYgKGNoYXB0ZXJJbmRleCA+PSAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50Q2hhcHRlciA9IGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XVxuICAgICAgbGV0IHZlcnNlQ2h1bmtzID0gY3VycmVudENoYXB0ZXIuc3BsaXQoJ1xcXFx2ICcpXG4gICAgICBjb25zdCB2ZXJzZUluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy52ZXJzZSwgdmVyc2VDaHVua3MpXG4gICAgICBjb25zdCBmcm9udE1hdHRlciA9IHJlZj8udmVyc2UgPT09ICdmcm9udCdcblxuICAgICAgaWYgKGZyb250TWF0dGVyIHx8IHZlcnNlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0odXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gbmV3IFVTRk0gZm9yIGNhcmQgJHtjYXJkTnVtfSwgdmVyc2UgJHtyZWY/LnZlcnNlfTp9IC0gJHtuZXdWZXJzZVVzZm0uc3Vic3RyaW5nKDAsIDEwMCl9YClcbiAgICAgICAgaWYgKGZyb250TWF0dGVyKSB7IC8vIGZyb250IG1hdHRlciBnb2VzIGJlZm9yZSBmaXJzdCB2ZXJzZVxuICAgICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbMF1cbiAgICAgICAgICBjb25zdCBwcmVmaXhMZW4gPSBvbGRWZXJzZS5pbmRleE9mKCdcXG4nKSAvLyBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgZnJvbnQgbWF0dGVyIHRleHRcbiAgICAgICAgICB2ZXJzZUNodW5rc1swXSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCBwcmVmaXhMZW4gKyAxKSArIG5ld1ZlcnNlVXNmbVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbdmVyc2VJbmRleF1cbiAgICAgICAgICBjb25zdCB2ZXJzZU51bUxlbiA9IChyZWY/LnZlcnNlICsgJycpLmxlbmd0aCAvLyBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgdmVyc2UgdGV4dFxuICAgICAgICAgIHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdID0gb2xkVmVyc2Uuc3Vic3RyaW5nKDAsIHZlcnNlTnVtTGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdDaGFwdGVyID0gdmVyc2VDaHVua3Muam9pbignXFxcXHYgJylcbiAgICAgICAgY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdID0gbmV3Q2hhcHRlclxuICAgICAgICBuZXdVc2ZtID0gY2hhcHRlckNodW5rcy5qb2luKCdcXFxcYyAnKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3VXNmbVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZm9yIGVhY2ggdW5zYXZlZCBjaGFuZ2UsIGNhbGwgaW50byBzY3JpcHR1cmVQYW5lIHRvIGdldCBsYXRlc3QgY2hhbmdlcyBmb3IgdmVyc2UgdG8gc2F2ZVxuICAgIGFzeW5jIGZ1bmN0aW9uIGdldFJlYWR5Rm9yU2F2ZSgpIHtcbiAgICAgIGlmIChzYXZlQ2xpY2tlZCkge1xuICAgICAgICBsZXQgY3JlYXRlRWRpdEJyYW5jaCA9ICFfdXNpbmdVc2VyQnJhbmNoXG5cbiAgICAgICAgaWYgKCFjcmVhdGVFZGl0QnJhbmNoKSB7IC8vIGlmIGFscmVhZHkgdXNpbmcgdGhlIHVzZXIgYnJhbmNoXG4gICAgICAgICAgaWYgKHdvcmtpbmdSZXNvdXJjZUJyYW5jaCAhPT0gdXNlckVkaXRCcmFuY2hOYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIHN0YXRlIGNvbmZsaWN0IC0gc2hvdWxkIGJlIGluIHVzZXIgYnJhbmNoICR7dXNlckVkaXRCcmFuY2hOYW1lfSwgYnV0IGFjdHVhbGx5IHVzaW5nICR7d29ya2luZ1Jlc291cmNlQnJhbmNofWApXG4gICAgICAgICAgICBjcmVhdGVFZGl0QnJhbmNoID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gYWxyZWFkeSB1c2luZyBlZGl0IGJyYW5jaDogJHt3b3JraW5nUmVzb3VyY2VCcmFuY2h9YClcbiAgICAgICAgICAgIHNldFN0YXRlKHsgZWRpdEJyYW5jaFJlYWR5OiB0cnVlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNyZWF0ZUVkaXRCcmFuY2gpIHsgLy8gaWYgbm90IHlldCB1c2luZyB0aGUgdXNlciBicmFuY2gsIGNyZWF0ZSBpdFxuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjcmVhdGluZyBlZGl0IGJyYW5jaGApXG4gICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgZWRpdEJyYW5jaFJlYWR5OiBmYWxzZSxcbiAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgICAgICAgc2hhOiBudWxsLFxuICAgICAgICAgIH0pIC8vIHdlIHdpbGwgbmVlZCBhIG5ldyBzaGEgZm9yIGJvb2svYnJhbmNoXG5cbiAgICAgICAgICBjb25zdCBicmFuY2ggPSBhd2FpdCBzdGFydEVkaXRCcmFuY2goKVxuXG4gICAgICAgICAgaWYgKGJyYW5jaCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGVkaXQgYnJhbmNoIGNyZWF0ZWRgKVxuICAgICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBlZGl0QnJhbmNoUmVhZHk6IHRydWUsXG4gICAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IHRydWUsXG4gICAgICAgICAgICAgIHJlZjogYnJhbmNoLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBlcnJvciBjcmVhdGluZyBlZGl0IGJyYW5jaCcpXG4gICAgICAgICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG51bGwsIGZhbHNlLCBudWxsLCBgRXJyb3IgY3JlYXRpbmcgZWRpdCBicmFuY2ggJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWAsIHRydWUpXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGdldHRpbmcgdmVyc2UgY2hhbmdlc2ApXG4gICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgYmlibGVVc2ZtSW5pdGlhbCA9IGdldEN1cnJlbnRCb29rKHNjcmlwdHVyZUNvbmZpZywgYm9va0lkKSAvLyBnZXQgb3JpZ2luYWwgVVNGTVxuICAgICAgICAgIGxldCBiaWJsZVVzZm1OZXcgPSBiaWJsZVVzZm1Jbml0aWFsIC8vIG1ha2UgYSBjb3B5IHRvIGVkaXRcbiAgICAgICAgICBsZXQgbWVyZ2VGYWlsID0gZmFsc2VcblxuICAgICAgICAgIGlmIChiaWJsZVVzZm1Jbml0aWFsKSB7XG4gICAgICAgICAgICBsZXQgY2FyZE51bSA9IDBcblxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgYmlibGVVc2ZtTmV3KSB7IC8vIGp1c3QgcmVwbGFjZSB2ZXJzZVxuICAgICAgICAgICAgICAgICAgbmV3VXNmbSA9IG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm1OZXcsIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobmV3VXNmbSkge1xuICAgICAgICAgICAgICAgICAgYmlibGVVc2ZtTmV3ID0gbmV3VXNmbVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBtZXJnZUZhaWwgPSB0cnVlXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBzYXZlRGlmZlBhdGNoID0gZmFsc2UgLy8gaWYgdHJ1ZSB0aGVuIHdlIHdpbGwgc2VuZCB1cCBhIGRpZmZwYXRjaCBpbnN0ZWFkIG9mIHRoZSB3aG9sZSBib29rXG4gICAgICAgICAgbGV0IF9zYXZlRnVsbEJpYmxlQ29udGVudCA9IG51bGxcbiAgICAgICAgICBsZXQgX3NhdmVDb250ZW50ID0gYmlibGVVc2ZtTmV3XG5cbiAgICAgICAgICBpZiAobWVyZ2VGYWlsKSB7IC8vIGlmIHdlIGZhaWxlZCB0byBtZXJnZSwgZmFsbGJhY2sgdG8gYnJ1dGUgZm9yY2UgdmVyc2Ugb2JqZWN0cyB0byBVU0ZNXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gdmVyc2Ugbm90IGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gaW5zZXJ0aW5nIHZlcnNlIG9iamVjdGApXG4gICAgICAgICAgICBsZXQgbmV3Qm9va0pzb25cblxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICBuZXdWZXJzZVRleHQsXG4gICAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIW5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRWZXJzZU9iamVjdHNfID0gbnVsbFxuXG4gICAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdWZXJzZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSh1cGRhdGVkVmVyc2VPYmplY3RzLCBuZXdWZXJzZVRleHQpXG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV3Qm9va0pzb24gPSB0YXJnZXRWZXJzZU9iamVjdHNfICYmIHNjcmlwdHVyZUNvbmZpZz8udXBkYXRlVmVyc2UocmVmLmNoYXB0ZXIsIHJlZi52ZXJzZSwge3ZlcnNlT2JqZWN0czogdGFyZ2V0VmVyc2VPYmplY3RzX30pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IHVzZm1qcy50b1VTRk0obmV3Qm9va0pzb24sIHsgZm9yY2VkTmV3TGluZXM6IHRydWUgfSlcbiAgICAgICAgICB9IGVsc2UgeyAvLyBpZiBvbmx5IGNoYW5nZWQgYSBmZXcgdmVyc2VzLCB3ZSB3aWxsIGp1c3QgbWFrZSBhIGRpZmZwYXRjaCBpbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIHdob2xlIGJvb2tcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ubmFtZSAvLyBMaWtlIFwiNTctVElULnVzZm1cIlxuICAgICAgICAgICAgaWYgKGZpbGVuYW1lICYmIGJpYmxlVXNmbU5ldyAmJiBiaWJsZVVzZm1Jbml0aWFsKSB7IC8vIG1ha2Ugc3VyZSB3ZSBoYXZlIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIG1ha2UgYSBwYXRjaFxuICAgICAgICAgICAgICBpZiAoYmlibGVVc2ZtSW5pdGlhbCA9PT0gYmlibGVVc2ZtTmV3KSB7IC8vIGlmIG5vIGRhdGEgY2hhbmdlLCB0aGVuIHNraXAgc2F2ZSBiZWNhdXNlIERDUyBjcmFzaGVzIG9uIGFuIGVtcHR5IHBhdGNoXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHRoZXJlIGlzIG5vdGhpbmcgdG8gc2F2ZSwgc2tpcHBpbmdgKVxuICAgICAgICAgICAgICAgIHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZGlmZlBhdGNoID0gZ2V0UGF0Y2goZmlsZW5hbWUsIGJpYmxlVXNmbUluaXRpYWwsIGJpYmxlVXNmbU5ldywgZmFsc2UsIGNvbnRleHRMaW5lcylcbiAgICAgICAgICAgICAgc2F2ZURpZmZQYXRjaCA9IHRydWVcbiAgICAgICAgICAgICAgX3NhdmVDb250ZW50ID0gZGlmZlBhdGNoIC8vIHJlcGxhY2Ugd2hvbGUgYm9vayBjb250ZW50IHdpdGgganVzdCBwYXRjaCBkYXRhIChtdWNoIGZhc3RlciB1cGxvYWRzKVxuICAgICAgICAgICAgICBfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQgPSB7ICAvLyBrZWVwIHRyYWNrIG9mIHBhdGNoIGRhdGEgaW4gY2FzZSB3ZSBuZWVkIHRvIHJldHJ5IHNhdmVcbiAgICAgICAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICAgICAgICBpbml0aWFsOiBiaWJsZVVzZm1Jbml0aWFsLFxuICAgICAgICAgICAgICAgIG5ldzogYmlibGVVc2ZtTmV3LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGJpYmxlVXNmbU5ldykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIG5ldyBVU0ZNOiAke2JpYmxlVXNmbU5ldy5zdWJzdHJpbmcoMCwgMTAwKX0uLi5gKVxuICAgICAgICAgICAgc2V0Q2FyZHNTYXZpbmcocHJldkNhcmRzU2F2aW5nID0+IFsuLi5wcmV2Q2FyZHNTYXZpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgICAgc2F2ZUNvbnRlbnQ6IF9zYXZlQ29udGVudCxcbiAgICAgICAgICAgICAgc2F2ZUNsaWNrZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBzYXZlRGlmZlBhdGNoLFxuICAgICAgICAgICAgICBzYXZlRnVsbEJpYmxlQ29udGVudDogX3NhdmVGdWxsQmlibGVDb250ZW50LFxuICAgICAgICAgICAgICBzdGFydFNhdmU6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIEVycm9yIHJldHJpZXZpbmcgdGhlIGNvcnJlY3QgYm9vayBkYXRhOiBpbmNvcnJlY3QgYm9vayAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9YClcbiAgICAgICAgICAgIG9uUmVzb3VyY2VFcnJvciAmJiBvblJlc291cmNlRXJyb3IobnVsbCwgZmFsc2UsIG51bGwsIGBFcnJvciByZXRyaWV2aW5nIHRoZSBjb3JyZWN0IGJvb2sgZGF0YSAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9YCwgdHJ1ZSlcbiAgICAgICAgICAgIHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UmVhZHlGb3JTYXZlKClcbiAgfSwgW3NhdmVDbGlja2VkXSlcblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IHsgY2hhcHRlciB9ID0gX3JlZmVyZW5jZSB8fCB7fVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgX3ZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG4gICAgbGV0IG5ld1NlbGVjdGlvbnMgPSBuZXcgTWFwKClcbiAgICBsZXQgdXBkYXRlU2VsZWN0aW9ucyA9IGZhbHNlXG4gICAgY29uc3QgX21hcCA9IG5ld1NlbGVjdGlvbnNcbiAgICBjb25zdCBvcmlnaW5hbEJvb2tJZCA9IG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/LmJvb2tJZFxuICAgIGNvbnN0IGJvb2tWZXJzZU9iamVjdCA9IG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/LmNoYXB0ZXJzXG4gICAgbGV0IG5ld1NlbGVjdGVkUXVvdGUgPSBudWxsXG5cbiAgICAvLyBpZiB3ZSBoYXZlIGV2ZXJ5dGhpbmcgd2UgbmVlZCB0byBjYWxjdWxhdGUgc2VsZWN0aW9uc1xuICAgIGlmIChfdmVyc2VzRm9yUmVmPy5sZW5ndGggJiZcbiAgICAgIGJvb2tWZXJzZU9iamVjdCAmJlxuICAgICAgKGJvb2tJZCA9PT0gb3JpZ2luYWxCb29rSWQpICYmXG4gICAgICBib29rVmVyc2VPYmplY3RbY2hhcHRlcl0gJiYgLy8gd2UgbmVlZCB0byBoYXZlIGRhdGEgZm9yIGNoYXB0ZXJcbiAgICAgIHNlbGVjdGVkUXVvdGU/LnF1b3RlXG4gICAgKSB7XG4gICAgICAvLyBpZiBxdW90ZSBpcyBkaWZmZXJlbnQgdGhhbiBsYXN0XG4gICAgICBpZiAoIWlzRXF1YWwobGFzdFNlbGVjdGVkUXVvdGUsIHNlbGVjdGVkUXVvdGUpIHx8XG4gICAgICAgICFpc0VxdWFsKHZlcnNlc0ZvclJlZiwgX3ZlcnNlc0ZvclJlZikpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxWZXJzZXMgPSB7fVxuICAgICAgICBjb25zdCBzdWJzdGl0dXRlID0ge30gLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBzdWJzdGl0dXRpb25zXG4gICAgICAgIGxldCBzdGFydFZlcnNlID0gX3ZlcnNlc0ZvclJlZlswXS52ZXJzZVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc3RhcnRWZXJzZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBzdGFydFZlcnNlID0gcGFyc2VJbnQoc3RhcnRWZXJzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsYXN0VmVyc2UgPSBzdGFydFZlcnNlXG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBfdmVyc2VzRm9yUmVmLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHZlcnNlUmVmID0gX3ZlcnNlc0ZvclJlZltpXVxuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGNoYXB0ZXIsXG4gICAgICAgICAgICB2ZXJzZSxcbiAgICAgICAgICB9ID0gdmVyc2VSZWZcbiAgICAgICAgICAvLyBUUklDS1kgLSB3ZSByZW1hcCB2ZXJzZXMgaW4gcmVmZXJlbmNlIHJhbmdlIHRvIGEgbGluZWFyIHNlcmllcyBvZiB2ZXJzZXMgc28gdmVyc2Ugc3BhbnMgZG9uJ3QgY2hva2UgZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmXG4gICAgICAgICAgbGV0IF92ZXJzZSA9IHN0YXJ0VmVyc2UgKyBpXG4gICAgICAgICAgbGFzdFZlcnNlID0gX3ZlcnNlXG4gICAgICAgICAgc3Vic3RpdHV0ZVtgJHtjaGFwdGVyfToke192ZXJzZX1gXSA9IGAke2NoYXB0ZXJ9OiR7dmVyc2V9YFxuXG4gICAgICAgICAgaWYgKCFvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXSkge1xuICAgICAgICAgICAgb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl0gPSB7fVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCB2ZXJzZU9iamVjdHMgPSBbXVxuXG4gICAgICAgICAgaWYgKCh0eXBlb2YgdmVyc2UgPT09ICdzdHJpbmcnKSAmJiAodmVyc2UuaW5jbHVkZXMoJy0nKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZlcnNlcyA9IGdldFZlcnNlcyhib29rVmVyc2VPYmplY3QsIGAke2NoYXB0ZXJ9OiR7dmVyc2V9YClcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2ZXJzZUl0ZW0gb2YgdmVyc2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZvID0gdmVyc2VJdGVtLnZlcnNlRGF0YS52ZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgdmVyc2VPYmplY3RzID0gdmVyc2VPYmplY3RzLmNvbmNhdCh2bylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmVyc2VPYmplY3RzID0gYm9va1ZlcnNlT2JqZWN0W2NoYXB0ZXJdW3ZlcnNlXT8udmVyc2VPYmplY3RzXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZlcnNlT2JqZWN0cykge1xuICAgICAgICAgICAgdmVyc2VPYmplY3RzID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2ZXJzZU9iamVjdHMpXG4gICAgICAgICAgICBvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXVtfdmVyc2VdID0geyB2ZXJzZU9iamVjdHMgfVxuICAgICAgICAgICAgX21hcC5zZXQoYCR7Y2hhcHRlcn06JHt2ZXJzZX1gLCB2ZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3JlYXRlIG5ldyByZWZlcmVuY2UgcmFuZ2UgZm9yIG5ldyBsaW5lYXIgdmVyc2UgcmFuZ2VcbiAgICAgICAgY29uc3QgW2NoYXB0ZXJdID0gc2VsZWN0ZWRRdW90ZT8ucmVmZXJlbmNlPy5zcGxpdCgnOicpXG4gICAgICAgIGxldCBzdWJSZWYgPSBgJHtjaGFwdGVyfToke3N0YXJ0VmVyc2V9YFxuXG4gICAgICAgIGlmIChsYXN0VmVyc2UgIT0gc3RhcnRWZXJzZSkge1xuICAgICAgICAgIHN1YlJlZiArPSBgLSR7bGFzdFZlcnNlfWBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1b3RlTWF0Y2hlcyA9IGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZih7XG4gICAgICAgICAgYm9va09iamVjdDogb3JpZ2luYWxWZXJzZXMsXG4gICAgICAgICAgcmVmOiBzdWJSZWYsXG4gICAgICAgICAgcXVvdGU6IHNlbGVjdGVkUXVvdGU/LnF1b3RlLFxuICAgICAgICAgIG9jY3VycmVuY2U6IHNlbGVjdGVkUXVvdGU/Lm9jY3VycmVuY2UsXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3Qgc2VsZWN0aW9ucyA9IG5ldyBNYXAoKVxuXG4gICAgICAgIGlmIChxdW90ZU1hdGNoZXM/LnNpemUpIHtcbiAgICAgICAgICBxdW90ZU1hdGNoZXMuZm9yRWFjaCgod29yZHMsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgX2tleSA9IHN1YnN0aXR1dGVba2V5XVxuXG4gICAgICAgICAgICBzZWxlY3Rpb25zLnNldChfa2V5LCB3b3Jkcy5tYXAod29yZCA9PiAoXG4gICAgICAgICAgICAgIHsgLi4ud29yZCwgdGV4dDogY29yZS5ub3JtYWxpemVTdHJpbmcod29yZC50ZXh0KSB9XG4gICAgICAgICAgICApKSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIG5ld1NlbGVjdGlvbnMgPSBzZWxlY3Rpb25zXG4gICAgICAgIG5ld1NlbGVjdGVkUXVvdGUgPSBzZWxlY3RlZFF1b3RlXG4gICAgICAgIHVwZGF0ZVNlbGVjdGlvbnMgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3U3RhdGU6IGFueSA9IHt9XG5cbiAgICAvLyB1cGRhdGUgc3RhdGVzIHRoYXQgaGF2ZSBjaGFuZ2VkXG4gICAgaWYgKCFhcmVNYXBzVGhlU2FtZSh2ZXJzZU9iamVjdHNNYXAsIF9tYXApKSB7XG4gICAgICBuZXdTdGF0ZS52ZXJzZU9iamVjdHNNYXAgPSBfbWFwXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zUmVmcyA9IF9tYXAgPyBbLi4uX21hcC5rZXlzKCldLmpvaW4oJzsnKSA6ICcnIC8vIGNvbWJpbmUgYWxsIHRoZSB2ZXJzZSByZWZlcmVuY2VzIGludG8gYSBzaW5nbGUgdmVyc2UgcmVmZXJlbmNlIGZvciB0aGUgc2VsZWN0aW9uc1xuICAgIH1cblxuICAgIGNvbnN0IGJvb2tzTm90U2FtZSA9IHJlZmVyZW5jZT8uYm9va0lkICE9PSBjdXJyZW50UmVmZXJlbmNlPy5ib29rSWRcblxuICAgIGlmIChib29rc05vdFNhbWUgfHwgIWFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VzRm9yUmVmID0gX3ZlcnNlc0ZvclJlZlxuICAgICAgbmV3U3RhdGUubGFzdFNlbGVjdGVkUXVvdGUgPSBuZXdTZWxlY3RlZFF1b3RlXG4gICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgIH1cblxuICAgIGlmIChuZXdTZWxlY3RlZFF1b3RlKSB7XG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlU2VsZWN0aW9ucykge1xuICAgICAgaWYgKCFhcmVNYXBzVGhlU2FtZShzZWxlY3Rpb25zIHx8IChuZXcgTWFwKCkpLCBuZXdTZWxlY3Rpb25zKSkge1xuICAgICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhuZXdTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICB9XG4gIH0sIFtcbiAgICBvd25lcixcbiAgICByZXNvdXJjZUlkLFxuICAgIGJvb2tJZCxcbiAgICBsYW5ndWFnZUlkXyxcbiAgICBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZixcbiAgICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICAgIHNlbGVjdGVkUXVvdGUsXG4gIF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gY2xlYXIgc2V0dGluZ3Mgb24gdmVyc2UgY2hhbmdlXG4gICAgc2V0U3RhdGUoe1xuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiBudWxsLFxuICAgICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICAgIGhhdmVVbnNhdmVkQ2hhbmdlczogZmFsc2UsXG4gICAgfSlcbiAgfSwgW19yZWZlcmVuY2VdKVxuXG4gIGNvbnN0IHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyA9IChyZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUsIGFsaWduZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IHsgLi4ucHJldlN0YXRlLnZlcnNlc0FsaWdubWVudFN0YXR1cywgW2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXTogYWxpZ25lZCB9LFxuICAgIH0pKVxuICB9XG5cbiAgbGV0IF92ZXJzZXNGb3JSZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZlxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKF92ZXJzZXNGb3JSZWY/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgeyByZWZlcmVuY2UsIHJlc291cmNlTGluayB9ID0gc2NyaXB0dXJlQ29uZmlnIHx8IHt9XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZC5fdmVyc2VzRm9yUmVmIGNoYW5nZWRgLCB7IHJlZmVyZW5jZSwgcmVzb3VyY2VMaW5rIH0pXG4gICAgfVxuICB9LCBbX3ZlcnNlc0ZvclJlZl0pXG5cbiAgaWYgKCFfdmVyc2VzRm9yUmVmPy5sZW5ndGgpIHsgLy8gaWYgZW1wdHkgb2YgcmVmZXJlbmNlcywgY3JlYXRlIHNpbmdsZSBlbXB0eSByZWZlcmVuY2VcbiAgICBfdmVyc2VzRm9yUmVmID0gW3sgLi4ucmVmZXJlbmNlIH1dXG4gIH1cblxuICBjb25zdCByZW5kZXJlZFNjcmlwdHVyZVBhbmVzID0gX3ZlcnNlc0ZvclJlZj8ubWFwKChfY3VycmVudFZlcnNlRGF0YSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsVmVyc2VPYmplY3RzID0gX2N1cnJlbnRWZXJzZURhdGE/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzIHx8IFtdXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IF9jdXJyZW50VmVyc2VEYXRhIHx8IHt9XG4gICAgY29uc3QgYm9va0lkXyA9IGN1cnJlbnRSZWZlcmVuY2U/LmJvb2tJZCB8fCBib29rSWRcbiAgICBjb25zdCBfcmVmZXJlbmNlID0ge1xuICAgICAgLi4uX3ZlcnNlc0ZvclJlZixcbiAgICAgIGNoYXB0ZXIsXG4gICAgICBib29rSWQ6IGJvb2tJZF8sXG4gICAgICB2ZXJzZSxcbiAgICB9XG4gICAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgICAgY3VycmVudEluZGV4OiBpbmRleCxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICByZWZlcmVuY2U6IF9yZWZlcmVuY2UsXG4gICAgICBpc05ld1Rlc3RhbWVudCxcbiAgICB9XG5cbiAgICBsZXQgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gZmFsc2VcblxuICAgIGlmICh2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50KSB7XG4gICAgICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LmNoYXB0ZXIgPT0gY2hhcHRlciAmJiB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LnZlcnNlID09IHZlcnNlXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JpcHR1cmVQYW5lXG4gICAgICAgIHsuLi5zY3JpcHR1cmVDb25maWd9XG4gICAgICAgIGNvbnRlbnRTdHlsZT17Y29udGVudFN0eWxlfVxuICAgICAgICBjdXJyZW50SW5kZXg9e2luZGV4fVxuICAgICAgICBkZXRlcm1pbmluZ0JyYW5jaD17IXJlYWR5Rm9yRmV0Y2h9XG4gICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcl99XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICBpc05UPXtpc05UX31cbiAgICAgICAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50PXtpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnR9XG4gICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgIG9uQWxpZ25tZW50RmluaXNoPXsoKSA9PiBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IG51bGwgfSl9XG4gICAgICAgIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM9e29yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHN9XG4gICAgICAgIHJlZlN0eWxlPXtyZWZTdHlsZX1cbiAgICAgICAgcmVmZXJlbmNlPXtfcmVmZXJlbmNlfVxuICAgICAgICBzYXZpbmc9e3N0YXJ0U2F2ZX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnPXtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZ31cbiAgICAgICAgc2V0RWRpdFZlcnNlPXtzZXRFZGl0VmVyc2V9XG4gICAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzPXtzZXRXb3JkQWxpZ25lclN0YXR1c31cbiAgICAgICAgc2VydmVyPXtzZXJ2ZXJ9XG4gICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM9e3VwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1c31cbiAgICAgIC8+XG4gICAgKVxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID4gMSkgeyAvLyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgdmVyc2VzIHNob3duIGluIGNhcmQsIG5lZWQgdG8gcHJvbXB0IHVzZXIgZm9yIHdoaWNoIHZlcnNlIHRvIGFsaWduXG4gICAgICBzZXRTdGF0ZSh7IHNob3dBbGlnbm1lbnRQb3B1cDogdHJ1ZSB9KVxuICAgIH0gZWxzZSBpZiAodmVyc2VzRm9yUmVmPy5sZW5ndGggPT09IDEpIHsgLy8gaWYgb25seSBvbmUgdmVyc2UgaXMgc2hvd24gb24gY2FyZCwgdGhlbiBlZGl0IHRoYXQgdmVyc2VcbiAgICAgIHNldFN0YXRlKHsgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogdmVyc2VzRm9yUmVmWzBdIH0pXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb25SZW5kZXJUb29sYmFyID0gKHsgaXRlbXMgfSkgPT4ge1xuICAgIGNvbnN0IG5ld0l0ZW1zID0gWy4uLml0ZW1zXVxuXG4gICAgbGV0IGFsbFZlcnNlc0FsaWduZWQgPSBmYWxzZVxuXG4gICAgLy8gQ2hlY2sgaWYgYWxsIHZhbHVlcyBpbiB2ZXJzZXNBbGlnbm1lbnRTdGF0dXMgYXJlIHRydWVcbiAgICBpZiAodmVyc2VzQWxpZ25tZW50U3RhdHVzKSB7XG4gICAgICBhbGxWZXJzZXNBbGlnbmVkID0gT2JqZWN0LnZhbHVlcyh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpLmV2ZXJ5KGFsaWduU3RhdHVzID0+IGFsaWduU3RhdHVzID09PSB0cnVlKVxuICAgIH1cblxuICAgIGxldCBhbGlnbkljb24gPSBudWxsXG4gICAgbGV0IGFsaWduQnV0dG9uVGV4dCA9ICcnXG5cbiAgICBpZiAoYWxsVmVyc2VzQWxpZ25lZCkge1xuICAgICAgYWxpZ25JY29uID0gPFJ4TGluazIgaWQ9e2B2YWxpZF9pY29uXyR7cmVzb3VyY2VJZH1gfSBjb2xvcj0nI0JCQicgLz5cbiAgICAgIGFsaWduQnV0dG9uVGV4dCA9ICdBbGlnbm1lbnQgaXMgVmFsaWQnXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gZGlzYWJsZUNoYW5nZUJ1dHRvbnMgPyAnI0JCQicgOiAnIzAwMCcgLy8gZ3JheSBvdXQgYnV0dG9uIGlmIGRpc2FibGVkXG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rQnJlYWsyIGlkPXtgaW52YWxpZF9hbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9e2NvbG9yfSAvPlxuICAgICAgYWxpZ25CdXR0b25UZXh0ID0gJ0FsaWdubWVudCBpcyBJbnZhbGlkJ1xuICAgIH1cblxuICAgIGlmIChzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiByZXNvdXJjZUlkICE9PSAnT1JJR0lOQUxfU09VUkNFJykge1xuICAgICAgbmV3SXRlbXMucHVzaChcbiAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICBpZD17YGFsaWdubWVudF9pY29uXyR7cmVzb3VyY2VJZH1gfVxuICAgICAgICAgIGtleT0nY2hlY2tpbmctYnV0dG9uJ1xuICAgICAgICAgIG9uQ2xpY2s9e2Rpc2FibGVDaGFuZ2VCdXR0b25zID8gbnVsbCA6IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgdGl0bGU9e2FsaWduQnV0dG9uVGV4dH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthbGlnbkJ1dHRvblRleHR9XG4gICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHthbGlnbkljb259XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBPbmx5IHNob3cgdGhlIHVwZGF0ZSBmcm9tIG1haW4gYnV0dG9uIGlmIHNjcmlwdHVyZSBpcyBub3Qgb3JpZ2luYWwgdGV4dC5cbiAgICAhdXNpbmdPcmlnaW5hbEJpYmxlICYmIG5ld0l0ZW1zLnB1c2goXG4gICAgICA8PlxuICAgICAgICA8VXBkYXRlQnJhbmNoQnV0dG9uIHsuLi51cGRhdGVCdXR0b25Qcm9wc30gaXNMb2FkaW5nPXtpc1VwZGF0ZUxvYWRpbmcgfHwgc3RhcnRTYXZlfS8+XG4gICAgICAgIDxFcnJvckRpYWxvZyB0aXRsZT17ZGlhbG9nVGl0bGV9IGNvbnRlbnQ9e2RpYWxvZ01lc3NhZ2V9IG9wZW49e2lzRXJyb3JEaWFsb2dPcGVufSBvbkNsb3NlPXtvbkNsb3NlRXJyb3JEaWFsb2d9IGlzTG9hZGluZz17IGlzVXBkYXRlTG9hZGluZyB8fCBzdGFydFNhdmUgfSBsaW5rPXtkaWFsb2dMaW5rfSBsaW5rVG9vbHRpcD17ZGlhbG9nTGlua1Rvb2x0aXB9IC8+XG4gICAgICA8Lz5cbiAgICApXG5cbiAgICByZXR1cm4gbmV3SXRlbXNcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGlvbkJvb2tPYmplY3RzID0gb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz8uY2hhcHRlcnNcblxuICByZXR1cm4gKFxuICAgIDxTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyXG4gICAgICBib29rT2JqZWN0PXtzZWxlY3Rpb25Cb29rT2JqZWN0cyB8fCB7fX1cbiAgICAgIG9jY3VycmVuY2U9e2ZpeE9jY3VycmVuY2Uoc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSl9XG4gICAgICBvblNlbGVjdGlvbnM9e25ld1NlbGVjdGlvbnMgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnb25TZWxlY3Rpb25zJywgbmV3U2VsZWN0aW9ucylcbiAgICAgIH19XG4gICAgICBxdW90ZT17c2VsZWN0ZWRRdW90ZT8ucXVvdGUgfHwgJyd9XG4gICAgICByZWZTdHJpbmc9e3NlbGVjdGlvbnNSZWZzfVxuICAgICAgc2VsZWN0aW9ucz17c2VsZWN0aW9uc31cbiAgICA+XG4gICAgICA8Q2FyZFxuICAgICAgICBpZD17YHNjcmlwdHVyZV9jYXJkXyR7Y2FyZE51bX1gfVxuICAgICAgICB0aXRsZT17c2NyaXB0dXJlTGFiZWx9XG4gICAgICAgIHNldHRpbmdzVGl0bGU9e3NjcmlwdHVyZVRpdGxlICsgJyBTZXR0aW5ncyd9XG4gICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgaGVhZGVycz17aGVhZGVyc31cbiAgICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBpdGVtSW5kZXg9e2l0ZW1JbmRleH1cbiAgICAgICAgc2V0RmlsdGVycz17c2V0RmlsdGVyc31cbiAgICAgICAgc2V0Rm9udFNpemU9e3NldEZvbnRTaXplfVxuICAgICAgICBzZXRJdGVtSW5kZXg9e3NldEl0ZW1JbmRleH1cbiAgICAgICAgbWFya2Rvd25WaWV3PXttYXJrZG93blZpZXd9XG4gICAgICAgIHNldE1hcmtkb3duVmlldz17c2V0TWFya2Rvd25WaWV3fVxuICAgICAgICBnZXRDdXN0b21Db21wb25lbnQ9e2dldFNjcmlwdHVyZVNlbGVjdG9yfVxuICAgICAgICBoaWRlTWFya2Rvd25Ub2dnbGVcbiAgICAgICAgb25NZW51Q2xvc2U9e29uTWVudUNsb3NlfVxuICAgICAgICBvbk1pbmltaXplPXtvbk1pbmltaXplID8gKCkgPT4gb25NaW5pbWl6ZShpZCwgc2NyaXB0dXJlVGl0bGUpIDogbnVsbH1cbiAgICAgICAgZWRpdGFibGU9e2VuYWJsZUVkaXQgfHwgZW5hYmxlQWxpZ25tZW50fVxuICAgICAgICBzYXZlZD17ZGlzYWJsZUNoYW5nZUJ1dHRvbnMgfHwgc3RhcnRTYXZlIHx8ICFoYXZlVW5zYXZlZENoYW5nZXN9IC8vIGdyYXkgb3V0IHNhdmUgYnV0dG9uIGlmIGRpc2FibGVkLCBpZiBzYXZpbmcsIG9yIGlmIG5vIHVuc2F2ZWQgY2hhbmdlc1xuICAgICAgICBvblNhdmVFZGl0PXsoKSA9PiBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiB0cnVlIH0pfVxuICAgICAgICBvblJlbmRlclRvb2xiYXI9e29uUmVuZGVyVG9vbGJhcn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8VmVyc2VTZWxlY3RvclBvcHVwXG4gICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgIG9wZW49e3Nob3dBbGlnbm1lbnRQb3B1cH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlIH0pfVxuICAgICAgICB2ZXJzZXNGb3JSZWY9e3ZlcnNlc0ZvclJlZn1cbiAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgIG9uVmVyc2VTZWxlY3Q9eyh2ZXJzZSkgPT4gc2V0U3RhdGUoe1xuICAgICAgICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlLFxuICAgICAgICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UsXG4gICAgICAgIH0pfVxuICAgICAgLz5cbiAgICA8L1NlbGVjdGlvbnNDb250ZXh0UHJvdmlkZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlQ2FyZC5wcm9wVHlwZXMgPSB7XG4gIC8qKiByZXBvIGJyYW5jaCBvciB0YWcgc3VjaCBhcyBtYXN0ZXIgKi9cbiAgYXBwUmVmOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaW5kZXggZm9yIGN1cnJlbnQgYm9vayAoZS5nLiAnMDEnIGZvciAnZ2VuJykqL1xuICBib29rSW5kZXg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGlmIHRydWUgdGhlbiB3b3JkIGRhdGEgaG92ZXIgaXMgc2hvd24gKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIGdldCBsYW5ndWFnZSBkZXRhaWxzICovXG4gIGdldExhbmd1YWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIGh0dHAgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIGZldGNoaW5nIHJlc291cmNlcywgZGVmYXVsdCBpcyAwICh2ZXJ5IGxvbmcgd2FpdCkgKi9cbiAgaHR0cENvbmZpZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGh0bWwgaWRlbnRpZmllciB0byB1c2UgZm9yIGNhcmQgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBtZXRob2QgdG8gZGV0ZXJtaW5lIGlmIE5UIG9yIE9UICovXG4gIGlzTlQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiB1c2VyLW5hbWUgKi9cbiAgbG9nZ2VkSW5Vc2VyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIG9wdGlvbmFsIGNhbGxiYWNrIGlmIGVycm9yIGxvYWRpbmcgcmVzb3VyY2UsIHBhcmFtZXRlciByZXR1cm5lZCBhcmU6XG4gICAqICAgICh7c3RyaW5nfSBlcnJvck1lc3NhZ2UsIHtib29sZWFufSBpc0FjY2Vzc0Vycm9yLCB7b2JqZWN0fSByZXNvdXJjZVN0YXR1cylcbiAgICogICAgICAtIGlzQWNjZXNzRXJyb3IgLSBpcyB0cnVlIGlmIHRoaXMgd2FzIGFuIGVycm9yIHRyeWluZyB0byBhY2Nlc3MgZmlsZVxuICAgKiAgICAgIC0gcmVzb3VyY2VTdGF0dXMgLSBpcyBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IHByb2JsZW1zIGZldGNoaW5nIHJlc291cmNlICovXG4gIG9uUmVzb3VyY2VFcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB0aGUgb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2sgKi9cbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgcmVmZXJlbmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiBib29rIElEIHRvIHVzZSwgb2xkZXIgbGlicmFyaWVzIHVzZWQgcHJvamVjdElkICovXG4gICAgYm9va0lkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIG9sZGVyIGxpYnJhcmllcyB1c2VkIHByb2plY3RJZCBpbnN0ZWFkIG9mIGJvb2tJZCAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogY3VycmVudCBjaGFwdGVyIG51bWJlciAqL1xuICAgIGNoYXB0ZXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IHZlcnNlIG51bWJlciAqL1xuICAgIHZlcnNlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiByZXNvdXJjZSBvYmplY3QgKi9cbiAgcmVzb3VyY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHJlc291cmNlIGxhbmd1YWdlIHRvIHVzZSAqL1xuICAgIGxhbmd1YWdlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXNvdXJjZUlkIHRvIHVzZSAoZS5nLiB1Z250KSAqL1xuICAgIHJlc291cmNlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VzIHN1Y2ggYXMgdW5mb2xkaW5nV29yZCAqL1xuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKlRoaXMgaXMgY3VycmVudGx5IHNlbGVjdGVkIHF1b3RlICovXG4gIHNlbGVjdGVkUXVvdGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBzZXJ2ZXIgKGUuZy4gJ2h0dHBzOi8vZ2l0LmRvb3I0My5vcmcnKSAqL1xuICBzZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSBsb2FkaW5nIHN0YXRlICovXG4gIHNldEFyZVJlc291cmNlc0xvYWRpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHNhdmluZyBzdGF0ZSovXG4gIHNldEFyZVJlc291cmNlc1NhdmluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byByZXBvcnQgY2FyZCBtZXJnZSBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNMb2FkaW5nTWVyZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gcmVwb3J0IGNhcmQgdXBkYXRlIHN0YXR1cyAqL1xuICBzZXRDYXJkc0xvYWRpbmdVcGRhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gcmVwb3J0IGNhcmQgc2F2aW5nIHN0YXR1cyAqL1xuICBzZXRDYXJkc1NhdmluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBmdW5jdGlvbiB0byBzZXQgc3RhdGUgaW4gYXBwIHRoYXQgdGhlcmUgYXJlIHVuc2F2ZWQgY2hhbmdlcyAqL1xuICBzZXRTYXZlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHdvcmQgYWxpZ25lciBzdGF0ZSAqL1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB0aXRsZSBmb3Igc2NyaXB0dXJlIGNhcmQgKi9cbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSB0aGUgY2FyZCdzIG1lcmdlIHN0YXRlIGluIGFwcCAqL1xuICB1cGRhdGVNZXJnZVN0YXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZSBtZXRob2QgZm9yIHVzaW5nIGxvY2FsIHN0b3JhZ2Ugc3BlY2lmaWMgZm9yIHVzZXIgKi9cbiAgdXNlVXNlckxvY2FsU3RvcmFnZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cbiJdLCJtYXBwaW5ncyI6IjsrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "single-scripture-rcl",
|
|
3
3
|
"description": "A React Component Library for Rendering a Single Scripture Resource.",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.28-beta",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|