tc-checking-tool-rcl 0.9.104 → 0.9.105
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.
|
@@ -736,18 +736,21 @@ function compareByFirstUniqueWord(a, b) {
|
|
|
736
736
|
* @return {string|null} returns null if error getting text
|
|
737
737
|
*/
|
|
738
738
|
function getAlignedGLText(alignedGlBible, contextId) {
|
|
739
|
+
console.log(contextId);
|
|
739
740
|
if (contextId) {
|
|
740
741
|
var _verseObjects;
|
|
741
742
|
if (!alignedGlBible || !Object.keys(alignedGlBible).length) {
|
|
742
743
|
return contextId.quote;
|
|
743
744
|
}
|
|
744
745
|
var verseObjects = _wordAlignerLib.verseHelpers.getBestVerseFromBook(alignedGlBible, contextId.reference.chapter, contextId.reference.verse);
|
|
746
|
+
console.log(verseObjects);
|
|
745
747
|
if ((_verseObjects = verseObjects) !== null && _verseObjects !== void 0 && _verseObjects.verseObjects) {
|
|
746
748
|
var _verseObjects2;
|
|
747
749
|
verseObjects = (_verseObjects2 = verseObjects) === null || _verseObjects2 === void 0 ? void 0 : _verseObjects2.verseObjects;
|
|
748
750
|
}
|
|
749
751
|
if (contextId) {
|
|
750
752
|
var alignedText = (0, _checkAreaHelpers.getAlignedText)(verseObjects, contextId.quote, contextId.occurrence);
|
|
753
|
+
console.log(alignedText);
|
|
751
754
|
if (alignedText) {
|
|
752
755
|
return alignedText;
|
|
753
756
|
}
|
|
@@ -839,4 +842,4 @@ function getPhraseFromTw(glTwData, articleId) {
|
|
|
839
842
|
}
|
|
840
843
|
return finalString;
|
|
841
844
|
}
|
|
842
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbCIsInJlcXVpcmUiLCJyZXNvdXJjZXNIZWxwZXJzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdG5BcnRpY2xlSGVscGVycyIsInRzdnBhcnNlciIsIl9iaWJsZVJlZmVyZW5jZVJhbmdlIiwiX3dvcmRBbGlnbmVyTGliIiwiX3dvcmRPY2N1cnJlbmNlSGVscGVycyIsIl9lbGxpcHNpc0hlbHBlcnMiLCJfdmVyc2VIZWxwZXJzIiwiX2NvbnN0YW50cyIsIl90c3ZUb0dyb3VwRGF0YSIsIl9jaGVja0FyZWFIZWxwZXJzIiwiX2RlZXBFcXVhbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwiX19lc01vZHVsZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfcmVnZW5lcmF0b3IiLCJTeW1ib2wiLCJpdGVyYXRvciIsInRvU3RyaW5nVGFnIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwicCIsInkiLCJHIiwidiIsImEiLCJkIiwiYmluZCIsImxlbmd0aCIsImwiLCJUeXBlRXJyb3IiLCJkb25lIiwidmFsdWUiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsImRpc3BsYXlOYW1lIiwidyIsIm0iLCJfcmVnZW5lcmF0b3JEZWZpbmUiLCJfaW52b2tlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX25leHQiLCJfdGhyb3ciLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9uIiwiRiIsInMiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJjYXRlZ29yaXplR3JvdXBEYXRhIiwiZ3JvdXBEYXRhIiwiY2F0ZWdvcml6ZWRHcm91cERhdGEiLCJrdCIsIm5hbWVzIiwib3RoZXIiLCJjYXRlZ29yeV8iLCJjYXRlZ29yeSIsIml0ZW1zIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJpdGVtIiwiZ3JvdXBJZCIsImNvbnRleHRJZCIsImVyciIsImdlbmVyYXRlR3JvdXBEYXRhSXRlbSIsImV4cG9ydHMiLCJ0c3ZJdGVtIiwidG9vbE5hbWUiLCJ2ZXJzZVN0cmluZyIsIl90c3ZJdGVtJE9yaWdRdW90ZSIsIk9yaWdRdW90ZSIsInJlcGxhY2UiLCJ3b3JkT2NjdXJyZW5jZXNGb3JRdW90ZSIsImdldFdvcmRPY2N1cnJlbmNlc0ZvclF1b3RlIiwicXVvdGUiLCJoYXNFbGxpcHNpcyIsInF1b3RlU3RyaW5nIiwidHJpbSIsIkVMTElQU0lTIiwiX2NvbnZlcnRSZWZlcmVuY2UiLCJjb252ZXJ0UmVmZXJlbmNlIiwiY2hhcHRlciIsInZlcnNlIiwiY29tbWVudHMiLCJyZW1pbmRlcnMiLCJzZWxlY3Rpb25zIiwidmVyc2VFZGl0cyIsIm5vdGhpbmdUb1NlbGVjdCIsImNoZWNrSWQiLCJJRCIsIm9jY3VycmVuY2VOb3RlIiwiT2NjdXJyZW5jZU5vdGUiLCJyZWZlcmVuY2UiLCJib29rSWQiLCJCb29rIiwidG9Mb3dlckNhc2UiLCJ0b29sIiwiU3VwcG9ydFJlZmVyZW5jZSIsImdsUXVvdGUiLCJHTFF1b3RlIiwib2NjdXJyZW5jZSIsInBhcnNlSW50IiwiT2NjdXJyZW5jZSIsInRzdk9iamVjdHNUb0dyb3VwRGF0YSIsInRzdkl0ZW1zIiwib3JpZ0xhbmdCaWJsZSIsInJlc291cmNlc1BhdGgiLCJsYW5nSWQiLCJwYXJhbXMiLCJ0d0xpbmtNYXRjaCIsInR3TGlua1JFIiwiUmVnRXhwIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsIlJlZmVyZW5jZSIsIk9yaWdXb3JkcyIsIlRXTGluayIsInR3TGluayIsIm1hdGNoIiwiY29uc29sZSIsIndhcm4iLCJjb25jYXQiLCJDaGFwdGVyIiwiVmVyc2UiLCJDYXRhZ29yeSIsImdldFZlcnNlU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImtleSIsImdyb3VwRGF0YUl0ZW0iLCJjYXRlZ29yaXplZCIsImVycm9yIiwicGFyc2VSZWZlcmVuY2UiLCJyZWYiLCJjbGVhbmVkUmVmIiwiY2xlYW51cFJlZmVyZW5jZSIsInJlZl8iLCJ2ZXJzZVN0ciIsImlzU2FtZVZlcnNlQnlDb250ZXh0IiwiY29udGV4dElkMSIsImNvbnRleHRJZDIiLCJpc1NhbWVWZXJzZUJ5UmVmIiwicmVmZXJlbmNlMSIsInJlZmVyZW5jZTIiLCJmaW5kQ2hlY2siLCJncm91cHNEYXRhIiwiZGVmYXVsdFRvRmlyc3QiLCJ1bmRlZmluZWQiLCJjaGVjayIsImNoZWNrZWRCb29rIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJjYXRhZ29yeUl0ZW1zIiwiX2NhdGFnb3J5SXRlbXMkIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIml0ZW1Db250ZXh0SWQiLCJtYXRjaEZvdW5kIiwiaXNFcXVhbCIsImZpbmRGaXJzdENoZWNrIiwiZmluZE5leHRDaGVjayIsImdyb3Vwc0tleXMiLCJpZHgiLCJfY2F0YWdvcnlJdGVtcyQyIiwibmV4dEdyb3VwSWQiLCJuZXh0R3JvdXBJdGVtcyIsImZpbmRQcmV2aW91c0NoZWNrIiwiX2NhdGFnb3J5SXRlbXMkMyIsImdyb3VwS2V5cyIsImZpcnN0R3JvdXAiLCJ0d2xUc3ZUb0dyb3VwRGF0YSIsIl94IiwiX3gyIiwiX3gzIiwiX3R3bFRzdlRvR3JvdXBEYXRhIiwiX2NhbGxlZSIsInRzdkRhdGEiLCJwcm9qZWN0IiwiX3lpZWxkJHRzdkRhdGFUb09iamVjIiwidHN2SXRlbXNfIiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsInRzdkl0ZW1fIiwiX3QiLCJfY29udGV4dCIsImlkZW50aWZpZXIiLCJ0c3ZEYXRhVG9PYmplY3RzIiwibGFuZ3VhZ2VJZCIsImNvbnZlcnRFbGxpcHNpc1RvQW1wZXJzYW5kIiwicGFyc2VUd1RvSW5kZXgiLCJ0d0RhdGEiLCJpbmRleCIsIl9pMiIsIl9PYmplY3Qka2V5czIiLCJjYXRhZ29yeUlkIiwiY2F0YWdvcnkiLCJfeDQiLCJfdHN2RGF0YVRvT2JqZWN0cyIsIl9jYWxsZWUyIiwicGFyc2VFcnJvck1zZyIsImV4cGVjdGVkQ29sdW1ucyIsInRhYmxlT2JqZWN0IiwibXNnIiwicm93bnVtIiwiY29sc2ZvdW5kIiwiX2NvbnRleHQyIiwidHN2U3RyaW5nVG9UYWJsZSIsImVycm9ycyIsImhlYWRlciIsImRhdGEiLCJqb2luIiwibWFwIiwibGluZSIsInRzdlBhdGgiLCJnZW5lcmF0ZUdyb3Vwc0luZGV4IiwiZmlsZXNQYXRoIiwidHdPdXRwdXRQYXRoIiwiZm9sZGVyTmFtZSIsImdyb3Vwc0luZGV4IiwiZ3JvdXBJZHMiLCJmcyIsInJlYWRkaXJTeW5jIiwiZmlsZW5hbWUiLCJzcGxpdCIsInBvcCIsImZpbGVOYW1lIiwiZ3JvdXBPYmplY3QiLCJmaWxlUGF0aCIsInBhdGgiLCJhcnRpY2xlRmlsZSIsInJlYWRGaWxlU3luYyIsImdyb3VwTmFtZSIsImlkIiwic29ydCIsImNvbXBhcmVCeUZpcnN0VW5pcXVlV29yZCIsImdyb3Vwc0luZGV4T3V0cHV0UGF0aCIsIm91dHB1dEpzb25TeW5jIiwic3BhY2VzIiwiYiIsImFXb3JkcyIsInRvVXBwZXJDYXNlIiwiYldvcmRzIiwiYVdvcmQiLCJzaGlmdCIsImJXb3JkIiwiZ2V0QWxpZ25lZEdMVGV4dCIsImFsaWduZWRHbEJpYmxlIiwiX3ZlcnNlT2JqZWN0cyIsInZlcnNlT2JqZWN0cyIsInZlcnNlSGVscGVycyIsImdldEJlc3RWZXJzZUZyb21Cb29rIiwiX3ZlcnNlT2JqZWN0czIiLCJhbGlnbmVkVGV4dCIsImdldEFsaWduZWRUZXh0IiwiZ2V0VGl0bGVGcm9tSW5kZXgiLCJncm91cEluZGV4IiwiYXJ0aWNsZUlkIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsImdldFBocmFzZUZyb21UdyIsImdsVHdEYXRhIiwiY3VycmVudEFydGljbGUiLCJfaTMiLCJfT2JqZWN0JGtleXMzIiwiX2dyb3VwIiwiX2dyb3VwMyIsImdyb3VwIiwiYXJ0aWNsZXMiLCJfZ3JvdXAyIiwiYXJ0aWNsZSIsInNwbGl0TGluZSIsImZpbmFsQXJyYXkiLCJpbmRleE9mIiwibWF4TGVuZ3RoIiwiZmluYWxTdHJpbmciLCJjaG9zZW5TdHJpbmciLCJzcGxpdFN0cmluZyIsIl9pdGVyYXRvcjUiLCJfc3RlcDUiLCJ3b3JkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvdHJhbnNsYXRpb25IZWxwcy90d0FydGljbGVIZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGN1cmx5ICovXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ3V0aWwnO1xuLy8gaW1wb3J0IHtcbi8vICAgZm9ybWF0QW5kU2F2ZUdyb3VwRGF0YSxcbi8vICAgZ2VuZXJhdGVHcm91cERhdGFJdGVtLFxuLy8gICBNYW5hZ2VSZXNvdXJjZSxcbi8vICAgcGFyc2VSZWZlcmVuY2UsXG4vLyAgIHRzdlRvT2JqZWN0cyxcbi8vIH0gZnJvbSAndHN2LWdyb3VwZGF0YS1wYXJzZXInO1xuLy8gaGVscGVyc1xuaW1wb3J0ICogYXMgcmVzb3VyY2VzSGVscGVycyBmcm9tICcuLi9yZXNvdXJjZXNIZWxwZXJzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtaW1wb3J0c1xuLy8gaW1wb3J0IHtnZXRSZXNvdXJjZU1hbmlmZXN0fSBmcm9tICcuLi9yZXNvdXJjZXNIZWxwZXJzJztcbi8vIGNvbnN0YW50c1xuLy8gaW1wb3J0ICogYXMgZXJyb3JzIGZyb20gJy4uLy4uL3Jlc291cmNlcy9lcnJvcnMnO1xuLy8gaW1wb3J0IHtnZXRPd25lckZvck9yaWdpbmFsTGFuZ3VhZ2V9IGZyb20gJy4uL2FwaUhlbHBlcnMnO1xuLy8gaW1wb3J0IHttYWtlU3VyZVJlc291cmNlVW56aXBwZWR9IGZyb20gJy4uL3VuemlwRmlsZUhlbHBlcnMnO1xuLy8gaW1wb3J0IHsgQklCTEVfQk9PS1MsIE5UX09SSUdfTEFORywgTlRfT1JJR19MQU5HX0JJQkxFLCBPVF9PUklHX0xBTkcsIE9UX09SSUdfTEFOR19CSUJMRSB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9iaWJsZSc7XG5pbXBvcnQge1xuICBjb252ZXJ0RWxsaXBzaXNUb0FtcGVyc2FuZCxcbn0gZnJvbSAnLi90bkFydGljbGVIZWxwZXJzJztcbmltcG9ydCAqIGFzIHRzdnBhcnNlciBmcm9tICd1dy10c3YtcGFyc2VyJztcbmltcG9ydCB7IGNsZWFudXBSZWZlcmVuY2UgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyB2ZXJzZUhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItbGliJ1xuaW1wb3J0IHsgZ2V0V29yZE9jY3VycmVuY2VzRm9yUXVvdGUgfSBmcm9tICcuL3dvcmRPY2N1cnJlbmNlSGVscGVycydcbmltcG9ydCB7IGhhc0VsbGlwc2lzIH0gZnJvbSAnLi4vdHN2LWdyb3VwZGF0YS1wYXJzZXIvZWxsaXBzaXNIZWxwZXJzJ1xuaW1wb3J0IHsgZ2V0VmVyc2VTdHJpbmcgfSBmcm9tICcuLi90c3YtZ3JvdXBkYXRhLXBhcnNlci92ZXJzZUhlbHBlcnMnXG5pbXBvcnQgeyBFTExJUFNJUyB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb25zdGFudHMnXG5pbXBvcnQgeyBjb252ZXJ0UmVmZXJlbmNlIH0gZnJvbSAnLi90c3ZUb0dyb3VwRGF0YSdcbmltcG9ydCB7IGdldEFsaWduZWRUZXh0IH0gZnJvbSAnLi4vLi4vdGNfdWlfdG9vbGtpdC9WZXJzZUNoZWNrL2hlbHBlcnMvY2hlY2tBcmVhSGVscGVycydcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG4vLyBpbXBvcnQgeyBkZWxheSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlbGF5JztcblxuLyoqXG4gKiBvcmdhbml6ZSBncm91cCBkYXRhIGJ5IGNhdGVnb3JpZXMgYW5kIGdyb3VwSURcbiAqIEBwYXJhbSB7YXJyYXl9IGdyb3VwRGF0YVxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5jb25zdCBjYXRlZ29yaXplR3JvdXBEYXRhID0gZ3JvdXBEYXRhID0+IHtcbiAgY29uc3QgY2F0ZWdvcml6ZWRHcm91cERhdGEgPSB7XG4gICAga3Q6IHt9LFxuICAgIG5hbWVzOiB7fSxcbiAgICBvdGhlcjoge30sXG4gIH07XG4gIE9iamVjdC5rZXlzKGdyb3VwRGF0YSkuZm9yRWFjaChjYXRlZ29yeV8gPT4ge1xuICAgIGxldCBjYXRlZ29yeSA9IGNhdGVnb3J5XztcbiAgICBjb25zdCBpdGVtcyA9IGdyb3VwRGF0YVtjYXRlZ29yeV07XG4gICAgaWYgKCFjYXRlZ29yaXplZEdyb3VwRGF0YVtjYXRlZ29yeV0pIHtcbiAgICAgIGNhdGVnb3J5ID0gJ290aGVyJzsgLy8gdW5rbm93biBjYXRlZ29yaWVzIGdvIGluIG90aGVyXG4gICAgfVxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgZ3JvdXBJZCA9IGl0ZW0uY29udGV4dElkICYmIGl0ZW0uY29udGV4dElkLmdyb3VwSWQ7XG4gICAgICBpZiAoZ3JvdXBJZCkge1xuICAgICAgICBpZiAoIWNhdGVnb3JpemVkR3JvdXBEYXRhW2NhdGVnb3J5XVtncm91cElkXSkge1xuICAgICAgICAgIGNhdGVnb3JpemVkR3JvdXBEYXRhW2NhdGVnb3J5XVtncm91cElkXSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNhdGVnb3JpemVkR3JvdXBEYXRhW2NhdGVnb3J5XVtncm91cElkXS5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBjYXRlZ29yaXplZEdyb3VwRGF0YTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZm9ybWF0dGVkIGdyb3VwRGF0YSBpdGVtIGZvciBhIGdpdmVuIHRzdiBpdGVtLlxuICogQHBhcmFtIHtvYmplY3R9IHRzdkl0ZW0gdHN2IGl0ZW0uXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9vbE5hbWUgdG9vbCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlU3RyaW5nXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBncm91cERhdGEgaXRlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdlbmVyYXRlR3JvdXBEYXRhSXRlbSA9ICh0c3ZJdGVtLCB0b29sTmFtZSwgdmVyc2VTdHJpbmcpID0+IHtcbiAgbGV0IHsgT3JpZ1F1b3RlID0gJycgfSA9IHRzdkl0ZW07XG4gIC8vIGNsZWFuIHF1b3RlIHN0cmluZ1xuICBPcmlnUXVvdGUgPSBPcmlnUXVvdGUucmVwbGFjZSgvIFxcJiAvZywgJyDigKYgJyk7IC8vIHRyZWF0IG5ldyBicmVhayBjaGFyYWN0ZXIgc2FtZSBhcyBlbGxpcHNpc1xuICAvLyBpZiBxdW90ZSBoYXMgbW9yZSB0aGFuIG9uZSB3b3JkIGdldCB3b3JkIG9jY3VycmVuY2VzXG4gIGNvbnN0IHdvcmRPY2N1cnJlbmNlc0ZvclF1b3RlID0gZ2V0V29yZE9jY3VycmVuY2VzRm9yUXVvdGUoT3JpZ1F1b3RlLCB2ZXJzZVN0cmluZywgdHJ1ZSk7IC8vIHVzZXMgdG9rZW5pemVyIHRvIGdldCBsaXN0IG9mIHdvcmRzIGhhbmRsZSB2YXJpb3VzIHB1bmN0dWF0aW9uIGFuZCBzcGFjaW5nIGNoYXJzXG4gIGNvbnN0IHF1b3RlID0gd29yZE9jY3VycmVuY2VzRm9yUXVvdGUubGVuZ3RoID4gMSB8fCBoYXNFbGxpcHNpcyhPcmlnUXVvdGUpID8gd29yZE9jY3VycmVuY2VzRm9yUXVvdGUgOiBPcmlnUXVvdGU7IC8vIG9ubHkgdXNlIGFycmF5IGlmIG1vcmUgdGhhbiBvbmUgd29yZCBmb3VuZFxuICBjb25zdCBxdW90ZVN0cmluZyA9IE9yaWdRdW90ZS50cmltKCkucmVwbGFjZSgvXFwuLi4vZ2ksIEVMTElQU0lTKTtcbiAgY29uc3QgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gY29udmVydFJlZmVyZW5jZSh0c3ZJdGVtKTtcbiAgcmV0dXJuIHtcbiAgICBjb21tZW50czogZmFsc2UsXG4gICAgcmVtaW5kZXJzOiBmYWxzZSxcbiAgICBzZWxlY3Rpb25zOiBmYWxzZSxcbiAgICB2ZXJzZUVkaXRzOiBmYWxzZSxcbiAgICBub3RoaW5nVG9TZWxlY3Q6IGZhbHNlLFxuICAgIGNvbnRleHRJZDoge1xuICAgICAgY2hlY2tJZDogdHN2SXRlbS5JRCB8fCAnJyxcbiAgICAgIG9jY3VycmVuY2VOb3RlOiB0c3ZJdGVtLk9jY3VycmVuY2VOb3RlIHx8ICcnLFxuICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgIGJvb2tJZDogdHN2SXRlbS5Cb29rLnRvTG93ZXJDYXNlKCkgfHwgJycsXG4gICAgICAgIGNoYXB0ZXI6IGNoYXB0ZXIgfHwgJycsXG4gICAgICAgIHZlcnNlOiB2ZXJzZSB8fCAnJyxcbiAgICAgIH0sXG4gICAgICB0b29sOiB0b29sTmFtZSB8fCAnJyxcbiAgICAgIGdyb3VwSWQ6IHRzdkl0ZW0uU3VwcG9ydFJlZmVyZW5jZSB8fCAnJyxcbiAgICAgIHF1b3RlLFxuICAgICAgcXVvdGVTdHJpbmcsXG4gICAgICBnbFF1b3RlOiB0c3ZJdGVtLkdMUXVvdGUgfHwgJycsXG4gICAgICBvY2N1cnJlbmNlOiBwYXJzZUludCh0c3ZJdGVtLk9jY3VycmVuY2UsIDEwKSB8fCAxLFxuICAgIH0sXG4gIH07XG59O1xuXG5cbi8qKlxuICogUGFyc2VzIGxpc3Qgb2YgdHN2IGl0ZW1zIGFuZCByZXR1cm5zIGFuIG9iamVjdCBob2xkaW5nIHRoZSBsaXN0cyBvZiBncm91cCBpZHMuXG4gKiBAcGFyYW0ge0FycmF5fSB0c3ZJdGVtcyAtIGxpc3Qgb2YgaXRlbXMgdG8gcHJvY2Vzc1xuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsQmlibGVQYXRoIHBhdGggdG8gb3JpZ2luYWwgYmlibGUuXG4gKiAgICAgICAgZS5nLiAvcmVzb3VyY2VzL2VsLXgta29pbmUvYmlibGVzL3VnbnQvdjAuMTFcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXNvdXJjZXNQYXRoIHBhdGggdG8gdGhlIHJlc291cmNlcyBkaXJcbiAqICAgICAgZS5nLiAvVXNlci9qb2huL3RyYW5zbGF0aW9uQ29yZS9yZXNvdXJjZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5nSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b29sTmFtZSB0QyB0b29sIG5hbWUuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zIFdoZW4gaXQgaW5jbHVkZXMgeyBjYXRlZ29yaXplZDogdHJ1ZSB9XG4gKiAgICAgIHRoZW4gaXQgcmV0dXJucyB0aGUgb2JqZWN0IG9yZ2FuaXplZCBieSB0biBhcnRpY2xlIGNhdGVnb3J5LlxuICogQHJldHVybiB7T2JqZWN0fSAtIGdyb3VwRGF0YVxuICovXG5mdW5jdGlvbiB0c3ZPYmplY3RzVG9Hcm91cERhdGEodHN2SXRlbXMsIG9yaWdMYW5nQmlibGUsIHJlc291cmNlc1BhdGgsIGJvb2tJZCwgbGFuZ0lkLCB0b29sTmFtZSwgcGFyYW1zKSB7XG4gIGNvbnN0IGdyb3VwRGF0YSA9IHt9O1xuICBjb25zdCB0d0xpbmtNYXRjaCA9IC9ecmM6XFwvXFwvXFwqXFwvdHdcXC9kaWN0XFwvYmlibGVcXC8oXFx3KylcXC8oW1xcd1xcZF0rKS87XG4gIGNvbnN0IHR3TGlua1JFID0gbmV3IFJlZ0V4cCh0d0xpbmtNYXRjaCk7XG4gIGJvb2tJZCA9IGJvb2tJZC50b0xvd2VyQ2FzZSgpO1xuXG4gIHRyeSB7XG4gICAgLy8gY29uc3QgcmVzb3VyY2VBcGkgPSBuZXcgTWFuYWdlUmVzb3VyY2Uob3JpZ2luYWxCaWJsZVBhdGgsIGJvb2tJZCk7XG5cbiAgICBmb3IgKGNvbnN0IHRzdkl0ZW0gb2YgdHN2SXRlbXMpIHtcbiAgICAgIGlmICh0c3ZJdGVtLlJlZmVyZW5jZSAmJiB0c3ZJdGVtLklEICYmIHRzdkl0ZW0uT3JpZ1dvcmRzICYmIHRzdkl0ZW0uT2NjdXJyZW5jZSAmJiB0c3ZJdGVtLlRXTGluaykge1xuLy8gICAgICAgIGNvbnN0IHRhZ3MgPSBjbGVhbkdyb3VwSWQodHN2SXRlbS5UYWdzKSB8fCAnb3RoZXInO1xuICAgICAgICBjb25zdCB0d0xpbmsgPSB0c3ZJdGVtLlRXTGluay5tYXRjaCh0d0xpbmtSRSk7XG4gICAgICAgIGlmICghdHdMaW5rKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGludmFsaWQgVFdMaW5rOiAke3Rzdkl0ZW0uVFdMaW5rfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhcHRlciA9IHRzdkl0ZW0uQ2hhcHRlcjtcbiAgICAgICAgY29uc3QgdmVyc2UgPSB0c3ZJdGVtLlZlcnNlO1xuICAgICAgICB0c3ZJdGVtLkJvb2sgPSBib29rSWQ7XG4gICAgICAgIHRzdkl0ZW0uQ2hhcHRlciA9IGNoYXB0ZXI7XG4gICAgICAgIHRzdkl0ZW0uVmVyc2UgPSB2ZXJzZTtcbiAgICAgICAgdHN2SXRlbS5PcmlnUXVvdGUgPSB0c3ZJdGVtLk9yaWdXb3JkcztcbiAgICAgICAgdHN2SXRlbS5DYXRhZ29yeSA9IHR3TGlua1sxXTtcbiAgICAgICAgdHN2SXRlbS5TdXBwb3J0UmVmZXJlbmNlID0gdHdMaW5rWzJdO1xuICAgICAgICBsZXQgdmVyc2VTdHJpbmcgPSBudWxsO1xuXG4gICAgICAgIGlmICghdHN2SXRlbS5DYXRhZ29yeSB8fCAhdHN2SXRlbS5TdXBwb3J0UmVmZXJlbmNlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGludmFsaWQgVFdMaW5rOiAke3Rzdkl0ZW0uVFdMaW5rfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2ZXJzZVN0cmluZyA9IGdldFZlcnNlU3RyaW5nKG9yaWdMYW5nQmlibGUsIHRzdkl0ZW0uUmVmZXJlbmNlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChwYXJzZUludChjaGFwdGVyLCAxMCkgJiYgcGFyc2VJbnQodmVyc2UsIDEwKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGVycm9yIGdldHRpbmcgdmVyc2Ugc3RyaW5nOiBjaGFwdGVyICR7Y2hhcHRlcn0sIHZlcnNlICR7dmVyc2V9IGZyb20gJHtKU09OLnN0cmluZ2lmeSh0c3ZJdGVtKX1gLCBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmVyc2VTdHJpbmcpIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSB0c3ZJdGVtLkNhdGFnb3J5O1xuICAgICAgICAgIGNvbnN0IGdyb3VwRGF0YUl0ZW0gPSBnZW5lcmF0ZUdyb3VwRGF0YUl0ZW0odHN2SXRlbSwgdG9vbE5hbWUsIHZlcnNlU3RyaW5nKTtcbiAgICAgICAgICBpZiAoZ3JvdXBEYXRhW2tleV0pIHtcbiAgICAgICAgICAgIGdyb3VwRGF0YVtrZXldLnB1c2goZ3JvdXBEYXRhSXRlbSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdyb3VwRGF0YVtrZXldID0gW2dyb3VwRGF0YUl0ZW1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKCd0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGVycm9yIHByb2Nlc3NpbmcgaXRlbTonLCBKU09OLnN0cmluZ2lmeSh0c3ZJdGVtKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcyAmJiBwYXJhbXMuY2F0ZWdvcml6ZWQgPyBjYXRlZ29yaXplR3JvdXBEYXRhKGdyb3VwRGF0YSkgOiBncm91cERhdGE7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGVycm9yIHByb2Nlc3NpbmcgVFNWc2AsIGUpO1xuICAgIHRocm93IGU7XG4gIH1cbn1cblxuLyoqXG4gKiBzZXBhcmF0ZSBhIHJlZmVyZW5jZSBzdHJpbmcgc3VjaCBhcyBcIjE6MVwiIGludG8gY2hhcHRlciBhbmQgdmVyc2UgYW5kIGFkZCBhIHZlcnNlU3RyIGZvciByZWZlcmVuY2VzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2ZXJzZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWYgLSByZWZlcmVuY2Ugc3RyaW5nXG4gKiBAcmV0dXJuIHt7Q2hhcHRlciwgVmVyc2V9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWZlcmVuY2UocmVmKSB7XG4gIGNvbnN0IGNsZWFuZWRSZWYgPSBjbGVhbnVwUmVmZXJlbmNlKHJlZik7XG4gIGNvbnN0IHJlZl8gPSB7XG4gICAgQ2hhcHRlcjogY2xlYW5lZFJlZi5jaGFwdGVyLFxuICAgIFZlcnNlOiBjbGVhbmVkUmVmLnZlcnNlICsgJycsXG4gIH07XG5cbiAgaWYgKGNsZWFuZWRSZWYudmVyc2VTdHIpIHtcbiAgICByZWZfLnZlcnNlU3RyID0gY2xlYW5lZFJlZi52ZXJzZVN0cjtcbiAgfVxuICByZXR1cm4gcmVmXztcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgY29udGV4dCBJRHMgYXJlIGZvciBzYW1lIHZlcnNlLiAgT3B0aW1pemVkIG92ZXIgaXNFcXVhbCgpXG4gKiBAcGFyYW0ge09iamVjdH0gY29udGV4dElkMVxuICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHRJZDJcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHJldHVybnMgdHJ1ZSBpZiBjb250ZXh0IElEcyBhcmUgZm9yIHNhbWUgdmVyc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZVZlcnNlQnlDb250ZXh0KGNvbnRleHRJZDEsIGNvbnRleHRJZDIpIHtcbiAgcmV0dXJuIChjb250ZXh0SWQxLnJlZmVyZW5jZS5jaGFwdGVyID09IGNvbnRleHRJZDIucmVmZXJlbmNlLmNoYXB0ZXIpICYmIC8vIFRSSUNLWTogd2UgYXJlIGFsbG93aW5nIGNvZXJjaW9uIHNpbmNlIGNoYXB0ZXJzIGFuZCB2ZXJzZXMgY291bGQgYmUgZWl0aGVyIHN0cmluZ3Mgb3IgbnVtYmVyc1xuICAgIChjb250ZXh0SWQxLnJlZmVyZW5jZS52ZXJzZSA9PSBjb250ZXh0SWQyLnJlZmVyZW5jZS52ZXJzZSk7XG59XG5cbi8qKlxuICogbWFrZSBzdXJlIGNvbnRleHQgSURzIGFyZSBmb3Igc2FtZSB2ZXJzZS4gIE9wdGltaXplZCBvdmVyIGlzRXF1YWwoKVxuICogQHBhcmFtIHtPYmplY3R9IHJlZmVyZW5jZTFcbiAqIEBwYXJhbSB7T2JqZWN0fSByZWZlcmVuY2UyXG4gKiBAcmV0dXJuIHtib29sZWFufSByZXR1cm5zIHRydWUgaWYgY29udGV4dCBJRHMgYXJlIGZvciBzYW1lIHZlcnNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVWZXJzZUJ5UmVmKHJlZmVyZW5jZTEsIHJlZmVyZW5jZTIpIHtcbiAgcmV0dXJuIChyZWZlcmVuY2UxLmNoYXB0ZXIgPT0gcmVmZXJlbmNlMi5jaGFwdGVyKSAmJiAvLyBUUklDS1k6IHdlIGFyZSBhbGxvd2luZyBjb2VyY2lvbiBzaW5jZSBjaGFwdGVycyBhbmQgdmVyc2VzIGNvdWxkIGJlIGVpdGhlciBzdHJpbmdzIG9yIG51bWJlcnNcbiAgICAocmVmZXJlbmNlMS52ZXJzZSA9PSByZWZlcmVuY2UyLnZlcnNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDaGVjayhncm91cHNEYXRhLCBjb250ZXh0SWQsIGRlZmF1bHRUb0ZpcnN0ID0gZmFsc2UpIHtcbiAgbGV0IGNoZWNrID0gbnVsbFxuICBsZXQgY2hlY2tlZEJvb2sgPSBmYWxzZTtcbiAgaWYgKGdyb3Vwc0RhdGEgJiYgY29udGV4dElkPy5yZWZlcmVuY2UpIHtcbiAgICBmb3IgKGNvbnN0IGdyb3VwSWQgb2YgT2JqZWN0LmtleXMoZ3JvdXBzRGF0YSkpIHtcbiAgICAgIGlmIChncm91cElkID09PSBjb250ZXh0SWQuZ3JvdXBJZCkge1xuICAgICAgICBjb25zdCBjYXRhZ29yeUl0ZW1zID0gZ3JvdXBzRGF0YVtncm91cElkXVxuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBjb250ZXh0SWQ/LnJlZmVyZW5jZVxuICAgICAgICBpZiAoIWNoZWNrZWRCb29rICYmIGNhdGFnb3J5SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHJlZmVyZW5jZT8uYm9va0lkICE9PSBjYXRhZ29yeUl0ZW1zWzBdPy5jb250ZXh0SWQ/LnJlZmVyZW5jZT8uYm9va0lkKSB7XG4gICAgICAgICAgICBicmVhazsgLy8gY29udGV4dCBpZCBpcyBmb3IgZGlmZmVyZW5jZSBib29rXG4gICAgICAgICAgfVxuICAgICAgICAgIGNoZWNrZWRCb29rID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY2F0YWdvcnlJdGVtcykge1xuICAgICAgICAgICAgY29uc3QgaXRlbUNvbnRleHRJZCA9IGl0ZW0uY29udGV4dElkXG4gICAgICAgICAgICBpZiAoaXNTYW1lVmVyc2VCeVJlZihyZWZlcmVuY2UsIGl0ZW1Db250ZXh0SWQ/LnJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgbGV0IG1hdGNoRm91bmQgPSBmYWxzZVxuICAgICAgICAgICAgICBpZiAoY29udGV4dElkLmNoZWNrSWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29udGV4dElkLmNoZWNrSWQgPT09IGl0ZW1Db250ZXh0SWQ/LmNoZWNrSWQpIHtcbiAgICAgICAgICAgICAgICAgIG1hdGNoRm91bmQgPSB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgLy8gaWYgbm8gY2hlY2tJZCwgZmFsbCBiYWNrIHRvIG1hdGNoaW5nIHF1b3RlIGFuZCBvY2N1cnJlbmNlXG4gICAgICAgICAgICAgIGlmIChpc0VxdWFsKGNvbnRleHRJZC5xdW90ZSwgaXRlbUNvbnRleHRJZD8ucXVvdGUpICYmIChjb250ZXh0SWQub2NjdXJyZW5jZSA9PT0gaXRlbUNvbnRleHRJZD8ub2NjdXJyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICBtYXRjaEZvdW5kID0gdHJ1ZVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKG1hdGNoRm91bmQpIHtcbiAgICAgICAgICAgICAgICBjaGVjayA9IGl0ZW1cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrIC8vIHdoZW4gZmluaXNoZWQgY2hlY2tpbmcgYWxsIGl0ZW1zIGluIGdyb3VwSWQsIHRoZXJlIGlzIG5vIHBvaW50IHRvIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghY2hlY2sgJiYgZGVmYXVsdFRvRmlyc3QpIHtcbiAgICBjaGVjayA9IGZpbmRGaXJzdENoZWNrKGdyb3Vwc0RhdGEpXG4gIH1cbiAgcmV0dXJuIGNoZWNrXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTmV4dENoZWNrKGdyb3Vwc0RhdGEsIGNvbnRleHRJZCwgZGVmYXVsdFRvRmlyc3QgPSBmYWxzZSkge1xuICBsZXQgY2hlY2sgPSBudWxsXG4gIGxldCBjaGVja2VkQm9vayA9IGZhbHNlO1xuICBsZXQgbWF0Y2hGb3VuZCA9IGZhbHNlXG4gIGlmIChncm91cHNEYXRhICYmIGNvbnRleHRJZD8ucmVmZXJlbmNlKSB7XG4gICAgY29uc3QgZ3JvdXBzS2V5cyA9IE9iamVjdC5rZXlzKGdyb3Vwc0RhdGEpXG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZ3JvdXBzS2V5cy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICBjb25zdCBncm91cElkID0gZ3JvdXBzS2V5c1tpZHhdXG4gICAgICBpZiAoZ3JvdXBJZCA9PT0gY29udGV4dElkLmdyb3VwSWQpIHtcbiAgICAgICAgY29uc3QgY2F0YWdvcnlJdGVtcyA9IGdyb3Vwc0RhdGFbZ3JvdXBJZF1cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gY29udGV4dElkPy5yZWZlcmVuY2VcbiAgICAgICAgaWYgKCFjaGVja2VkQm9vayAmJiBjYXRhZ29yeUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIGlmIChyZWZlcmVuY2U/LmJvb2tJZCAhPT0gY2F0YWdvcnlJdGVtc1swXT8uY29udGV4dElkPy5yZWZlcmVuY2U/LmJvb2tJZCkge1xuICAgICAgICAgICAgYnJlYWs7IC8vIGNvbnRleHQgaWQgaXMgZm9yIGRpZmZlcmVuY2UgYm9va1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja2VkQm9vayA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRhZ29yeUl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gY2F0YWdvcnlJdGVtc1tpXVxuICAgICAgICAgICAgY29uc3QgaXRlbUNvbnRleHRJZCA9IGl0ZW0uY29udGV4dElkXG4gICAgICAgICAgICBpZiAoaXNTYW1lVmVyc2VCeVJlZihyZWZlcmVuY2UsIGl0ZW1Db250ZXh0SWQ/LnJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkID09PSBpdGVtQ29udGV4dElkPy5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgICBtYXRjaEZvdW5kID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIC8vIGlmIG5vIGNoZWNrSWQsIGZhbGwgYmFjayB0byBtYXRjaGluZyBxdW90ZSBhbmQgb2NjdXJyZW5jZVxuICAgICAgICAgICAgICBpZiAoaXNFcXVhbChjb250ZXh0SWQucXVvdGUsIGl0ZW1Db250ZXh0SWQ/LnF1b3RlKSAmJiAoY29udGV4dElkLm9jY3VycmVuY2UgPT09IGl0ZW1Db250ZXh0SWQ/Lm9jY3VycmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hGb3VuZCA9IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF0Y2hGb3VuZCkgeyAvLyBpZiBtYXRjaCB3YXMgZm91bmQsIHRoZW4gbW92ZSB0byBuZXh0IGNoZWNrXG4gICAgICAgICAgICAgIGlmIChpIDwgY2F0YWdvcnlJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgY2hlY2sgPSBjYXRhZ29yeUl0ZW1zW2kgKyAxXVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlkeCA8IGdyb3Vwc0tleXMubGVuZ3RoIC0gMSkgeyAvLyBtb3ZlIHRvIGZpcnN0IGl0ZW0gaW4gbmV4dCBncm91cFxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cElkID0gZ3JvdXBzS2V5c1tpZHggKyAxXVxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cEl0ZW1zID0gZ3JvdXBzRGF0YVtuZXh0R3JvdXBJZF1cbiAgICAgICAgICAgICAgICBjaGVjayA9IG5leHRHcm91cEl0ZW1zWzBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWsgLy8gd2hlbiBmaW5pc2hlZCBjaGVja2luZyBhbGwgaXRlbXMgaW4gZ3JvdXBJZCwgdGhlcmUgaXMgbm8gcG9pbnQgdG8gY29udGludWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFjaGVjayAmJiBkZWZhdWx0VG9GaXJzdCkge1xuICAgIGNoZWNrID0gZmluZEZpcnN0Q2hlY2soZ3JvdXBzRGF0YSlcbiAgfVxuICByZXR1cm4gY2hlY2tcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQcmV2aW91c0NoZWNrKGdyb3Vwc0RhdGEsIGNvbnRleHRJZCwgZGVmYXVsdFRvRmlyc3QgPSBmYWxzZSkge1xuICBsZXQgY2hlY2sgPSBudWxsXG4gIGxldCBjaGVja2VkQm9vayA9IGZhbHNlO1xuICBsZXQgbWF0Y2hGb3VuZCA9IGZhbHNlXG4gIGlmIChncm91cHNEYXRhICYmIGNvbnRleHRJZD8ucmVmZXJlbmNlKSB7XG4gICAgY29uc3QgZ3JvdXBzS2V5cyA9IE9iamVjdC5rZXlzKGdyb3Vwc0RhdGEpXG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZ3JvdXBzS2V5cy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICBjb25zdCBncm91cElkID0gZ3JvdXBzS2V5c1tpZHhdXG4gICAgICBpZiAoZ3JvdXBJZCA9PT0gY29udGV4dElkLmdyb3VwSWQpIHtcbiAgICAgICAgY29uc3QgY2F0YWdvcnlJdGVtcyA9IGdyb3Vwc0RhdGFbZ3JvdXBJZF1cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gY29udGV4dElkPy5yZWZlcmVuY2VcbiAgICAgICAgaWYgKCFjaGVja2VkQm9vayAmJiBjYXRhZ29yeUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIGlmIChyZWZlcmVuY2U/LmJvb2tJZCAhPT0gY2F0YWdvcnlJdGVtc1swXT8uY29udGV4dElkPy5yZWZlcmVuY2U/LmJvb2tJZCkge1xuICAgICAgICAgICAgYnJlYWs7IC8vIGNvbnRleHQgaWQgaXMgZm9yIGRpZmZlcmVuY2UgYm9va1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja2VkQm9vayA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRhZ29yeUl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gY2F0YWdvcnlJdGVtc1tpXVxuICAgICAgICAgICAgY29uc3QgaXRlbUNvbnRleHRJZCA9IGl0ZW0uY29udGV4dElkXG4gICAgICAgICAgICBpZiAoaXNTYW1lVmVyc2VCeVJlZihyZWZlcmVuY2UsIGl0ZW1Db250ZXh0SWQ/LnJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkID09PSBpdGVtQ29udGV4dElkPy5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgICBtYXRjaEZvdW5kID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIC8vIGlmIG5vIGNoZWNrSWQsIGZhbGwgYmFjayB0byBtYXRjaGluZyBxdW90ZSBhbmQgb2NjdXJyZW5jZVxuICAgICAgICAgICAgICBpZiAoaXNFcXVhbChjb250ZXh0SWQucXVvdGUsIGl0ZW1Db250ZXh0SWQ/LnF1b3RlKSAmJiAoY29udGV4dElkLm9jY3VycmVuY2UgPT09IGl0ZW1Db250ZXh0SWQ/Lm9jY3VycmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hGb3VuZCA9IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF0Y2hGb3VuZCkgeyAvLyBpZiBtYXRjaCB3YXMgZm91bmQsIHRoZW4gbW92ZSB0byBwcmV2aW91cyBjaGVja1xuICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICBjaGVjayA9IGNhdGFnb3J5SXRlbXNbaSAtIDFdXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaWR4ID4gMCkgeyAvLyBtb3ZlIHRvIGZpcnN0IGl0ZW0gaW4gbmV4dCBncm91cFxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cElkID0gZ3JvdXBzS2V5c1tpZHggLSAxXVxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cEl0ZW1zID0gZ3JvdXBzRGF0YVtuZXh0R3JvdXBJZF1cbiAgICAgICAgICAgICAgICBjaGVjayA9IG5leHRHcm91cEl0ZW1zW25leHRHcm91cEl0ZW1zLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWsgLy8gd2hlbiBmaW5pc2hlZCBjaGVja2luZyBhbGwgaXRlbXMgaW4gZ3JvdXBJZCwgdGhlcmUgaXMgbm8gcG9pbnQgdG8gY29udGludWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFjaGVjayAmJiBkZWZhdWx0VG9GaXJzdCkge1xuICAgIGNoZWNrID0gZmluZEZpcnN0Q2hlY2soZ3JvdXBzRGF0YSlcbiAgfVxuICByZXR1cm4gY2hlY2tcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGaXJzdENoZWNrKGdyb3Vwc0RhdGEpIHtcbiAgbGV0IGNoZWNrID0gbnVsbFxuICBjb25zdCBncm91cEtleXMgPSBncm91cHNEYXRhICYmIE9iamVjdC5rZXlzKGdyb3Vwc0RhdGEpXG4gIGlmIChncm91cEtleXM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IGZpcnN0R3JvdXAgPSBncm91cHNEYXRhW2dyb3VwS2V5c1swXV1cbiAgICBpZiAoZmlyc3RHcm91cD8ubGVuZ3RoKSB7XG4gICAgICBjaGVjayA9IGZpcnN0R3JvdXBbMF1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNoZWNrXG59XG5cblxuLyoqXG4gKiBwcm9jZXNzIHRoZSBUU1YgZmlsZSBpbnRvIGluZGV4IGZpbGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gdHN2RGF0YVxuICogQHBhcmFtIHtvYmplY3R9IHByb2plY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXNvdXJjZXNQYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxCaWJsZVBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRQYXRoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0d2xUc3ZUb0dyb3VwRGF0YSh0c3ZEYXRhLCBwcm9qZWN0LCBvcmlnTGFuZ0JpYmxlKSB7XG4gIGNvbnN0IGJvb2tJZCA9IHByb2plY3QuaWRlbnRpZmllcjtcbiAgbGV0IGdyb3VwRGF0YTtcbiAgY29uc3Qge1xuICAgIHRzdkl0ZW1zLFxuICAgIGVycm9yLFxuICB9ID0gYXdhaXQgdHN2RGF0YVRvT2JqZWN0cyh0c3ZEYXRhKTtcblxuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIGNvbnN0IHRzdkl0ZW1zXyA9IFtdO1xuICBmb3IgKGNvbnN0IHRzdkl0ZW0gb2YgdHN2SXRlbXMpIHtcbiAgICBjb25zdCBjbGVhbmVkUmVmID0gcGFyc2VSZWZlcmVuY2UodHN2SXRlbS5SZWZlcmVuY2UpO1xuICAgIGNvbnN0IHRzdkl0ZW1fID0ge1xuICAgICAgLi4udHN2SXRlbSxcbiAgICAgIC4uLmNsZWFuZWRSZWYsXG4gICAgfTtcbiAgICB0c3ZJdGVtc18ucHVzaCh0c3ZJdGVtXyk7XG4gIH1cblxuICB0cnkge1xuICAgIGdyb3VwRGF0YSA9IHRzdk9iamVjdHNUb0dyb3VwRGF0YSh0c3ZJdGVtc18sIG9yaWdMYW5nQmlibGUsIFwiXCIsIGJvb2tJZCwgcHJvamVjdC5sYW5ndWFnZUlkLCAndHJhbnNsYXRpb25Xb3JkcycsIHtjYXRlZ29yaXplZDogdHJ1ZX0pO1xuICAgIGNvbnZlcnRFbGxpcHNpc1RvQW1wZXJzYW5kKGdyb3VwRGF0YSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGB0d0FydGljbGVIZWxwZXJzLnR3bFRzdlRvR3JvdXBEYXRhKCkgLSBlcnJvciBwcm9jZXNzaW5nIGdyb3VwIGRhdGFgLCBlKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIHJldHVybiBncm91cERhdGE7XG59XG5cbi8qKlxuICogcGFyc2UgdGhlIHR3RGF0YSBpbnRvIGEgZmxhdCBpbmRleFxuICogQHBhcmFtIHtvYmplY3R9IHR3RGF0YVxuICogQHJldHVybnMge2FycmF5fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUd1RvSW5kZXgodHdEYXRhKSB7XG4gIGxldCBpbmRleCA9IFtdXG4gIGZvciAoY29uc3QgY2F0YWdvcnlJZCBvZiBPYmplY3Qua2V5cyh0d0RhdGEpKSB7XG4gICAgY29uc3QgY2F0YWdvcnkgPSB0d0RhdGFbY2F0YWdvcnlJZF1cbiAgICBpZiAoY2F0YWdvcnk/LmluZGV4KSB7XG4gICAgICBpbmRleCA9IGluZGV4LmNvbmNhdChjYXRhZ29yeT8uaW5kZXgpXG4gICAgfVxuICB9XG4gIHJldHVybiBpbmRleFxufVxuXG4vKipcbiAqIHByb2Nlc3MgdGhlIFRTViBmaWxlIGludG8gaW5kZXggZmlsZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0c3ZEYXRhXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHN2RGF0YVRvT2JqZWN0cyh0c3ZEYXRhKSB7XG4gIC8vIGNvbnNvbGUubG9nKHRzdkxpbmVzKTtcbiAgbGV0IHRzdkl0ZW1zO1xuICBsZXQgcGFyc2VFcnJvck1zZztcbiAgbGV0IGVycm9yO1xuICBsZXQgZXhwZWN0ZWRDb2x1bW5zID0gMDtcbiAgY29uc3QgdGFibGVPYmplY3QgPSB0c3ZwYXJzZXIudHN2U3RyaW5nVG9UYWJsZSh0c3ZEYXRhKTtcblxuICBpZiAoIHRhYmxlT2JqZWN0LmVycm9ycy5sZW5ndGggPiAwICkge1xuICAgIHBhcnNlRXJyb3JNc2cgPSAnJztcbiAgICBleHBlY3RlZENvbHVtbnMgPSB0YWJsZU9iamVjdC5oZWFkZXIubGVuZ3RoO1xuXG4gICAgZm9yIChsZXQgaT0wOyBpPHRhYmxlT2JqZWN0LmVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG1zZztcbiAgICAgIGNvbnN0IHJvd251bSA9IHRhYmxlT2JqZWN0LmVycm9yc1tpXVswXSAtIDE7IC8vIGFkanVzdCBmb3IgZGF0YSB0YWJsZSB3aXRob3V0IGhlYWRlciByb3dcbiAgICAgIGNvbnN0IGNvbHNmb3VuZCA9IHRhYmxlT2JqZWN0LmVycm9yc1tpXVsxXTtcblxuICAgICAgaWYgKCBjb2xzZm91bmQgPiBleHBlY3RlZENvbHVtbnMgKSB7XG4gICAgICAgIG1zZyA9ICdSb3cgaXMgdG9vIGxvbmcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbXNnID0gJ1JvdyBpcyB0b28gc2hvcnQnO1xuICAgICAgfVxuICAgICAgcGFyc2VFcnJvck1zZyArPSBgXFxuXFxuJHttc2d9OmA7XG4gICAgICBwYXJzZUVycm9yTXNnICs9ICdcXG4nICsgdGFibGVPYmplY3QuZGF0YVtyb3dudW1dLmpvaW4oJywnKTtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKGB0d0FydGljbGVIZWxwZXJzLnR3bFRzdlRvR3JvdXBEYXRhKCkgLSB0YWJsZSBwYXJzZSBlcnJvcnMgZm91bmQ6ICR7cGFyc2VFcnJvck1zZ31gKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdHN2SXRlbXMgPSB0YWJsZU9iamVjdC5kYXRhLm1hcChsaW5lID0+IHtcbiAgICAgIGNvbnN0IHRzdkl0ZW0gPSB7fTtcbiAgICAgIGNvbnN0IGwgPSB0YWJsZU9iamVjdC5oZWFkZXIubGVuZ3RoO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICBjb25zdCBrZXkgPSB0YWJsZU9iamVjdC5oZWFkZXJbaV07XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbGluZVtpXSB8fCAnJztcbiAgICAgICAgdHN2SXRlbVtrZXldID0gdmFsdWUudHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRzdkl0ZW07XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGB0d0FydGljbGVIZWxwZXJzLnR3bFRzdlRvR3JvdXBEYXRhKCkgLSBlcnJvciBwcm9jZXNzaW5nIGZpbGVwYXRoOiAke3RzdlBhdGh9YCwgZSk7XG4gICAgZXJyb3IgPSBlO1xuICB9XG4gIHJldHVybiB7XG4gICAgdHN2SXRlbXMsXG4gICAgcGFyc2VFcnJvck1zZyxcbiAgICBlcnJvcixcbiAgICBleHBlY3RlZENvbHVtbnMsXG4gIH07XG59XG5cblxuLy8gLyoqXG4vLyAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIHRoZSBleHRyYWN0ZWQgZmlsZXMgZm9yIHRyYW5zbGF0aW9uV29yZCB0byBjcmVhdGUgdGhlIGZvbGRlclxuLy8gICogc3RydWN0dXJlIGFuZCBwcm9kdWNlIHRoZSBpbmRleC5qcyBmaWxlIGZvciB0aGUgbGFuZ3VhZ2Ugd2l0aCB0aGUgdGl0bGUgb2YgZWFjaCBhcnRpY2xlLlxuLy8gICogQHBhcmFtIHtPYmplY3R9IHJlc291cmNlIC0gUmVzb3VyY2Ugb2JqZWN0XG4vLyAgKiBAcGFyYW0ge1N0cmluZ30gc291cmNlUGF0aCAtIFBhdGggdG8gdGhlIGV4dHJhY3RlZCBmaWxlcyB0aGF0IGNhbWUgZnJvbSB0aGUgemlwIGZpbGUgZnJvbSB0aGUgY2F0YWxvZ1xuLy8gICogQHBhcmFtIHtTdHJpbmd9IG91dHB1dFBhdGggLSBQYXRoIHRvIHBsYWNlIHRoZSBwcm9jZXNzZWQgcmVzb3VyY2UgZmlsZXMgV0lIVE9VVCB0aGUgdmVyc2lvbiBpbiB0aGUgcGF0aFxuLy8gICogQHBhcmFtIHtzdHJpbmd9IHJlc291cmNlc1BhdGhcbi8vICAqIEBwYXJhbSB7QXJyYXl9IGRvd25sb2FkRXJyb3JzIC0gcGFyc2VkIGxpc3Qgb2YgZG93bmxvYWQgZXJyb3JzIHdpdGggZGV0YWlscyBzdWNoIGFzIGlmIHRoZSBkb3dubG9hZCBjb21wbGV0ZWQgKHZzLiBwYXJzaW5nIGVycm9yKSwgZXJyb3IsIGFuZCB1cmxcbi8vICAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcgLSBjb25maWd1cmF0aW9uIG9iamVjdFxuLy8gICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBzdWNjZXNzXG4vLyAgKi9cbi8vIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVihyZXNvdXJjZSwgc291cmNlUGF0aCwgb3V0cHV0UGF0aCwgcmVzb3VyY2VzUGF0aCwgZG93bmxvYWRFcnJvcnMsIGNvbmZpZyA9IHt9KSB7XG4vLyAgIHRyeSB7XG4vLyAgICAgaWYgKCFyZXNvdXJjZSB8fCAhaXNPYmplY3QocmVzb3VyY2UpIHx8ICFyZXNvdXJjZS5sYW5ndWFnZUlkIHx8ICFyZXNvdXJjZS5yZXNvdXJjZUlkKVxuLy8gICAgICAgdGhyb3cgRXJyb3IocmVzb3VyY2VzSGVscGVycy5mb3JtYXRFcnJvcihyZXNvdXJjZSwgZXJyb3JzLlJFU09VUkNFX05PVF9HSVZFTikpO1xuLy8gICAgIGlmICghc291cmNlUGF0aClcbi8vICAgICAgIHRocm93IEVycm9yKHJlc291cmNlc0hlbHBlcnMuZm9ybWF0RXJyb3IocmVzb3VyY2UsIGVycm9ycy5TT1VSQ0VfUEFUSF9OT1RfR0lWRU4pKTtcbi8vICAgICBpZiAoIWZzLnBhdGhFeGlzdHNTeW5jKHNvdXJjZVBhdGgpKVxuLy8gICAgICAgdGhyb3cgRXJyb3IocmVzb3VyY2VzSGVscGVycy5mb3JtYXRFcnJvcihyZXNvdXJjZSwgZXJyb3JzLlNPVVJDRV9QQVRIX05PVF9FWElTVCkpO1xuLy8gICAgIGlmICghb3V0cHV0UGF0aClcbi8vICAgICAgIHRocm93IEVycm9yKHJlc291cmNlc0hlbHBlcnMuZm9ybWF0RXJyb3IocmVzb3VyY2UsIGVycm9ycy5PVVRQVVRfUEFUSF9OT1RfR0lWRU4pKTtcbi8vICAgICBpZiAoZnMucGF0aEV4aXN0c1N5bmMob3V0cHV0UGF0aCkpXG4vLyAgICAgICBmcy5yZW1vdmVTeW5jKG91dHB1dFBhdGgpO1xuLy9cbi8vICAgICBjb25zdCB7b3RRdWVyeSwgbnRRdWVyeX0gPSBhd2FpdCBnZXRNaXNzaW5nUmVzb3VyY2VzKHNvdXJjZVBhdGgsIHJlc291cmNlc1BhdGgsIGdldE1pc3NpbmdPcmlnaW5hbFJlc291cmNlLCBkb3dubG9hZEVycm9ycywgcmVzb3VyY2UubGFuZ3VhZ2VJZCwgcmVzb3VyY2Uub3duZXIsIGZhbHNlLCBjb25maWcpO1xuLy9cbi8vICAgICAvLyBtYWtlIHN1cmUgdFcgaXMgYWxyZWFkeSBpbnN0YWxsZWRcbi8vICAgICBjb25zdCB0d1BhdGggPSBwYXRoLmpvaW4oXG4vLyAgICAgICByZXNvdXJjZXNQYXRoLFxuLy8gICAgICAgcmVzb3VyY2UubGFuZ3VhZ2VJZCxcbi8vICAgICAgICd0cmFuc2xhdGlvbkhlbHBzL3RyYW5zbGF0aW9uV29yZHMnXG4vLyAgICAgKTtcbi8vICAgICBjb25zdCB0d1ZlcnNpb25QYXRoID0gcmVzb3VyY2VzSGVscGVycy5nZXRMYXRlc3RWZXJzaW9uSW5QYXRoKHR3UGF0aCwgcmVzb3VyY2Uub3duZXIpO1xuLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHR3VmVyc2lvblBhdGgpKSB7XG4vLyAgICAgICBtYWtlU3VyZVJlc291cmNlVW56aXBwZWQodHdWZXJzaW9uUGF0aCk7XG4vLyAgICAgfSBlbHNlIHtcbi8vICAgICAgIGNvbnN0IHJlc291cmNlXyA9IGAke3Jlc291cmNlLm93bmVyfS8ke3Jlc291cmNlLmxhbmd1YWdlSWR9X3R3YDtcbi8vICAgICAgIHRocm93IG5ldyBFcnJvcihgcHJvY2Vzc1RyYW5zbGF0aW9uV29yZHNUU1YoKSAtIGNhbm5vdCBmaW5kICcke3Jlc291cmNlX30nIGF0ICR7dHdQYXRofSBmb3IgJHtyZXNvdXJjZS5vd25lcn1gKTtcbi8vICAgICB9XG4vL1xuLy8gICAgIGNvbnN0IG1hbmlmZXN0ID0gZ2V0UmVzb3VyY2VNYW5pZmVzdChzb3VyY2VQYXRoKTtcbi8vICAgICBpZiAoIShtYW5pZmVzdCAmJiBBcnJheS5pc0FycmF5KG1hbmlmZXN0LnByb2plY3RzKSkpIHtcbi8vICAgICAgIHRocm93IG5ldyBFcnJvcihgcHJvY2Vzc1RyYW5zbGF0aW9uV29yZHNUU1YoKSAtIG5vIHByb2plY3RzIGluIG1hbmlmZXN0IGF0ICR7c291cmNlUGF0aH0gZm9yICR7cmVzb3VyY2Uub3duZXJ9YCk7XG4vLyAgICAgfVxuLy9cbi8vICAgICBjb25zdCB0d2xFcnJvcnMgPSBbXTtcbi8vXG4vLyAgICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIG1hbmlmZXN0LnByb2plY3RzKSB7XG4vLyAgICAgICBjb25zdCB0c3ZQYXRoID0gcGF0aC5qb2luKHNvdXJjZVBhdGgsIHByb2plY3QucGF0aCk7XG4vLyAgICAgICB0cnkge1xuLy8gICAgICAgICBjb25zdCBib29rSWQgPSBwcm9qZWN0LmlkZW50aWZpZXI7XG4vLyAgICAgICAgIGNvbnN0IGlzTmV3VGVzdGFtZW50ID0gQklCTEVfQk9PS1MubmV3VGVzdGFtZW50W3Byb2plY3QuaWRlbnRpZmllcl07XG4vLyAgICAgICAgIGNvbnN0IG9yaWdpbmFsTGFuZ3VhZ2VJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HO1xuLy8gICAgICAgICBjb25zdCBvcmlnaW5hbExhbmd1YWdlQmlibGVJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HX0JJQkxFIDogT1RfT1JJR19MQU5HX0JJQkxFO1xuLy8gICAgICAgICBjb25zdCB2ZXJzaW9uID0gaXNOZXdUZXN0YW1lbnQgJiYgbnRRdWVyeSA/ICgndicgKyBudFF1ZXJ5KSA6IG90UXVlcnkgPyAoJ3YnICsgb3RRdWVyeSkgOiBudWxsO1xuLy8gICAgICAgICBpZiAoIXZlcnNpb24pIHtcbi8vICAgICAgICAgICBjb25zb2xlLndhcm4oJ3Byb2Nlc3NUcmFuc2xhdGlvbldvcmRzVFNWKCkgLSBUaGVyZSB3YXMgYSBtaXNzaW5nIHZlcnNpb24gZm9yIGJvb2sgJyArIGJvb2tJZCArICcgb2YgcmVzb3VyY2UgJyArIG9yaWdpbmFsTGFuZ3VhZ2VCaWJsZUlkICsgJyBmcm9tICcgKyByZXNvdXJjZS5kb3dubG9hZFVybCk7XG4vLyAgICAgICAgICAgY29udGludWU7XG4vLyAgICAgICAgIH1cbi8vICAgICAgICAgY29uc3Qgb3JpZ2luYWxMYW5ndWFnZU93bmVyID0gZ2V0T3duZXJGb3JPcmlnaW5hbExhbmd1YWdlKHJlc291cmNlLm93bmVyKTtcbi8vICAgICAgICAgY29uc3Qgb3JpZ2luYWxCaWJsZVBhdGggPSBwYXRoLmpvaW4oXG4vLyAgICAgICAgICAgcmVzb3VyY2VzUGF0aCxcbi8vICAgICAgICAgICBvcmlnaW5hbExhbmd1YWdlSWQsXG4vLyAgICAgICAgICAgJ2JpYmxlcycsXG4vLyAgICAgICAgICAgb3JpZ2luYWxMYW5ndWFnZUJpYmxlSWQsXG4vLyAgICAgICAgICAgYCR7dmVyc2lvbn1fJHtvcmlnaW5hbExhbmd1YWdlT3duZXJ9YFxuLy8gICAgICAgICApO1xuLy9cbi8vICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMob3JpZ2luYWxCaWJsZVBhdGgpKSB7XG4vLyAgICAgICAgICAgY29uc3QgZ3JvdXBEYXRhID0gYXdhaXQgdHdsVHN2VG9Hcm91cERhdGEodHN2UGF0aCwgcHJvamVjdCwgcmVzb3VyY2VzUGF0aCwgb3JpZ2luYWxCaWJsZVBhdGgsIG91dHB1dFBhdGgpO1xuLy8gICAgICAgICAgIGNvbnZlcnRFbGxpcHNpc1RvQW1wZXJzYW5kKGdyb3VwRGF0YSwgdHN2UGF0aCk7XG4vLyAgICAgICAgICAgYXdhaXQgZm9ybWF0QW5kU2F2ZUdyb3VwRGF0YShncm91cERhdGEsIG91dHB1dFBhdGgsIGJvb2tJZCk7XG4vLyAgICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBgJHtvcmlnaW5hbExhbmd1YWdlT3duZXJ9LyR7b3JpZ2luYWxMYW5ndWFnZUlkfV8ke29yaWdpbmFsTGFuZ3VhZ2VCaWJsZUlkfWA7XG4vLyAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVigpIC0gY2Fubm90IGZpbmQgJyR7cmVzb3VyY2V9JyBhdCAke29yaWdpbmFsQmlibGVQYXRofTpgO1xuLy8gICAgICAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4vLyAgICAgICAgICAgdHdsRXJyb3JzLnB1c2gobWVzc2FnZSk7XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH0gY2F0Y2ggKGUpIHtcbi8vICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVigpIC0gZXJyb3IgcHJvY2Vzc2luZyAke3RzdlBhdGh9OmA7XG4vLyAgICAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSwgZSk7XG4vLyAgICAgICAgIHR3bEVycm9ycy5wdXNoKG1lc3NhZ2UgKyBlLnRvU3RyaW5nKCkpO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vXG4vLyAgICAgYXdhaXQgZGVsYXkoMjAwKTtcbi8vXG4vLyAgICAgaWYgKHR3bEVycm9ycy5sZW5ndGgpIHsgLy8gcmVwb3J0IGVycm9yc1xuLy8gICAgICAgY29uc3QgbWVzc2FnZSA9IGBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVigpIC0gZXJyb3IgcHJvY2Vzc2luZyAke3NvdXJjZVBhdGh9YDtcbi8vICAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4vLyAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bWVzc2FnZX06XFxuJHt0d2xFcnJvcnMuam9pbignXFxuJyl9YCk7XG4vLyAgICAgfVxuLy8gICB9IGNhdGNoIChlcnJvcikge1xuLy8gICAgIGNvbnNvbGUuZXJyb3IoJ3Byb2Nlc3NUcmFuc2xhdGlvbldvcmRzVFNWKCkgLSBlcnJvcjonLCBlcnJvcik7XG4vLyAgICAgdGhyb3cgZXJyb3I7XG4vLyAgIH1cbi8vIH1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gLSBHZW5lcmF0ZXMgdGhlIGdyb3VwcyBpbmRleCBmb3IgdGhlIHR3IGFydGljbGVzIChib3RoIGt0LCBvdGhlciBhbmQgbmFtZXMpLlxuICogQHBhcmFtIHtTdHJpbmd9IGZpbGVzUGF0aCAtIFBhdGggdG8gYWxsIHR3IG1hcmtkb3duIGFydGNpbGVzLlxuICogQHBhcmFtIHtTdHJpbmd9IHR3T3V0cHV0UGF0aCBQYXRoIHRvIHRoZSByZXNvdXJjZSBsb2NhdGlvbiBpbiB0aGUgc3RhdGljIGZvbGRlci5cbiAqIEBwYXJhbSB7U3RyaW5nfSBmb2xkZXJOYW1lIGFydGljbGUgdHlwZS4gZXguIGt0IG9yIG90aGVyLlxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUdyb3Vwc0luZGV4KGZpbGVzUGF0aCwgdHdPdXRwdXRQYXRoLCBmb2xkZXJOYW1lKSB7XG4gIGNvbnN0IGdyb3Vwc0luZGV4ID0gW107XG4gIGNvbnN0IGdyb3VwSWRzID0gZnMucmVhZGRpclN5bmMoZmlsZXNQYXRoKS5maWx0ZXIoKGZpbGVuYW1lKSA9PiB7XG4gICAgcmV0dXJuIGZpbGVuYW1lLnNwbGl0KCcuJykucG9wKCkgPT09ICdtZCc7XG4gIH0pO1xuICBncm91cElkcy5mb3JFYWNoKChmaWxlTmFtZSkgPT4ge1xuICAgIGNvbnN0IGdyb3VwT2JqZWN0ID0ge307XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZmlsZXNQYXRoLCBmaWxlTmFtZSk7XG4gICAgY29uc3QgYXJ0aWNsZUZpbGUgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XG4gICAgY29uc3QgZ3JvdXBJZCA9IGZpbGVOYW1lLnJlcGxhY2UoJy5tZCcsICcnKTtcbiAgICAvLyBnZXQgdGhlIGFydGljbGUncyBmaXJzdCBsaW5lIGFuZCByZW1vdmUgIydzIGFuZCBzcGFjZXMgZnJvbSBiZWdpbm5pbmcvZW5kXG4gICAgY29uc3QgZ3JvdXBOYW1lID0gYXJ0aWNsZUZpbGUuc3BsaXQoJ1xcbicpWzBdLnJlcGxhY2UoLyheXFxzKiNcXHMqfFxccyojXFxzKiQpL2dpLCAnJyk7XG4gICAgZ3JvdXBPYmplY3QuaWQgPSBncm91cElkO1xuICAgIGdyb3VwT2JqZWN0Lm5hbWUgPSBncm91cE5hbWU7XG4gICAgZ3JvdXBzSW5kZXgucHVzaChncm91cE9iamVjdCk7XG4gIH0pO1xuICBncm91cHNJbmRleC5zb3J0KGNvbXBhcmVCeUZpcnN0VW5pcXVlV29yZCk7XG4gIGNvbnN0IGdyb3Vwc0luZGV4T3V0cHV0UGF0aCA9IHBhdGguam9pbihcbiAgICB0d091dHB1dFBhdGgsXG4gICAgZm9sZGVyTmFtZSxcbiAgICAnaW5kZXguanNvbicsXG4gICk7XG5cbiAgZnMub3V0cHV0SnNvblN5bmMoZ3JvdXBzSW5kZXhPdXRwdXRQYXRoLCBncm91cHNJbmRleCwge3NwYWNlczogMn0pO1xufVxuXG4vKipcbiAqIFNwbGl0cyB0aGUgc3RyaW5nIGludG8gd29yZHMgZGVsaW1pdGVkIGJ5IGNvbW1hcyBhbmQgY29tcGFyZXMgdGhlIGZpcnN0IHVuaXF1ZSB3b3JkXG4gKiBAcGFyYW0ge1N0cmluZ30gYSBmaXJzdCBzdHJpbmcgdG8gYmUgY29tcGFyZWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBiIHNlY29uZCBzdHJpbmcgdG8gYmUgY29tcGFyZWRcbiAqIEByZXR1cm4ge2ludH0gY29tcGFyaXNvbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gY29tcGFyZUJ5Rmlyc3RVbmlxdWVXb3JkKGEsIGIpIHtcbiAgY29uc3QgYVdvcmRzID0gYS5uYW1lLnRvVXBwZXJDYXNlKCkuc3BsaXQoJywnKTtcbiAgY29uc3QgYldvcmRzID0gYi5uYW1lLnRvVXBwZXJDYXNlKCkuc3BsaXQoJywnKTtcbiAgd2hpbGUgKGFXb3Jkcy5sZW5ndGggfHwgYldvcmRzLmxlbmd0aCkge1xuICAgIGlmICghYVdvcmRzLmxlbmd0aClcbiAgICAgIHJldHVybiAtMTtcbiAgICBpZiAoIWJXb3Jkcy5sZW5ndGgpXG4gICAgICByZXR1cm4gMTtcbiAgICBjb25zdCBhV29yZCA9IGFXb3Jkcy5zaGlmdCgpLnRyaW0oKTtcbiAgICBjb25zdCBiV29yZCA9IGJXb3Jkcy5zaGlmdCgpLnRyaW0oKTtcbiAgICBpZiAoYVdvcmQgIT09IGJXb3JkKVxuICAgICAgcmV0dXJuIChhV29yZCA8IGJXb3JkID8gLTEgOiAxKTtcbiAgfVxuICByZXR1cm4gMDsgLy8gYm90aCBsaXN0cyBhcmUgdGhlIHNhbWVcbn1cblxuLyoqXG4gKiBsb29rcyB1cCB0aGUgR0wgdGV4dCBmcm9tIGFuIGFsaWduZWQgR0wgYmlibGUgdXNpbmcgdGhlIE9yaWdpbmFsIExhbmd1YWdlXG4gKiBAcGFyYW0ge29iamVjdH0gdG9vbHNTZWxlY3RlZEdMc1xuICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHRJZFxuICogQHBhcmFtIHtvYmplY3R9IGJpYmxlc1xuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRUb29sTmFtZVxuICogQHJldHVybiB7c3RyaW5nfG51bGx9IHJldHVybnMgbnVsbCBpZiBlcnJvciBnZXR0aW5nIHRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsaWduZWRHTFRleHQoYWxpZ25lZEdsQmlibGUsIGNvbnRleHRJZCkge1xuICBpZiAoY29udGV4dElkKSB7XG4gICAgaWYgKCFhbGlnbmVkR2xCaWJsZSB8fCAhT2JqZWN0LmtleXMoYWxpZ25lZEdsQmlibGUpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGNvbnRleHRJZC5xdW90ZTtcbiAgICB9XG5cbiAgICBsZXQgdmVyc2VPYmplY3RzID0gdmVyc2VIZWxwZXJzLmdldEJlc3RWZXJzZUZyb21Cb29rKGFsaWduZWRHbEJpYmxlLCBjb250ZXh0SWQucmVmZXJlbmNlLmNoYXB0ZXIsIGNvbnRleHRJZC5yZWZlcmVuY2UudmVyc2UpXG4gICAgaWYgKHZlcnNlT2JqZWN0cz8udmVyc2VPYmplY3RzKSB7XG4gICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHM/LnZlcnNlT2JqZWN0c1xuICAgIH1cbiAgICBpZiAoY29udGV4dElkICkge1xuICAgICAgY29uc3QgYWxpZ25lZFRleHQgPSBnZXRBbGlnbmVkVGV4dCh2ZXJzZU9iamVjdHMsIGNvbnRleHRJZC5xdW90ZSwgY29udGV4dElkLm9jY3VycmVuY2UpO1xuXG4gICAgICBpZiAoYWxpZ25lZFRleHQpIHtcbiAgICAgICAgcmV0dXJuIGFsaWduZWRUZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB0aXRsZSBmcm9tIGdyb3VwSW5kZXhcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcnRpY2xlSWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBncm91cEluZGV4XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaXRsZUZyb21JbmRleChncm91cEluZGV4LCBhcnRpY2xlSWQpIHtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGdyb3VwSW5kZXggfHwgW10pIHtcbiAgICBpZiAoaXRlbS5pZCA9PT0gYXJ0aWNsZUlkKSB7XG4gICAgICByZXR1cm4gaXRlbS5uYW1lXG4gICAgfVxuICB9XG4gIHJldHVybiBhcnRpY2xlSWRcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBwaHJhc2UgZnJvbSB0V1xuICogQHBhcmFtIHtzdHJpbmd9IGFydGljbGVJZFxuICogQHBhcmFtIHtvYmplY3R9IGdsVHdEYXRhXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaHJhc2VGcm9tVHcoZ2xUd0RhdGEsIGFydGljbGVJZCkge1xuICBsZXQgY3VycmVudEFydGljbGUgPSAnJztcbiAgZ2xUd0RhdGEgPSBnbFR3RGF0YSB8fCB7fVxuXG4gIGZvciAoY29uc3QgZ3JvdXBJZCBvZiBPYmplY3Qua2V5cyhnbFR3RGF0YSkpIHtcbiAgICBsZXQgZ3JvdXAgPSBnbFR3RGF0YVtncm91cElkXVxuICAgIGlmIChncm91cD8uYXJ0aWNsZXMpIHtcbiAgICAgIGdyb3VwID0gZ3JvdXA/LmFydGljbGVzXG4gICAgfVxuICAgIGNvbnN0IGFydGljbGUgPSBncm91cD8uW2FydGljbGVJZF1cbiAgICBpZiAoYXJ0aWNsZSkge1xuICAgICAgY3VycmVudEFydGljbGUgPSBhcnRpY2xlXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghY3VycmVudEFydGljbGUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgc3BsaXRMaW5lID0gY3VycmVudEFydGljbGUuc3BsaXQoJ1xcbicpO1xuXG4gIGlmIChzcGxpdExpbmUubGVuZ3RoID09PSAxICYmIHNwbGl0TGluZVswXSA9PT0gJycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgZmluYWxBcnJheSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRMaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHNwbGl0TGluZVtpXSAhPT0gJycgJiYgIX5zcGxpdExpbmVbaV0uaW5kZXhPZignIycpKSB7XG4gICAgICBmaW5hbEFycmF5LnB1c2goc3BsaXRMaW5lW2ldKTtcbiAgICB9XG4gIH1cblxuICBsZXQgbWF4TGVuZ3RoID0gMjI1O1xuICBsZXQgZmluYWxTdHJpbmcgPSAnJztcbiAgbGV0IGNob3NlblN0cmluZyA9IGZpbmFsQXJyYXlbMF07XG4gIGxldCBzcGxpdFN0cmluZyA9IGNob3NlblN0cmluZy5zcGxpdCgnICcpO1xuXG4gIGZvciAobGV0IHdvcmQgb2Ygc3BsaXRTdHJpbmcpIHtcbiAgICBpZiAoKGZpbmFsU3RyaW5nICsgJyAnICsgd29yZCkubGVuZ3RoID49IG1heExlbmd0aCkge1xuICAgICAgZmluYWxTdHJpbmcgKz0gJy4uLic7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZmluYWxTdHJpbmcgKz0gJyAnO1xuICAgIGZpbmFsU3RyaW5nICs9IHdvcmQ7XG4gIH1cbiAgcmV0dXJuIGZpbmFsU3RyaW5nO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtB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
|
|
845
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbCIsInJlcXVpcmUiLCJyZXNvdXJjZXNIZWxwZXJzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdG5BcnRpY2xlSGVscGVycyIsInRzdnBhcnNlciIsIl9iaWJsZVJlZmVyZW5jZVJhbmdlIiwiX3dvcmRBbGlnbmVyTGliIiwiX3dvcmRPY2N1cnJlbmNlSGVscGVycyIsIl9lbGxpcHNpc0hlbHBlcnMiLCJfdmVyc2VIZWxwZXJzIiwiX2NvbnN0YW50cyIsIl90c3ZUb0dyb3VwRGF0YSIsIl9jaGVja0FyZWFIZWxwZXJzIiwiX2RlZXBFcXVhbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwiX19lc01vZHVsZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfcmVnZW5lcmF0b3IiLCJTeW1ib2wiLCJpdGVyYXRvciIsInRvU3RyaW5nVGFnIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwicCIsInkiLCJHIiwidiIsImEiLCJkIiwiYmluZCIsImxlbmd0aCIsImwiLCJUeXBlRXJyb3IiLCJkb25lIiwidmFsdWUiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsImRpc3BsYXlOYW1lIiwidyIsIm0iLCJfcmVnZW5lcmF0b3JEZWZpbmUiLCJfaW52b2tlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX25leHQiLCJfdGhyb3ciLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9uIiwiRiIsInMiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJjYXRlZ29yaXplR3JvdXBEYXRhIiwiZ3JvdXBEYXRhIiwiY2F0ZWdvcml6ZWRHcm91cERhdGEiLCJrdCIsIm5hbWVzIiwib3RoZXIiLCJjYXRlZ29yeV8iLCJjYXRlZ29yeSIsIml0ZW1zIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJpdGVtIiwiZ3JvdXBJZCIsImNvbnRleHRJZCIsImVyciIsImdlbmVyYXRlR3JvdXBEYXRhSXRlbSIsImV4cG9ydHMiLCJ0c3ZJdGVtIiwidG9vbE5hbWUiLCJ2ZXJzZVN0cmluZyIsIl90c3ZJdGVtJE9yaWdRdW90ZSIsIk9yaWdRdW90ZSIsInJlcGxhY2UiLCJ3b3JkT2NjdXJyZW5jZXNGb3JRdW90ZSIsImdldFdvcmRPY2N1cnJlbmNlc0ZvclF1b3RlIiwicXVvdGUiLCJoYXNFbGxpcHNpcyIsInF1b3RlU3RyaW5nIiwidHJpbSIsIkVMTElQU0lTIiwiX2NvbnZlcnRSZWZlcmVuY2UiLCJjb252ZXJ0UmVmZXJlbmNlIiwiY2hhcHRlciIsInZlcnNlIiwiY29tbWVudHMiLCJyZW1pbmRlcnMiLCJzZWxlY3Rpb25zIiwidmVyc2VFZGl0cyIsIm5vdGhpbmdUb1NlbGVjdCIsImNoZWNrSWQiLCJJRCIsIm9jY3VycmVuY2VOb3RlIiwiT2NjdXJyZW5jZU5vdGUiLCJyZWZlcmVuY2UiLCJib29rSWQiLCJCb29rIiwidG9Mb3dlckNhc2UiLCJ0b29sIiwiU3VwcG9ydFJlZmVyZW5jZSIsImdsUXVvdGUiLCJHTFF1b3RlIiwib2NjdXJyZW5jZSIsInBhcnNlSW50IiwiT2NjdXJyZW5jZSIsInRzdk9iamVjdHNUb0dyb3VwRGF0YSIsInRzdkl0ZW1zIiwib3JpZ0xhbmdCaWJsZSIsInJlc291cmNlc1BhdGgiLCJsYW5nSWQiLCJwYXJhbXMiLCJ0d0xpbmtNYXRjaCIsInR3TGlua1JFIiwiUmVnRXhwIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsIlJlZmVyZW5jZSIsIk9yaWdXb3JkcyIsIlRXTGluayIsInR3TGluayIsIm1hdGNoIiwiY29uc29sZSIsIndhcm4iLCJjb25jYXQiLCJDaGFwdGVyIiwiVmVyc2UiLCJDYXRhZ29yeSIsImdldFZlcnNlU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImtleSIsImdyb3VwRGF0YUl0ZW0iLCJjYXRlZ29yaXplZCIsImVycm9yIiwicGFyc2VSZWZlcmVuY2UiLCJyZWYiLCJjbGVhbmVkUmVmIiwiY2xlYW51cFJlZmVyZW5jZSIsInJlZl8iLCJ2ZXJzZVN0ciIsImlzU2FtZVZlcnNlQnlDb250ZXh0IiwiY29udGV4dElkMSIsImNvbnRleHRJZDIiLCJpc1NhbWVWZXJzZUJ5UmVmIiwicmVmZXJlbmNlMSIsInJlZmVyZW5jZTIiLCJmaW5kQ2hlY2siLCJncm91cHNEYXRhIiwiZGVmYXVsdFRvRmlyc3QiLCJ1bmRlZmluZWQiLCJjaGVjayIsImNoZWNrZWRCb29rIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJjYXRhZ29yeUl0ZW1zIiwiX2NhdGFnb3J5SXRlbXMkIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIml0ZW1Db250ZXh0SWQiLCJtYXRjaEZvdW5kIiwiaXNFcXVhbCIsImZpbmRGaXJzdENoZWNrIiwiZmluZE5leHRDaGVjayIsImdyb3Vwc0tleXMiLCJpZHgiLCJfY2F0YWdvcnlJdGVtcyQyIiwibmV4dEdyb3VwSWQiLCJuZXh0R3JvdXBJdGVtcyIsImZpbmRQcmV2aW91c0NoZWNrIiwiX2NhdGFnb3J5SXRlbXMkMyIsImdyb3VwS2V5cyIsImZpcnN0R3JvdXAiLCJ0d2xUc3ZUb0dyb3VwRGF0YSIsIl94IiwiX3gyIiwiX3gzIiwiX3R3bFRzdlRvR3JvdXBEYXRhIiwiX2NhbGxlZSIsInRzdkRhdGEiLCJwcm9qZWN0IiwiX3lpZWxkJHRzdkRhdGFUb09iamVjIiwidHN2SXRlbXNfIiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsInRzdkl0ZW1fIiwiX3QiLCJfY29udGV4dCIsImlkZW50aWZpZXIiLCJ0c3ZEYXRhVG9PYmplY3RzIiwibGFuZ3VhZ2VJZCIsImNvbnZlcnRFbGxpcHNpc1RvQW1wZXJzYW5kIiwicGFyc2VUd1RvSW5kZXgiLCJ0d0RhdGEiLCJpbmRleCIsIl9pMiIsIl9PYmplY3Qka2V5czIiLCJjYXRhZ29yeUlkIiwiY2F0YWdvcnkiLCJfeDQiLCJfdHN2RGF0YVRvT2JqZWN0cyIsIl9jYWxsZWUyIiwicGFyc2VFcnJvck1zZyIsImV4cGVjdGVkQ29sdW1ucyIsInRhYmxlT2JqZWN0IiwibXNnIiwicm93bnVtIiwiY29sc2ZvdW5kIiwiX2NvbnRleHQyIiwidHN2U3RyaW5nVG9UYWJsZSIsImVycm9ycyIsImhlYWRlciIsImRhdGEiLCJqb2luIiwibWFwIiwibGluZSIsInRzdlBhdGgiLCJnZW5lcmF0ZUdyb3Vwc0luZGV4IiwiZmlsZXNQYXRoIiwidHdPdXRwdXRQYXRoIiwiZm9sZGVyTmFtZSIsImdyb3Vwc0luZGV4IiwiZ3JvdXBJZHMiLCJmcyIsInJlYWRkaXJTeW5jIiwiZmlsZW5hbWUiLCJzcGxpdCIsInBvcCIsImZpbGVOYW1lIiwiZ3JvdXBPYmplY3QiLCJmaWxlUGF0aCIsInBhdGgiLCJhcnRpY2xlRmlsZSIsInJlYWRGaWxlU3luYyIsImdyb3VwTmFtZSIsImlkIiwic29ydCIsImNvbXBhcmVCeUZpcnN0VW5pcXVlV29yZCIsImdyb3Vwc0luZGV4T3V0cHV0UGF0aCIsIm91dHB1dEpzb25TeW5jIiwic3BhY2VzIiwiYiIsImFXb3JkcyIsInRvVXBwZXJDYXNlIiwiYldvcmRzIiwiYVdvcmQiLCJzaGlmdCIsImJXb3JkIiwiZ2V0QWxpZ25lZEdMVGV4dCIsImFsaWduZWRHbEJpYmxlIiwibG9nIiwiX3ZlcnNlT2JqZWN0cyIsInZlcnNlT2JqZWN0cyIsInZlcnNlSGVscGVycyIsImdldEJlc3RWZXJzZUZyb21Cb29rIiwiX3ZlcnNlT2JqZWN0czIiLCJhbGlnbmVkVGV4dCIsImdldEFsaWduZWRUZXh0IiwiZ2V0VGl0bGVGcm9tSW5kZXgiLCJncm91cEluZGV4IiwiYXJ0aWNsZUlkIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsImdldFBocmFzZUZyb21UdyIsImdsVHdEYXRhIiwiY3VycmVudEFydGljbGUiLCJfaTMiLCJfT2JqZWN0JGtleXMzIiwiX2dyb3VwIiwiX2dyb3VwMyIsImdyb3VwIiwiYXJ0aWNsZXMiLCJfZ3JvdXAyIiwiYXJ0aWNsZSIsInNwbGl0TGluZSIsImZpbmFsQXJyYXkiLCJpbmRleE9mIiwibWF4TGVuZ3RoIiwiZmluYWxTdHJpbmciLCJjaG9zZW5TdHJpbmciLCJzcGxpdFN0cmluZyIsIl9pdGVyYXRvcjUiLCJfc3RlcDUiLCJ3b3JkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvdHJhbnNsYXRpb25IZWxwcy90d0FydGljbGVIZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGN1cmx5ICovXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ3V0aWwnO1xuLy8gaW1wb3J0IHtcbi8vICAgZm9ybWF0QW5kU2F2ZUdyb3VwRGF0YSxcbi8vICAgZ2VuZXJhdGVHcm91cERhdGFJdGVtLFxuLy8gICBNYW5hZ2VSZXNvdXJjZSxcbi8vICAgcGFyc2VSZWZlcmVuY2UsXG4vLyAgIHRzdlRvT2JqZWN0cyxcbi8vIH0gZnJvbSAndHN2LWdyb3VwZGF0YS1wYXJzZXInO1xuLy8gaGVscGVyc1xuaW1wb3J0ICogYXMgcmVzb3VyY2VzSGVscGVycyBmcm9tICcuLi9yZXNvdXJjZXNIZWxwZXJzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtaW1wb3J0c1xuLy8gaW1wb3J0IHtnZXRSZXNvdXJjZU1hbmlmZXN0fSBmcm9tICcuLi9yZXNvdXJjZXNIZWxwZXJzJztcbi8vIGNvbnN0YW50c1xuLy8gaW1wb3J0ICogYXMgZXJyb3JzIGZyb20gJy4uLy4uL3Jlc291cmNlcy9lcnJvcnMnO1xuLy8gaW1wb3J0IHtnZXRPd25lckZvck9yaWdpbmFsTGFuZ3VhZ2V9IGZyb20gJy4uL2FwaUhlbHBlcnMnO1xuLy8gaW1wb3J0IHttYWtlU3VyZVJlc291cmNlVW56aXBwZWR9IGZyb20gJy4uL3VuemlwRmlsZUhlbHBlcnMnO1xuLy8gaW1wb3J0IHsgQklCTEVfQk9PS1MsIE5UX09SSUdfTEFORywgTlRfT1JJR19MQU5HX0JJQkxFLCBPVF9PUklHX0xBTkcsIE9UX09SSUdfTEFOR19CSUJMRSB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9iaWJsZSc7XG5pbXBvcnQge1xuICBjb252ZXJ0RWxsaXBzaXNUb0FtcGVyc2FuZCxcbn0gZnJvbSAnLi90bkFydGljbGVIZWxwZXJzJztcbmltcG9ydCAqIGFzIHRzdnBhcnNlciBmcm9tICd1dy10c3YtcGFyc2VyJztcbmltcG9ydCB7IGNsZWFudXBSZWZlcmVuY2UgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyB2ZXJzZUhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItbGliJ1xuaW1wb3J0IHsgZ2V0V29yZE9jY3VycmVuY2VzRm9yUXVvdGUgfSBmcm9tICcuL3dvcmRPY2N1cnJlbmNlSGVscGVycydcbmltcG9ydCB7IGhhc0VsbGlwc2lzIH0gZnJvbSAnLi4vdHN2LWdyb3VwZGF0YS1wYXJzZXIvZWxsaXBzaXNIZWxwZXJzJ1xuaW1wb3J0IHsgZ2V0VmVyc2VTdHJpbmcgfSBmcm9tICcuLi90c3YtZ3JvdXBkYXRhLXBhcnNlci92ZXJzZUhlbHBlcnMnXG5pbXBvcnQgeyBFTExJUFNJUyB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb25zdGFudHMnXG5pbXBvcnQgeyBjb252ZXJ0UmVmZXJlbmNlIH0gZnJvbSAnLi90c3ZUb0dyb3VwRGF0YSdcbmltcG9ydCB7IGdldEFsaWduZWRUZXh0IH0gZnJvbSAnLi4vLi4vdGNfdWlfdG9vbGtpdC9WZXJzZUNoZWNrL2hlbHBlcnMvY2hlY2tBcmVhSGVscGVycydcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG4vLyBpbXBvcnQgeyBkZWxheSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlbGF5JztcblxuLyoqXG4gKiBvcmdhbml6ZSBncm91cCBkYXRhIGJ5IGNhdGVnb3JpZXMgYW5kIGdyb3VwSURcbiAqIEBwYXJhbSB7YXJyYXl9IGdyb3VwRGF0YVxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5jb25zdCBjYXRlZ29yaXplR3JvdXBEYXRhID0gZ3JvdXBEYXRhID0+IHtcbiAgY29uc3QgY2F0ZWdvcml6ZWRHcm91cERhdGEgPSB7XG4gICAga3Q6IHt9LFxuICAgIG5hbWVzOiB7fSxcbiAgICBvdGhlcjoge30sXG4gIH07XG4gIE9iamVjdC5rZXlzKGdyb3VwRGF0YSkuZm9yRWFjaChjYXRlZ29yeV8gPT4ge1xuICAgIGxldCBjYXRlZ29yeSA9IGNhdGVnb3J5XztcbiAgICBjb25zdCBpdGVtcyA9IGdyb3VwRGF0YVtjYXRlZ29yeV07XG4gICAgaWYgKCFjYXRlZ29yaXplZEdyb3VwRGF0YVtjYXRlZ29yeV0pIHtcbiAgICAgIGNhdGVnb3J5ID0gJ290aGVyJzsgLy8gdW5rbm93biBjYXRlZ29yaWVzIGdvIGluIG90aGVyXG4gICAgfVxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgZ3JvdXBJZCA9IGl0ZW0uY29udGV4dElkICYmIGl0ZW0uY29udGV4dElkLmdyb3VwSWQ7XG4gICAgICBpZiAoZ3JvdXBJZCkge1xuICAgICAgICBpZiAoIWNhdGVnb3JpemVkR3JvdXBEYXRhW2NhdGVnb3J5XVtncm91cElkXSkge1xuICAgICAgICAgIGNhdGVnb3JpemVkR3JvdXBEYXRhW2NhdGVnb3J5XVtncm91cElkXSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNhdGVnb3JpemVkR3JvdXBEYXRhW2NhdGVnb3J5XVtncm91cElkXS5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBjYXRlZ29yaXplZEdyb3VwRGF0YTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZm9ybWF0dGVkIGdyb3VwRGF0YSBpdGVtIGZvciBhIGdpdmVuIHRzdiBpdGVtLlxuICogQHBhcmFtIHtvYmplY3R9IHRzdkl0ZW0gdHN2IGl0ZW0uXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9vbE5hbWUgdG9vbCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlU3RyaW5nXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBncm91cERhdGEgaXRlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdlbmVyYXRlR3JvdXBEYXRhSXRlbSA9ICh0c3ZJdGVtLCB0b29sTmFtZSwgdmVyc2VTdHJpbmcpID0+IHtcbiAgbGV0IHsgT3JpZ1F1b3RlID0gJycgfSA9IHRzdkl0ZW07XG4gIC8vIGNsZWFuIHF1b3RlIHN0cmluZ1xuICBPcmlnUXVvdGUgPSBPcmlnUXVvdGUucmVwbGFjZSgvIFxcJiAvZywgJyDigKYgJyk7IC8vIHRyZWF0IG5ldyBicmVhayBjaGFyYWN0ZXIgc2FtZSBhcyBlbGxpcHNpc1xuICAvLyBpZiBxdW90ZSBoYXMgbW9yZSB0aGFuIG9uZSB3b3JkIGdldCB3b3JkIG9jY3VycmVuY2VzXG4gIGNvbnN0IHdvcmRPY2N1cnJlbmNlc0ZvclF1b3RlID0gZ2V0V29yZE9jY3VycmVuY2VzRm9yUXVvdGUoT3JpZ1F1b3RlLCB2ZXJzZVN0cmluZywgdHJ1ZSk7IC8vIHVzZXMgdG9rZW5pemVyIHRvIGdldCBsaXN0IG9mIHdvcmRzIGhhbmRsZSB2YXJpb3VzIHB1bmN0dWF0aW9uIGFuZCBzcGFjaW5nIGNoYXJzXG4gIGNvbnN0IHF1b3RlID0gd29yZE9jY3VycmVuY2VzRm9yUXVvdGUubGVuZ3RoID4gMSB8fCBoYXNFbGxpcHNpcyhPcmlnUXVvdGUpID8gd29yZE9jY3VycmVuY2VzRm9yUXVvdGUgOiBPcmlnUXVvdGU7IC8vIG9ubHkgdXNlIGFycmF5IGlmIG1vcmUgdGhhbiBvbmUgd29yZCBmb3VuZFxuICBjb25zdCBxdW90ZVN0cmluZyA9IE9yaWdRdW90ZS50cmltKCkucmVwbGFjZSgvXFwuLi4vZ2ksIEVMTElQU0lTKTtcbiAgY29uc3QgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gY29udmVydFJlZmVyZW5jZSh0c3ZJdGVtKTtcbiAgcmV0dXJuIHtcbiAgICBjb21tZW50czogZmFsc2UsXG4gICAgcmVtaW5kZXJzOiBmYWxzZSxcbiAgICBzZWxlY3Rpb25zOiBmYWxzZSxcbiAgICB2ZXJzZUVkaXRzOiBmYWxzZSxcbiAgICBub3RoaW5nVG9TZWxlY3Q6IGZhbHNlLFxuICAgIGNvbnRleHRJZDoge1xuICAgICAgY2hlY2tJZDogdHN2SXRlbS5JRCB8fCAnJyxcbiAgICAgIG9jY3VycmVuY2VOb3RlOiB0c3ZJdGVtLk9jY3VycmVuY2VOb3RlIHx8ICcnLFxuICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgIGJvb2tJZDogdHN2SXRlbS5Cb29rLnRvTG93ZXJDYXNlKCkgfHwgJycsXG4gICAgICAgIGNoYXB0ZXI6IGNoYXB0ZXIgfHwgJycsXG4gICAgICAgIHZlcnNlOiB2ZXJzZSB8fCAnJyxcbiAgICAgIH0sXG4gICAgICB0b29sOiB0b29sTmFtZSB8fCAnJyxcbiAgICAgIGdyb3VwSWQ6IHRzdkl0ZW0uU3VwcG9ydFJlZmVyZW5jZSB8fCAnJyxcbiAgICAgIHF1b3RlLFxuICAgICAgcXVvdGVTdHJpbmcsXG4gICAgICBnbFF1b3RlOiB0c3ZJdGVtLkdMUXVvdGUgfHwgJycsXG4gICAgICBvY2N1cnJlbmNlOiBwYXJzZUludCh0c3ZJdGVtLk9jY3VycmVuY2UsIDEwKSB8fCAxLFxuICAgIH0sXG4gIH07XG59O1xuXG5cbi8qKlxuICogUGFyc2VzIGxpc3Qgb2YgdHN2IGl0ZW1zIGFuZCByZXR1cm5zIGFuIG9iamVjdCBob2xkaW5nIHRoZSBsaXN0cyBvZiBncm91cCBpZHMuXG4gKiBAcGFyYW0ge0FycmF5fSB0c3ZJdGVtcyAtIGxpc3Qgb2YgaXRlbXMgdG8gcHJvY2Vzc1xuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsQmlibGVQYXRoIHBhdGggdG8gb3JpZ2luYWwgYmlibGUuXG4gKiAgICAgICAgZS5nLiAvcmVzb3VyY2VzL2VsLXgta29pbmUvYmlibGVzL3VnbnQvdjAuMTFcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXNvdXJjZXNQYXRoIHBhdGggdG8gdGhlIHJlc291cmNlcyBkaXJcbiAqICAgICAgZS5nLiAvVXNlci9qb2huL3RyYW5zbGF0aW9uQ29yZS9yZXNvdXJjZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5nSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b29sTmFtZSB0QyB0b29sIG5hbWUuXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zIFdoZW4gaXQgaW5jbHVkZXMgeyBjYXRlZ29yaXplZDogdHJ1ZSB9XG4gKiAgICAgIHRoZW4gaXQgcmV0dXJucyB0aGUgb2JqZWN0IG9yZ2FuaXplZCBieSB0biBhcnRpY2xlIGNhdGVnb3J5LlxuICogQHJldHVybiB7T2JqZWN0fSAtIGdyb3VwRGF0YVxuICovXG5mdW5jdGlvbiB0c3ZPYmplY3RzVG9Hcm91cERhdGEodHN2SXRlbXMsIG9yaWdMYW5nQmlibGUsIHJlc291cmNlc1BhdGgsIGJvb2tJZCwgbGFuZ0lkLCB0b29sTmFtZSwgcGFyYW1zKSB7XG4gIGNvbnN0IGdyb3VwRGF0YSA9IHt9O1xuICBjb25zdCB0d0xpbmtNYXRjaCA9IC9ecmM6XFwvXFwvXFwqXFwvdHdcXC9kaWN0XFwvYmlibGVcXC8oXFx3KylcXC8oW1xcd1xcZF0rKS87XG4gIGNvbnN0IHR3TGlua1JFID0gbmV3IFJlZ0V4cCh0d0xpbmtNYXRjaCk7XG4gIGJvb2tJZCA9IGJvb2tJZC50b0xvd2VyQ2FzZSgpO1xuXG4gIHRyeSB7XG4gICAgLy8gY29uc3QgcmVzb3VyY2VBcGkgPSBuZXcgTWFuYWdlUmVzb3VyY2Uob3JpZ2luYWxCaWJsZVBhdGgsIGJvb2tJZCk7XG5cbiAgICBmb3IgKGNvbnN0IHRzdkl0ZW0gb2YgdHN2SXRlbXMpIHtcbiAgICAgIGlmICh0c3ZJdGVtLlJlZmVyZW5jZSAmJiB0c3ZJdGVtLklEICYmIHRzdkl0ZW0uT3JpZ1dvcmRzICYmIHRzdkl0ZW0uT2NjdXJyZW5jZSAmJiB0c3ZJdGVtLlRXTGluaykge1xuLy8gICAgICAgIGNvbnN0IHRhZ3MgPSBjbGVhbkdyb3VwSWQodHN2SXRlbS5UYWdzKSB8fCAnb3RoZXInO1xuICAgICAgICBjb25zdCB0d0xpbmsgPSB0c3ZJdGVtLlRXTGluay5tYXRjaCh0d0xpbmtSRSk7XG4gICAgICAgIGlmICghdHdMaW5rKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGludmFsaWQgVFdMaW5rOiAke3Rzdkl0ZW0uVFdMaW5rfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhcHRlciA9IHRzdkl0ZW0uQ2hhcHRlcjtcbiAgICAgICAgY29uc3QgdmVyc2UgPSB0c3ZJdGVtLlZlcnNlO1xuICAgICAgICB0c3ZJdGVtLkJvb2sgPSBib29rSWQ7XG4gICAgICAgIHRzdkl0ZW0uQ2hhcHRlciA9IGNoYXB0ZXI7XG4gICAgICAgIHRzdkl0ZW0uVmVyc2UgPSB2ZXJzZTtcbiAgICAgICAgdHN2SXRlbS5PcmlnUXVvdGUgPSB0c3ZJdGVtLk9yaWdXb3JkcztcbiAgICAgICAgdHN2SXRlbS5DYXRhZ29yeSA9IHR3TGlua1sxXTtcbiAgICAgICAgdHN2SXRlbS5TdXBwb3J0UmVmZXJlbmNlID0gdHdMaW5rWzJdO1xuICAgICAgICBsZXQgdmVyc2VTdHJpbmcgPSBudWxsO1xuXG4gICAgICAgIGlmICghdHN2SXRlbS5DYXRhZ29yeSB8fCAhdHN2SXRlbS5TdXBwb3J0UmVmZXJlbmNlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGludmFsaWQgVFdMaW5rOiAke3Rzdkl0ZW0uVFdMaW5rfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2ZXJzZVN0cmluZyA9IGdldFZlcnNlU3RyaW5nKG9yaWdMYW5nQmlibGUsIHRzdkl0ZW0uUmVmZXJlbmNlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChwYXJzZUludChjaGFwdGVyLCAxMCkgJiYgcGFyc2VJbnQodmVyc2UsIDEwKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGVycm9yIGdldHRpbmcgdmVyc2Ugc3RyaW5nOiBjaGFwdGVyICR7Y2hhcHRlcn0sIHZlcnNlICR7dmVyc2V9IGZyb20gJHtKU09OLnN0cmluZ2lmeSh0c3ZJdGVtKX1gLCBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmVyc2VTdHJpbmcpIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSB0c3ZJdGVtLkNhdGFnb3J5O1xuICAgICAgICAgIGNvbnN0IGdyb3VwRGF0YUl0ZW0gPSBnZW5lcmF0ZUdyb3VwRGF0YUl0ZW0odHN2SXRlbSwgdG9vbE5hbWUsIHZlcnNlU3RyaW5nKTtcbiAgICAgICAgICBpZiAoZ3JvdXBEYXRhW2tleV0pIHtcbiAgICAgICAgICAgIGdyb3VwRGF0YVtrZXldLnB1c2goZ3JvdXBEYXRhSXRlbSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdyb3VwRGF0YVtrZXldID0gW2dyb3VwRGF0YUl0ZW1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKCd0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGVycm9yIHByb2Nlc3NpbmcgaXRlbTonLCBKU09OLnN0cmluZ2lmeSh0c3ZJdGVtKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcyAmJiBwYXJhbXMuY2F0ZWdvcml6ZWQgPyBjYXRlZ29yaXplR3JvdXBEYXRhKGdyb3VwRGF0YSkgOiBncm91cERhdGE7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGB0c3ZPYmplY3RzVG9Hcm91cERhdGEoKSAtIGVycm9yIHByb2Nlc3NpbmcgVFNWc2AsIGUpO1xuICAgIHRocm93IGU7XG4gIH1cbn1cblxuLyoqXG4gKiBzZXBhcmF0ZSBhIHJlZmVyZW5jZSBzdHJpbmcgc3VjaCBhcyBcIjE6MVwiIGludG8gY2hhcHRlciBhbmQgdmVyc2UgYW5kIGFkZCBhIHZlcnNlU3RyIGZvciByZWZlcmVuY2VzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2ZXJzZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWYgLSByZWZlcmVuY2Ugc3RyaW5nXG4gKiBAcmV0dXJuIHt7Q2hhcHRlciwgVmVyc2V9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWZlcmVuY2UocmVmKSB7XG4gIGNvbnN0IGNsZWFuZWRSZWYgPSBjbGVhbnVwUmVmZXJlbmNlKHJlZik7XG4gIGNvbnN0IHJlZl8gPSB7XG4gICAgQ2hhcHRlcjogY2xlYW5lZFJlZi5jaGFwdGVyLFxuICAgIFZlcnNlOiBjbGVhbmVkUmVmLnZlcnNlICsgJycsXG4gIH07XG5cbiAgaWYgKGNsZWFuZWRSZWYudmVyc2VTdHIpIHtcbiAgICByZWZfLnZlcnNlU3RyID0gY2xlYW5lZFJlZi52ZXJzZVN0cjtcbiAgfVxuICByZXR1cm4gcmVmXztcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgY29udGV4dCBJRHMgYXJlIGZvciBzYW1lIHZlcnNlLiAgT3B0aW1pemVkIG92ZXIgaXNFcXVhbCgpXG4gKiBAcGFyYW0ge09iamVjdH0gY29udGV4dElkMVxuICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHRJZDJcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHJldHVybnMgdHJ1ZSBpZiBjb250ZXh0IElEcyBhcmUgZm9yIHNhbWUgdmVyc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZVZlcnNlQnlDb250ZXh0KGNvbnRleHRJZDEsIGNvbnRleHRJZDIpIHtcbiAgcmV0dXJuIChjb250ZXh0SWQxLnJlZmVyZW5jZS5jaGFwdGVyID09IGNvbnRleHRJZDIucmVmZXJlbmNlLmNoYXB0ZXIpICYmIC8vIFRSSUNLWTogd2UgYXJlIGFsbG93aW5nIGNvZXJjaW9uIHNpbmNlIGNoYXB0ZXJzIGFuZCB2ZXJzZXMgY291bGQgYmUgZWl0aGVyIHN0cmluZ3Mgb3IgbnVtYmVyc1xuICAgIChjb250ZXh0SWQxLnJlZmVyZW5jZS52ZXJzZSA9PSBjb250ZXh0SWQyLnJlZmVyZW5jZS52ZXJzZSk7XG59XG5cbi8qKlxuICogbWFrZSBzdXJlIGNvbnRleHQgSURzIGFyZSBmb3Igc2FtZSB2ZXJzZS4gIE9wdGltaXplZCBvdmVyIGlzRXF1YWwoKVxuICogQHBhcmFtIHtPYmplY3R9IHJlZmVyZW5jZTFcbiAqIEBwYXJhbSB7T2JqZWN0fSByZWZlcmVuY2UyXG4gKiBAcmV0dXJuIHtib29sZWFufSByZXR1cm5zIHRydWUgaWYgY29udGV4dCBJRHMgYXJlIGZvciBzYW1lIHZlcnNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVWZXJzZUJ5UmVmKHJlZmVyZW5jZTEsIHJlZmVyZW5jZTIpIHtcbiAgcmV0dXJuIChyZWZlcmVuY2UxLmNoYXB0ZXIgPT0gcmVmZXJlbmNlMi5jaGFwdGVyKSAmJiAvLyBUUklDS1k6IHdlIGFyZSBhbGxvd2luZyBjb2VyY2lvbiBzaW5jZSBjaGFwdGVycyBhbmQgdmVyc2VzIGNvdWxkIGJlIGVpdGhlciBzdHJpbmdzIG9yIG51bWJlcnNcbiAgICAocmVmZXJlbmNlMS52ZXJzZSA9PSByZWZlcmVuY2UyLnZlcnNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDaGVjayhncm91cHNEYXRhLCBjb250ZXh0SWQsIGRlZmF1bHRUb0ZpcnN0ID0gZmFsc2UpIHtcbiAgbGV0IGNoZWNrID0gbnVsbFxuICBsZXQgY2hlY2tlZEJvb2sgPSBmYWxzZTtcbiAgaWYgKGdyb3Vwc0RhdGEgJiYgY29udGV4dElkPy5yZWZlcmVuY2UpIHtcbiAgICBmb3IgKGNvbnN0IGdyb3VwSWQgb2YgT2JqZWN0LmtleXMoZ3JvdXBzRGF0YSkpIHtcbiAgICAgIGlmIChncm91cElkID09PSBjb250ZXh0SWQuZ3JvdXBJZCkge1xuICAgICAgICBjb25zdCBjYXRhZ29yeUl0ZW1zID0gZ3JvdXBzRGF0YVtncm91cElkXVxuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBjb250ZXh0SWQ/LnJlZmVyZW5jZVxuICAgICAgICBpZiAoIWNoZWNrZWRCb29rICYmIGNhdGFnb3J5SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHJlZmVyZW5jZT8uYm9va0lkICE9PSBjYXRhZ29yeUl0ZW1zWzBdPy5jb250ZXh0SWQ/LnJlZmVyZW5jZT8uYm9va0lkKSB7XG4gICAgICAgICAgICBicmVhazsgLy8gY29udGV4dCBpZCBpcyBmb3IgZGlmZmVyZW5jZSBib29rXG4gICAgICAgICAgfVxuICAgICAgICAgIGNoZWNrZWRCb29rID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY2F0YWdvcnlJdGVtcykge1xuICAgICAgICAgICAgY29uc3QgaXRlbUNvbnRleHRJZCA9IGl0ZW0uY29udGV4dElkXG4gICAgICAgICAgICBpZiAoaXNTYW1lVmVyc2VCeVJlZihyZWZlcmVuY2UsIGl0ZW1Db250ZXh0SWQ/LnJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgbGV0IG1hdGNoRm91bmQgPSBmYWxzZVxuICAgICAgICAgICAgICBpZiAoY29udGV4dElkLmNoZWNrSWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29udGV4dElkLmNoZWNrSWQgPT09IGl0ZW1Db250ZXh0SWQ/LmNoZWNrSWQpIHtcbiAgICAgICAgICAgICAgICAgIG1hdGNoRm91bmQgPSB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgLy8gaWYgbm8gY2hlY2tJZCwgZmFsbCBiYWNrIHRvIG1hdGNoaW5nIHF1b3RlIGFuZCBvY2N1cnJlbmNlXG4gICAgICAgICAgICAgIGlmIChpc0VxdWFsKGNvbnRleHRJZC5xdW90ZSwgaXRlbUNvbnRleHRJZD8ucXVvdGUpICYmIChjb250ZXh0SWQub2NjdXJyZW5jZSA9PT0gaXRlbUNvbnRleHRJZD8ub2NjdXJyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICBtYXRjaEZvdW5kID0gdHJ1ZVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKG1hdGNoRm91bmQpIHtcbiAgICAgICAgICAgICAgICBjaGVjayA9IGl0ZW1cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrIC8vIHdoZW4gZmluaXNoZWQgY2hlY2tpbmcgYWxsIGl0ZW1zIGluIGdyb3VwSWQsIHRoZXJlIGlzIG5vIHBvaW50IHRvIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghY2hlY2sgJiYgZGVmYXVsdFRvRmlyc3QpIHtcbiAgICBjaGVjayA9IGZpbmRGaXJzdENoZWNrKGdyb3Vwc0RhdGEpXG4gIH1cbiAgcmV0dXJuIGNoZWNrXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTmV4dENoZWNrKGdyb3Vwc0RhdGEsIGNvbnRleHRJZCwgZGVmYXVsdFRvRmlyc3QgPSBmYWxzZSkge1xuICBsZXQgY2hlY2sgPSBudWxsXG4gIGxldCBjaGVja2VkQm9vayA9IGZhbHNlO1xuICBsZXQgbWF0Y2hGb3VuZCA9IGZhbHNlXG4gIGlmIChncm91cHNEYXRhICYmIGNvbnRleHRJZD8ucmVmZXJlbmNlKSB7XG4gICAgY29uc3QgZ3JvdXBzS2V5cyA9IE9iamVjdC5rZXlzKGdyb3Vwc0RhdGEpXG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZ3JvdXBzS2V5cy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICBjb25zdCBncm91cElkID0gZ3JvdXBzS2V5c1tpZHhdXG4gICAgICBpZiAoZ3JvdXBJZCA9PT0gY29udGV4dElkLmdyb3VwSWQpIHtcbiAgICAgICAgY29uc3QgY2F0YWdvcnlJdGVtcyA9IGdyb3Vwc0RhdGFbZ3JvdXBJZF1cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gY29udGV4dElkPy5yZWZlcmVuY2VcbiAgICAgICAgaWYgKCFjaGVja2VkQm9vayAmJiBjYXRhZ29yeUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIGlmIChyZWZlcmVuY2U/LmJvb2tJZCAhPT0gY2F0YWdvcnlJdGVtc1swXT8uY29udGV4dElkPy5yZWZlcmVuY2U/LmJvb2tJZCkge1xuICAgICAgICAgICAgYnJlYWs7IC8vIGNvbnRleHQgaWQgaXMgZm9yIGRpZmZlcmVuY2UgYm9va1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja2VkQm9vayA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRhZ29yeUl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gY2F0YWdvcnlJdGVtc1tpXVxuICAgICAgICAgICAgY29uc3QgaXRlbUNvbnRleHRJZCA9IGl0ZW0uY29udGV4dElkXG4gICAgICAgICAgICBpZiAoaXNTYW1lVmVyc2VCeVJlZihyZWZlcmVuY2UsIGl0ZW1Db250ZXh0SWQ/LnJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkID09PSBpdGVtQ29udGV4dElkPy5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgICBtYXRjaEZvdW5kID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIC8vIGlmIG5vIGNoZWNrSWQsIGZhbGwgYmFjayB0byBtYXRjaGluZyBxdW90ZSBhbmQgb2NjdXJyZW5jZVxuICAgICAgICAgICAgICBpZiAoaXNFcXVhbChjb250ZXh0SWQucXVvdGUsIGl0ZW1Db250ZXh0SWQ/LnF1b3RlKSAmJiAoY29udGV4dElkLm9jY3VycmVuY2UgPT09IGl0ZW1Db250ZXh0SWQ/Lm9jY3VycmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hGb3VuZCA9IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF0Y2hGb3VuZCkgeyAvLyBpZiBtYXRjaCB3YXMgZm91bmQsIHRoZW4gbW92ZSB0byBuZXh0IGNoZWNrXG4gICAgICAgICAgICAgIGlmIChpIDwgY2F0YWdvcnlJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgY2hlY2sgPSBjYXRhZ29yeUl0ZW1zW2kgKyAxXVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlkeCA8IGdyb3Vwc0tleXMubGVuZ3RoIC0gMSkgeyAvLyBtb3ZlIHRvIGZpcnN0IGl0ZW0gaW4gbmV4dCBncm91cFxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cElkID0gZ3JvdXBzS2V5c1tpZHggKyAxXVxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cEl0ZW1zID0gZ3JvdXBzRGF0YVtuZXh0R3JvdXBJZF1cbiAgICAgICAgICAgICAgICBjaGVjayA9IG5leHRHcm91cEl0ZW1zWzBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWsgLy8gd2hlbiBmaW5pc2hlZCBjaGVja2luZyBhbGwgaXRlbXMgaW4gZ3JvdXBJZCwgdGhlcmUgaXMgbm8gcG9pbnQgdG8gY29udGludWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFjaGVjayAmJiBkZWZhdWx0VG9GaXJzdCkge1xuICAgIGNoZWNrID0gZmluZEZpcnN0Q2hlY2soZ3JvdXBzRGF0YSlcbiAgfVxuICByZXR1cm4gY2hlY2tcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQcmV2aW91c0NoZWNrKGdyb3Vwc0RhdGEsIGNvbnRleHRJZCwgZGVmYXVsdFRvRmlyc3QgPSBmYWxzZSkge1xuICBsZXQgY2hlY2sgPSBudWxsXG4gIGxldCBjaGVja2VkQm9vayA9IGZhbHNlO1xuICBsZXQgbWF0Y2hGb3VuZCA9IGZhbHNlXG4gIGlmIChncm91cHNEYXRhICYmIGNvbnRleHRJZD8ucmVmZXJlbmNlKSB7XG4gICAgY29uc3QgZ3JvdXBzS2V5cyA9IE9iamVjdC5rZXlzKGdyb3Vwc0RhdGEpXG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZ3JvdXBzS2V5cy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICBjb25zdCBncm91cElkID0gZ3JvdXBzS2V5c1tpZHhdXG4gICAgICBpZiAoZ3JvdXBJZCA9PT0gY29udGV4dElkLmdyb3VwSWQpIHtcbiAgICAgICAgY29uc3QgY2F0YWdvcnlJdGVtcyA9IGdyb3Vwc0RhdGFbZ3JvdXBJZF1cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gY29udGV4dElkPy5yZWZlcmVuY2VcbiAgICAgICAgaWYgKCFjaGVja2VkQm9vayAmJiBjYXRhZ29yeUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIGlmIChyZWZlcmVuY2U/LmJvb2tJZCAhPT0gY2F0YWdvcnlJdGVtc1swXT8uY29udGV4dElkPy5yZWZlcmVuY2U/LmJvb2tJZCkge1xuICAgICAgICAgICAgYnJlYWs7IC8vIGNvbnRleHQgaWQgaXMgZm9yIGRpZmZlcmVuY2UgYm9va1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja2VkQm9vayA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRhZ29yeUl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gY2F0YWdvcnlJdGVtc1tpXVxuICAgICAgICAgICAgY29uc3QgaXRlbUNvbnRleHRJZCA9IGl0ZW0uY29udGV4dElkXG4gICAgICAgICAgICBpZiAoaXNTYW1lVmVyc2VCeVJlZihyZWZlcmVuY2UsIGl0ZW1Db250ZXh0SWQ/LnJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRJZC5jaGVja0lkID09PSBpdGVtQ29udGV4dElkPy5jaGVja0lkKSB7XG4gICAgICAgICAgICAgICAgICBtYXRjaEZvdW5kID0gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIC8vIGlmIG5vIGNoZWNrSWQsIGZhbGwgYmFjayB0byBtYXRjaGluZyBxdW90ZSBhbmQgb2NjdXJyZW5jZVxuICAgICAgICAgICAgICBpZiAoaXNFcXVhbChjb250ZXh0SWQucXVvdGUsIGl0ZW1Db250ZXh0SWQ/LnF1b3RlKSAmJiAoY29udGV4dElkLm9jY3VycmVuY2UgPT09IGl0ZW1Db250ZXh0SWQ/Lm9jY3VycmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hGb3VuZCA9IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF0Y2hGb3VuZCkgeyAvLyBpZiBtYXRjaCB3YXMgZm91bmQsIHRoZW4gbW92ZSB0byBwcmV2aW91cyBjaGVja1xuICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICBjaGVjayA9IGNhdGFnb3J5SXRlbXNbaSAtIDFdXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaWR4ID4gMCkgeyAvLyBtb3ZlIHRvIGZpcnN0IGl0ZW0gaW4gbmV4dCBncm91cFxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cElkID0gZ3JvdXBzS2V5c1tpZHggLSAxXVxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRHcm91cEl0ZW1zID0gZ3JvdXBzRGF0YVtuZXh0R3JvdXBJZF1cbiAgICAgICAgICAgICAgICBjaGVjayA9IG5leHRHcm91cEl0ZW1zW25leHRHcm91cEl0ZW1zLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWsgLy8gd2hlbiBmaW5pc2hlZCBjaGVja2luZyBhbGwgaXRlbXMgaW4gZ3JvdXBJZCwgdGhlcmUgaXMgbm8gcG9pbnQgdG8gY29udGludWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFjaGVjayAmJiBkZWZhdWx0VG9GaXJzdCkge1xuICAgIGNoZWNrID0gZmluZEZpcnN0Q2hlY2soZ3JvdXBzRGF0YSlcbiAgfVxuICByZXR1cm4gY2hlY2tcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGaXJzdENoZWNrKGdyb3Vwc0RhdGEpIHtcbiAgbGV0IGNoZWNrID0gbnVsbFxuICBjb25zdCBncm91cEtleXMgPSBncm91cHNEYXRhICYmIE9iamVjdC5rZXlzKGdyb3Vwc0RhdGEpXG4gIGlmIChncm91cEtleXM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IGZpcnN0R3JvdXAgPSBncm91cHNEYXRhW2dyb3VwS2V5c1swXV1cbiAgICBpZiAoZmlyc3RHcm91cD8ubGVuZ3RoKSB7XG4gICAgICBjaGVjayA9IGZpcnN0R3JvdXBbMF1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNoZWNrXG59XG5cblxuLyoqXG4gKiBwcm9jZXNzIHRoZSBUU1YgZmlsZSBpbnRvIGluZGV4IGZpbGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gdHN2RGF0YVxuICogQHBhcmFtIHtvYmplY3R9IHByb2plY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXNvdXJjZXNQYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxCaWJsZVBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRQYXRoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0d2xUc3ZUb0dyb3VwRGF0YSh0c3ZEYXRhLCBwcm9qZWN0LCBvcmlnTGFuZ0JpYmxlKSB7XG4gIGNvbnN0IGJvb2tJZCA9IHByb2plY3QuaWRlbnRpZmllcjtcbiAgbGV0IGdyb3VwRGF0YTtcbiAgY29uc3Qge1xuICAgIHRzdkl0ZW1zLFxuICAgIGVycm9yLFxuICB9ID0gYXdhaXQgdHN2RGF0YVRvT2JqZWN0cyh0c3ZEYXRhKTtcblxuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIGNvbnN0IHRzdkl0ZW1zXyA9IFtdO1xuICBmb3IgKGNvbnN0IHRzdkl0ZW0gb2YgdHN2SXRlbXMpIHtcbiAgICBjb25zdCBjbGVhbmVkUmVmID0gcGFyc2VSZWZlcmVuY2UodHN2SXRlbS5SZWZlcmVuY2UpO1xuICAgIGNvbnN0IHRzdkl0ZW1fID0ge1xuICAgICAgLi4udHN2SXRlbSxcbiAgICAgIC4uLmNsZWFuZWRSZWYsXG4gICAgfTtcbiAgICB0c3ZJdGVtc18ucHVzaCh0c3ZJdGVtXyk7XG4gIH1cblxuICB0cnkge1xuICAgIGdyb3VwRGF0YSA9IHRzdk9iamVjdHNUb0dyb3VwRGF0YSh0c3ZJdGVtc18sIG9yaWdMYW5nQmlibGUsIFwiXCIsIGJvb2tJZCwgcHJvamVjdC5sYW5ndWFnZUlkLCAndHJhbnNsYXRpb25Xb3JkcycsIHtjYXRlZ29yaXplZDogdHJ1ZX0pO1xuICAgIGNvbnZlcnRFbGxpcHNpc1RvQW1wZXJzYW5kKGdyb3VwRGF0YSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGB0d0FydGljbGVIZWxwZXJzLnR3bFRzdlRvR3JvdXBEYXRhKCkgLSBlcnJvciBwcm9jZXNzaW5nIGdyb3VwIGRhdGFgLCBlKTtcbiAgICB0aHJvdyBlO1xuICB9XG4gIHJldHVybiBncm91cERhdGE7XG59XG5cbi8qKlxuICogcGFyc2UgdGhlIHR3RGF0YSBpbnRvIGEgZmxhdCBpbmRleFxuICogQHBhcmFtIHtvYmplY3R9IHR3RGF0YVxuICogQHJldHVybnMge2FycmF5fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUd1RvSW5kZXgodHdEYXRhKSB7XG4gIGxldCBpbmRleCA9IFtdXG4gIGZvciAoY29uc3QgY2F0YWdvcnlJZCBvZiBPYmplY3Qua2V5cyh0d0RhdGEpKSB7XG4gICAgY29uc3QgY2F0YWdvcnkgPSB0d0RhdGFbY2F0YWdvcnlJZF1cbiAgICBpZiAoY2F0YWdvcnk/LmluZGV4KSB7XG4gICAgICBpbmRleCA9IGluZGV4LmNvbmNhdChjYXRhZ29yeT8uaW5kZXgpXG4gICAgfVxuICB9XG4gIHJldHVybiBpbmRleFxufVxuXG4vKipcbiAqIHByb2Nlc3MgdGhlIFRTViBmaWxlIGludG8gaW5kZXggZmlsZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0c3ZEYXRhXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHN2RGF0YVRvT2JqZWN0cyh0c3ZEYXRhKSB7XG4gIC8vIGNvbnNvbGUubG9nKHRzdkxpbmVzKTtcbiAgbGV0IHRzdkl0ZW1zO1xuICBsZXQgcGFyc2VFcnJvck1zZztcbiAgbGV0IGVycm9yO1xuICBsZXQgZXhwZWN0ZWRDb2x1bW5zID0gMDtcbiAgY29uc3QgdGFibGVPYmplY3QgPSB0c3ZwYXJzZXIudHN2U3RyaW5nVG9UYWJsZSh0c3ZEYXRhKTtcblxuICBpZiAoIHRhYmxlT2JqZWN0LmVycm9ycy5sZW5ndGggPiAwICkge1xuICAgIHBhcnNlRXJyb3JNc2cgPSAnJztcbiAgICBleHBlY3RlZENvbHVtbnMgPSB0YWJsZU9iamVjdC5oZWFkZXIubGVuZ3RoO1xuXG4gICAgZm9yIChsZXQgaT0wOyBpPHRhYmxlT2JqZWN0LmVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG1zZztcbiAgICAgIGNvbnN0IHJvd251bSA9IHRhYmxlT2JqZWN0LmVycm9yc1tpXVswXSAtIDE7IC8vIGFkanVzdCBmb3IgZGF0YSB0YWJsZSB3aXRob3V0IGhlYWRlciByb3dcbiAgICAgIGNvbnN0IGNvbHNmb3VuZCA9IHRhYmxlT2JqZWN0LmVycm9yc1tpXVsxXTtcblxuICAgICAgaWYgKCBjb2xzZm91bmQgPiBleHBlY3RlZENvbHVtbnMgKSB7XG4gICAgICAgIG1zZyA9ICdSb3cgaXMgdG9vIGxvbmcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbXNnID0gJ1JvdyBpcyB0b28gc2hvcnQnO1xuICAgICAgfVxuICAgICAgcGFyc2VFcnJvck1zZyArPSBgXFxuXFxuJHttc2d9OmA7XG4gICAgICBwYXJzZUVycm9yTXNnICs9ICdcXG4nICsgdGFibGVPYmplY3QuZGF0YVtyb3dudW1dLmpvaW4oJywnKTtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKGB0d0FydGljbGVIZWxwZXJzLnR3bFRzdlRvR3JvdXBEYXRhKCkgLSB0YWJsZSBwYXJzZSBlcnJvcnMgZm91bmQ6ICR7cGFyc2VFcnJvck1zZ31gKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdHN2SXRlbXMgPSB0YWJsZU9iamVjdC5kYXRhLm1hcChsaW5lID0+IHtcbiAgICAgIGNvbnN0IHRzdkl0ZW0gPSB7fTtcbiAgICAgIGNvbnN0IGwgPSB0YWJsZU9iamVjdC5oZWFkZXIubGVuZ3RoO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICBjb25zdCBrZXkgPSB0YWJsZU9iamVjdC5oZWFkZXJbaV07XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbGluZVtpXSB8fCAnJztcbiAgICAgICAgdHN2SXRlbVtrZXldID0gdmFsdWUudHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRzdkl0ZW07XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGB0d0FydGljbGVIZWxwZXJzLnR3bFRzdlRvR3JvdXBEYXRhKCkgLSBlcnJvciBwcm9jZXNzaW5nIGZpbGVwYXRoOiAke3RzdlBhdGh9YCwgZSk7XG4gICAgZXJyb3IgPSBlO1xuICB9XG4gIHJldHVybiB7XG4gICAgdHN2SXRlbXMsXG4gICAgcGFyc2VFcnJvck1zZyxcbiAgICBlcnJvcixcbiAgICBleHBlY3RlZENvbHVtbnMsXG4gIH07XG59XG5cblxuLy8gLyoqXG4vLyAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIHRoZSBleHRyYWN0ZWQgZmlsZXMgZm9yIHRyYW5zbGF0aW9uV29yZCB0byBjcmVhdGUgdGhlIGZvbGRlclxuLy8gICogc3RydWN0dXJlIGFuZCBwcm9kdWNlIHRoZSBpbmRleC5qcyBmaWxlIGZvciB0aGUgbGFuZ3VhZ2Ugd2l0aCB0aGUgdGl0bGUgb2YgZWFjaCBhcnRpY2xlLlxuLy8gICogQHBhcmFtIHtPYmplY3R9IHJlc291cmNlIC0gUmVzb3VyY2Ugb2JqZWN0XG4vLyAgKiBAcGFyYW0ge1N0cmluZ30gc291cmNlUGF0aCAtIFBhdGggdG8gdGhlIGV4dHJhY3RlZCBmaWxlcyB0aGF0IGNhbWUgZnJvbSB0aGUgemlwIGZpbGUgZnJvbSB0aGUgY2F0YWxvZ1xuLy8gICogQHBhcmFtIHtTdHJpbmd9IG91dHB1dFBhdGggLSBQYXRoIHRvIHBsYWNlIHRoZSBwcm9jZXNzZWQgcmVzb3VyY2UgZmlsZXMgV0lIVE9VVCB0aGUgdmVyc2lvbiBpbiB0aGUgcGF0aFxuLy8gICogQHBhcmFtIHtzdHJpbmd9IHJlc291cmNlc1BhdGhcbi8vICAqIEBwYXJhbSB7QXJyYXl9IGRvd25sb2FkRXJyb3JzIC0gcGFyc2VkIGxpc3Qgb2YgZG93bmxvYWQgZXJyb3JzIHdpdGggZGV0YWlscyBzdWNoIGFzIGlmIHRoZSBkb3dubG9hZCBjb21wbGV0ZWQgKHZzLiBwYXJzaW5nIGVycm9yKSwgZXJyb3IsIGFuZCB1cmxcbi8vICAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcgLSBjb25maWd1cmF0aW9uIG9iamVjdFxuLy8gICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBzdWNjZXNzXG4vLyAgKi9cbi8vIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVihyZXNvdXJjZSwgc291cmNlUGF0aCwgb3V0cHV0UGF0aCwgcmVzb3VyY2VzUGF0aCwgZG93bmxvYWRFcnJvcnMsIGNvbmZpZyA9IHt9KSB7XG4vLyAgIHRyeSB7XG4vLyAgICAgaWYgKCFyZXNvdXJjZSB8fCAhaXNPYmplY3QocmVzb3VyY2UpIHx8ICFyZXNvdXJjZS5sYW5ndWFnZUlkIHx8ICFyZXNvdXJjZS5yZXNvdXJjZUlkKVxuLy8gICAgICAgdGhyb3cgRXJyb3IocmVzb3VyY2VzSGVscGVycy5mb3JtYXRFcnJvcihyZXNvdXJjZSwgZXJyb3JzLlJFU09VUkNFX05PVF9HSVZFTikpO1xuLy8gICAgIGlmICghc291cmNlUGF0aClcbi8vICAgICAgIHRocm93IEVycm9yKHJlc291cmNlc0hlbHBlcnMuZm9ybWF0RXJyb3IocmVzb3VyY2UsIGVycm9ycy5TT1VSQ0VfUEFUSF9OT1RfR0lWRU4pKTtcbi8vICAgICBpZiAoIWZzLnBhdGhFeGlzdHNTeW5jKHNvdXJjZVBhdGgpKVxuLy8gICAgICAgdGhyb3cgRXJyb3IocmVzb3VyY2VzSGVscGVycy5mb3JtYXRFcnJvcihyZXNvdXJjZSwgZXJyb3JzLlNPVVJDRV9QQVRIX05PVF9FWElTVCkpO1xuLy8gICAgIGlmICghb3V0cHV0UGF0aClcbi8vICAgICAgIHRocm93IEVycm9yKHJlc291cmNlc0hlbHBlcnMuZm9ybWF0RXJyb3IocmVzb3VyY2UsIGVycm9ycy5PVVRQVVRfUEFUSF9OT1RfR0lWRU4pKTtcbi8vICAgICBpZiAoZnMucGF0aEV4aXN0c1N5bmMob3V0cHV0UGF0aCkpXG4vLyAgICAgICBmcy5yZW1vdmVTeW5jKG91dHB1dFBhdGgpO1xuLy9cbi8vICAgICBjb25zdCB7b3RRdWVyeSwgbnRRdWVyeX0gPSBhd2FpdCBnZXRNaXNzaW5nUmVzb3VyY2VzKHNvdXJjZVBhdGgsIHJlc291cmNlc1BhdGgsIGdldE1pc3NpbmdPcmlnaW5hbFJlc291cmNlLCBkb3dubG9hZEVycm9ycywgcmVzb3VyY2UubGFuZ3VhZ2VJZCwgcmVzb3VyY2Uub3duZXIsIGZhbHNlLCBjb25maWcpO1xuLy9cbi8vICAgICAvLyBtYWtlIHN1cmUgdFcgaXMgYWxyZWFkeSBpbnN0YWxsZWRcbi8vICAgICBjb25zdCB0d1BhdGggPSBwYXRoLmpvaW4oXG4vLyAgICAgICByZXNvdXJjZXNQYXRoLFxuLy8gICAgICAgcmVzb3VyY2UubGFuZ3VhZ2VJZCxcbi8vICAgICAgICd0cmFuc2xhdGlvbkhlbHBzL3RyYW5zbGF0aW9uV29yZHMnXG4vLyAgICAgKTtcbi8vICAgICBjb25zdCB0d1ZlcnNpb25QYXRoID0gcmVzb3VyY2VzSGVscGVycy5nZXRMYXRlc3RWZXJzaW9uSW5QYXRoKHR3UGF0aCwgcmVzb3VyY2Uub3duZXIpO1xuLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHR3VmVyc2lvblBhdGgpKSB7XG4vLyAgICAgICBtYWtlU3VyZVJlc291cmNlVW56aXBwZWQodHdWZXJzaW9uUGF0aCk7XG4vLyAgICAgfSBlbHNlIHtcbi8vICAgICAgIGNvbnN0IHJlc291cmNlXyA9IGAke3Jlc291cmNlLm93bmVyfS8ke3Jlc291cmNlLmxhbmd1YWdlSWR9X3R3YDtcbi8vICAgICAgIHRocm93IG5ldyBFcnJvcihgcHJvY2Vzc1RyYW5zbGF0aW9uV29yZHNUU1YoKSAtIGNhbm5vdCBmaW5kICcke3Jlc291cmNlX30nIGF0ICR7dHdQYXRofSBmb3IgJHtyZXNvdXJjZS5vd25lcn1gKTtcbi8vICAgICB9XG4vL1xuLy8gICAgIGNvbnN0IG1hbmlmZXN0ID0gZ2V0UmVzb3VyY2VNYW5pZmVzdChzb3VyY2VQYXRoKTtcbi8vICAgICBpZiAoIShtYW5pZmVzdCAmJiBBcnJheS5pc0FycmF5KG1hbmlmZXN0LnByb2plY3RzKSkpIHtcbi8vICAgICAgIHRocm93IG5ldyBFcnJvcihgcHJvY2Vzc1RyYW5zbGF0aW9uV29yZHNUU1YoKSAtIG5vIHByb2plY3RzIGluIG1hbmlmZXN0IGF0ICR7c291cmNlUGF0aH0gZm9yICR7cmVzb3VyY2Uub3duZXJ9YCk7XG4vLyAgICAgfVxuLy9cbi8vICAgICBjb25zdCB0d2xFcnJvcnMgPSBbXTtcbi8vXG4vLyAgICAgZm9yIChjb25zdCBwcm9qZWN0IG9mIG1hbmlmZXN0LnByb2plY3RzKSB7XG4vLyAgICAgICBjb25zdCB0c3ZQYXRoID0gcGF0aC5qb2luKHNvdXJjZVBhdGgsIHByb2plY3QucGF0aCk7XG4vLyAgICAgICB0cnkge1xuLy8gICAgICAgICBjb25zdCBib29rSWQgPSBwcm9qZWN0LmlkZW50aWZpZXI7XG4vLyAgICAgICAgIGNvbnN0IGlzTmV3VGVzdGFtZW50ID0gQklCTEVfQk9PS1MubmV3VGVzdGFtZW50W3Byb2plY3QuaWRlbnRpZmllcl07XG4vLyAgICAgICAgIGNvbnN0IG9yaWdpbmFsTGFuZ3VhZ2VJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HO1xuLy8gICAgICAgICBjb25zdCBvcmlnaW5hbExhbmd1YWdlQmlibGVJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HX0JJQkxFIDogT1RfT1JJR19MQU5HX0JJQkxFO1xuLy8gICAgICAgICBjb25zdCB2ZXJzaW9uID0gaXNOZXdUZXN0YW1lbnQgJiYgbnRRdWVyeSA/ICgndicgKyBudFF1ZXJ5KSA6IG90UXVlcnkgPyAoJ3YnICsgb3RRdWVyeSkgOiBudWxsO1xuLy8gICAgICAgICBpZiAoIXZlcnNpb24pIHtcbi8vICAgICAgICAgICBjb25zb2xlLndhcm4oJ3Byb2Nlc3NUcmFuc2xhdGlvbldvcmRzVFNWKCkgLSBUaGVyZSB3YXMgYSBtaXNzaW5nIHZlcnNpb24gZm9yIGJvb2sgJyArIGJvb2tJZCArICcgb2YgcmVzb3VyY2UgJyArIG9yaWdpbmFsTGFuZ3VhZ2VCaWJsZUlkICsgJyBmcm9tICcgKyByZXNvdXJjZS5kb3dubG9hZFVybCk7XG4vLyAgICAgICAgICAgY29udGludWU7XG4vLyAgICAgICAgIH1cbi8vICAgICAgICAgY29uc3Qgb3JpZ2luYWxMYW5ndWFnZU93bmVyID0gZ2V0T3duZXJGb3JPcmlnaW5hbExhbmd1YWdlKHJlc291cmNlLm93bmVyKTtcbi8vICAgICAgICAgY29uc3Qgb3JpZ2luYWxCaWJsZVBhdGggPSBwYXRoLmpvaW4oXG4vLyAgICAgICAgICAgcmVzb3VyY2VzUGF0aCxcbi8vICAgICAgICAgICBvcmlnaW5hbExhbmd1YWdlSWQsXG4vLyAgICAgICAgICAgJ2JpYmxlcycsXG4vLyAgICAgICAgICAgb3JpZ2luYWxMYW5ndWFnZUJpYmxlSWQsXG4vLyAgICAgICAgICAgYCR7dmVyc2lvbn1fJHtvcmlnaW5hbExhbmd1YWdlT3duZXJ9YFxuLy8gICAgICAgICApO1xuLy9cbi8vICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMob3JpZ2luYWxCaWJsZVBhdGgpKSB7XG4vLyAgICAgICAgICAgY29uc3QgZ3JvdXBEYXRhID0gYXdhaXQgdHdsVHN2VG9Hcm91cERhdGEodHN2UGF0aCwgcHJvamVjdCwgcmVzb3VyY2VzUGF0aCwgb3JpZ2luYWxCaWJsZVBhdGgsIG91dHB1dFBhdGgpO1xuLy8gICAgICAgICAgIGNvbnZlcnRFbGxpcHNpc1RvQW1wZXJzYW5kKGdyb3VwRGF0YSwgdHN2UGF0aCk7XG4vLyAgICAgICAgICAgYXdhaXQgZm9ybWF0QW5kU2F2ZUdyb3VwRGF0YShncm91cERhdGEsIG91dHB1dFBhdGgsIGJvb2tJZCk7XG4vLyAgICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgICAgY29uc3QgcmVzb3VyY2UgPSBgJHtvcmlnaW5hbExhbmd1YWdlT3duZXJ9LyR7b3JpZ2luYWxMYW5ndWFnZUlkfV8ke29yaWdpbmFsTGFuZ3VhZ2VCaWJsZUlkfWA7XG4vLyAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVigpIC0gY2Fubm90IGZpbmQgJyR7cmVzb3VyY2V9JyBhdCAke29yaWdpbmFsQmlibGVQYXRofTpgO1xuLy8gICAgICAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4vLyAgICAgICAgICAgdHdsRXJyb3JzLnB1c2gobWVzc2FnZSk7XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH0gY2F0Y2ggKGUpIHtcbi8vICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVigpIC0gZXJyb3IgcHJvY2Vzc2luZyAke3RzdlBhdGh9OmA7XG4vLyAgICAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSwgZSk7XG4vLyAgICAgICAgIHR3bEVycm9ycy5wdXNoKG1lc3NhZ2UgKyBlLnRvU3RyaW5nKCkpO1xuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vXG4vLyAgICAgYXdhaXQgZGVsYXkoMjAwKTtcbi8vXG4vLyAgICAgaWYgKHR3bEVycm9ycy5sZW5ndGgpIHsgLy8gcmVwb3J0IGVycm9yc1xuLy8gICAgICAgY29uc3QgbWVzc2FnZSA9IGBwcm9jZXNzVHJhbnNsYXRpb25Xb3Jkc1RTVigpIC0gZXJyb3IgcHJvY2Vzc2luZyAke3NvdXJjZVBhdGh9YDtcbi8vICAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4vLyAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bWVzc2FnZX06XFxuJHt0d2xFcnJvcnMuam9pbignXFxuJyl9YCk7XG4vLyAgICAgfVxuLy8gICB9IGNhdGNoIChlcnJvcikge1xuLy8gICAgIGNvbnNvbGUuZXJyb3IoJ3Byb2Nlc3NUcmFuc2xhdGlvbldvcmRzVFNWKCkgLSBlcnJvcjonLCBlcnJvcik7XG4vLyAgICAgdGhyb3cgZXJyb3I7XG4vLyAgIH1cbi8vIH1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gLSBHZW5lcmF0ZXMgdGhlIGdyb3VwcyBpbmRleCBmb3IgdGhlIHR3IGFydGljbGVzIChib3RoIGt0LCBvdGhlciBhbmQgbmFtZXMpLlxuICogQHBhcmFtIHtTdHJpbmd9IGZpbGVzUGF0aCAtIFBhdGggdG8gYWxsIHR3IG1hcmtkb3duIGFydGNpbGVzLlxuICogQHBhcmFtIHtTdHJpbmd9IHR3T3V0cHV0UGF0aCBQYXRoIHRvIHRoZSByZXNvdXJjZSBsb2NhdGlvbiBpbiB0aGUgc3RhdGljIGZvbGRlci5cbiAqIEBwYXJhbSB7U3RyaW5nfSBmb2xkZXJOYW1lIGFydGljbGUgdHlwZS4gZXguIGt0IG9yIG90aGVyLlxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUdyb3Vwc0luZGV4KGZpbGVzUGF0aCwgdHdPdXRwdXRQYXRoLCBmb2xkZXJOYW1lKSB7XG4gIGNvbnN0IGdyb3Vwc0luZGV4ID0gW107XG4gIGNvbnN0IGdyb3VwSWRzID0gZnMucmVhZGRpclN5bmMoZmlsZXNQYXRoKS5maWx0ZXIoKGZpbGVuYW1lKSA9PiB7XG4gICAgcmV0dXJuIGZpbGVuYW1lLnNwbGl0KCcuJykucG9wKCkgPT09ICdtZCc7XG4gIH0pO1xuICBncm91cElkcy5mb3JFYWNoKChmaWxlTmFtZSkgPT4ge1xuICAgIGNvbnN0IGdyb3VwT2JqZWN0ID0ge307XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZmlsZXNQYXRoLCBmaWxlTmFtZSk7XG4gICAgY29uc3QgYXJ0aWNsZUZpbGUgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XG4gICAgY29uc3QgZ3JvdXBJZCA9IGZpbGVOYW1lLnJlcGxhY2UoJy5tZCcsICcnKTtcbiAgICAvLyBnZXQgdGhlIGFydGljbGUncyBmaXJzdCBsaW5lIGFuZCByZW1vdmUgIydzIGFuZCBzcGFjZXMgZnJvbSBiZWdpbm5pbmcvZW5kXG4gICAgY29uc3QgZ3JvdXBOYW1lID0gYXJ0aWNsZUZpbGUuc3BsaXQoJ1xcbicpWzBdLnJlcGxhY2UoLyheXFxzKiNcXHMqfFxccyojXFxzKiQpL2dpLCAnJyk7XG4gICAgZ3JvdXBPYmplY3QuaWQgPSBncm91cElkO1xuICAgIGdyb3VwT2JqZWN0Lm5hbWUgPSBncm91cE5hbWU7XG4gICAgZ3JvdXBzSW5kZXgucHVzaChncm91cE9iamVjdCk7XG4gIH0pO1xuICBncm91cHNJbmRleC5zb3J0KGNvbXBhcmVCeUZpcnN0VW5pcXVlV29yZCk7XG4gIGNvbnN0IGdyb3Vwc0luZGV4T3V0cHV0UGF0aCA9IHBhdGguam9pbihcbiAgICB0d091dHB1dFBhdGgsXG4gICAgZm9sZGVyTmFtZSxcbiAgICAnaW5kZXguanNvbicsXG4gICk7XG5cbiAgZnMub3V0cHV0SnNvblN5bmMoZ3JvdXBzSW5kZXhPdXRwdXRQYXRoLCBncm91cHNJbmRleCwge3NwYWNlczogMn0pO1xufVxuXG4vKipcbiAqIFNwbGl0cyB0aGUgc3RyaW5nIGludG8gd29yZHMgZGVsaW1pdGVkIGJ5IGNvbW1hcyBhbmQgY29tcGFyZXMgdGhlIGZpcnN0IHVuaXF1ZSB3b3JkXG4gKiBAcGFyYW0ge1N0cmluZ30gYSBmaXJzdCBzdHJpbmcgdG8gYmUgY29tcGFyZWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBiIHNlY29uZCBzdHJpbmcgdG8gYmUgY29tcGFyZWRcbiAqIEByZXR1cm4ge2ludH0gY29tcGFyaXNvbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gY29tcGFyZUJ5Rmlyc3RVbmlxdWVXb3JkKGEsIGIpIHtcbiAgY29uc3QgYVdvcmRzID0gYS5uYW1lLnRvVXBwZXJDYXNlKCkuc3BsaXQoJywnKTtcbiAgY29uc3QgYldvcmRzID0gYi5uYW1lLnRvVXBwZXJDYXNlKCkuc3BsaXQoJywnKTtcbiAgd2hpbGUgKGFXb3Jkcy5sZW5ndGggfHwgYldvcmRzLmxlbmd0aCkge1xuICAgIGlmICghYVdvcmRzLmxlbmd0aClcbiAgICAgIHJldHVybiAtMTtcbiAgICBpZiAoIWJXb3Jkcy5sZW5ndGgpXG4gICAgICByZXR1cm4gMTtcbiAgICBjb25zdCBhV29yZCA9IGFXb3Jkcy5zaGlmdCgpLnRyaW0oKTtcbiAgICBjb25zdCBiV29yZCA9IGJXb3Jkcy5zaGlmdCgpLnRyaW0oKTtcbiAgICBpZiAoYVdvcmQgIT09IGJXb3JkKVxuICAgICAgcmV0dXJuIChhV29yZCA8IGJXb3JkID8gLTEgOiAxKTtcbiAgfVxuICByZXR1cm4gMDsgLy8gYm90aCBsaXN0cyBhcmUgdGhlIHNhbWVcbn1cblxuLyoqXG4gKiBsb29rcyB1cCB0aGUgR0wgdGV4dCBmcm9tIGFuIGFsaWduZWQgR0wgYmlibGUgdXNpbmcgdGhlIE9yaWdpbmFsIExhbmd1YWdlXG4gKiBAcGFyYW0ge29iamVjdH0gdG9vbHNTZWxlY3RlZEdMc1xuICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHRJZFxuICogQHBhcmFtIHtvYmplY3R9IGJpYmxlc1xuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRUb29sTmFtZVxuICogQHJldHVybiB7c3RyaW5nfG51bGx9IHJldHVybnMgbnVsbCBpZiBlcnJvciBnZXR0aW5nIHRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsaWduZWRHTFRleHQoYWxpZ25lZEdsQmlibGUsIGNvbnRleHRJZCkge1xuICBjb25zb2xlLmxvZyhjb250ZXh0SWQpXG4gIGlmIChjb250ZXh0SWQpIHtcbiAgICBpZiAoIWFsaWduZWRHbEJpYmxlIHx8ICFPYmplY3Qua2V5cyhhbGlnbmVkR2xCaWJsZSkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gY29udGV4dElkLnF1b3RlO1xuICAgIH1cblxuICAgIGxldCB2ZXJzZU9iamVjdHMgPSB2ZXJzZUhlbHBlcnMuZ2V0QmVzdFZlcnNlRnJvbUJvb2soYWxpZ25lZEdsQmlibGUsIGNvbnRleHRJZC5yZWZlcmVuY2UuY2hhcHRlciwgY29udGV4dElkLnJlZmVyZW5jZS52ZXJzZSlcbiAgICBjb25zb2xlLmxvZyh2ZXJzZU9iamVjdHMpXG4gICAgaWYgKHZlcnNlT2JqZWN0cz8udmVyc2VPYmplY3RzKSB7XG4gICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHM/LnZlcnNlT2JqZWN0c1xuICAgIH1cbiAgICBpZiAoY29udGV4dElkICkge1xuICAgICAgY29uc3QgYWxpZ25lZFRleHQgPSBnZXRBbGlnbmVkVGV4dCh2ZXJzZU9iamVjdHMsIGNvbnRleHRJZC5xdW90ZSwgY29udGV4dElkLm9jY3VycmVuY2UpO1xuICAgICAgY29uc29sZS5sb2coYWxpZ25lZFRleHQpXG4gICAgICBpZiAoYWxpZ25lZFRleHQpIHtcbiAgICAgICAgcmV0dXJuIGFsaWduZWRUZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB0aXRsZSBmcm9tIGdyb3VwSW5kZXhcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcnRpY2xlSWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBncm91cEluZGV4XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaXRsZUZyb21JbmRleChncm91cEluZGV4LCBhcnRpY2xlSWQpIHtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGdyb3VwSW5kZXggfHwgW10pIHtcbiAgICBpZiAoaXRlbS5pZCA9PT0gYXJ0aWNsZUlkKSB7XG4gICAgICByZXR1cm4gaXRlbS5uYW1lXG4gICAgfVxuICB9XG4gIHJldHVybiBhcnRpY2xlSWRcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBwaHJhc2UgZnJvbSB0V1xuICogQHBhcmFtIHtzdHJpbmd9IGFydGljbGVJZFxuICogQHBhcmFtIHtvYmplY3R9IGdsVHdEYXRhXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaHJhc2VGcm9tVHcoZ2xUd0RhdGEsIGFydGljbGVJZCkge1xuICBsZXQgY3VycmVudEFydGljbGUgPSAnJztcbiAgZ2xUd0RhdGEgPSBnbFR3RGF0YSB8fCB7fVxuXG4gIGZvciAoY29uc3QgZ3JvdXBJZCBvZiBPYmplY3Qua2V5cyhnbFR3RGF0YSkpIHtcbiAgICBsZXQgZ3JvdXAgPSBnbFR3RGF0YVtncm91cElkXVxuICAgIGlmIChncm91cD8uYXJ0aWNsZXMpIHtcbiAgICAgIGdyb3VwID0gZ3JvdXA/LmFydGljbGVzXG4gICAgfVxuICAgIGNvbnN0IGFydGljbGUgPSBncm91cD8uW2FydGljbGVJZF1cbiAgICBpZiAoYXJ0aWNsZSkge1xuICAgICAgY3VycmVudEFydGljbGUgPSBhcnRpY2xlXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghY3VycmVudEFydGljbGUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgc3BsaXRMaW5lID0gY3VycmVudEFydGljbGUuc3BsaXQoJ1xcbicpO1xuXG4gIGlmIChzcGxpdExpbmUubGVuZ3RoID09PSAxICYmIHNwbGl0TGluZVswXSA9PT0gJycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgZmluYWxBcnJheSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRMaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHNwbGl0TGluZVtpXSAhPT0gJycgJiYgIX5zcGxpdExpbmVbaV0uaW5kZXhPZignIycpKSB7XG4gICAgICBmaW5hbEFycmF5LnB1c2goc3BsaXRMaW5lW2ldKTtcbiAgICB9XG4gIH1cblxuICBsZXQgbWF4TGVuZ3RoID0gMjI1O1xuICBsZXQgZmluYWxTdHJpbmcgPSAnJztcbiAgbGV0IGNob3NlblN0cmluZyA9IGZpbmFsQXJyYXlbMF07XG4gIGxldCBzcGxpdFN0cmluZyA9IGNob3NlblN0cmluZy5zcGxpdCgnICcpO1xuXG4gIGZvciAobGV0IHdvcmQgb2Ygc3BsaXRTdHJpbmcpIHtcbiAgICBpZiAoKGZpbmFsU3RyaW5nICsgJyAnICsgd29yZCkubGVuZ3RoID49IG1heExlbmd0aCkge1xuICAgICAgZmluYWxTdHJpbmcgKz0gJy4uLic7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZmluYWxTdHJpbmcgKz0gJyAnO1xuICAgIGZpbmFsU3RyaW5nICs9IHdvcmQ7XG4g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QUFjLEVBQUU7SUFDbkIsT0FBTyxFQUFFO0VBQ1g7RUFFQSxJQUFJUyxTQUFTLEdBQUdULGNBQWMsQ0FBQ3ZDLEtBQUssQ0FBQyxJQUFJLENBQUM7RUFFMUMsSUFBSWdELFNBQVMsQ0FBQ3RSLE1BQU0sS0FBSyxDQUFDLElBQUlzUixTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2pELE9BQU8sRUFBRTtFQUNYO0VBRUEsSUFBSUMsVUFBVSxHQUFHLEVBQUU7RUFFbkIsS0FBSyxJQUFJclQsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHb1QsU0FBUyxDQUFDdFIsTUFBTSxFQUFFOUIsQ0FBQyxFQUFFLEVBQUU7SUFDekMsSUFBSW9ULFNBQVMsQ0FBQ3BULENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUNvVCxTQUFTLENBQUNwVCxDQUFDLENBQUMsQ0FBQ3NULE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtNQUN0REQsVUFBVSxDQUFDbFEsSUFBSSxDQUFDaVEsU0FBUyxDQUFDcFQsQ0FBQyxDQUFDLENBQUM7SUFDL0I7RUFDRjtFQUVBLElBQUl1VCxTQUFTLEdBQUcsR0FBRztFQUNuQixJQUFJQyxXQUFXLEdBQUcsRUFBRTtFQUNwQixJQUFJQyxZQUFZLEdBQUdKLFVBQVUsQ0FBQyxDQUFDLENBQUM7RUFDaEMsSUFBSUssV0FBVyxHQUFHRCxZQUFZLENBQUNyRCxLQUFLLENBQUMsR0FBRyxDQUFDO0VBQUMsSUFBQXVELFVBQUEsR0FBQXBQLDBCQUFBLENBRXpCbVAsV0FBVztJQUFBRSxNQUFBO0VBQUE7SUFBNUIsS0FBQUQsVUFBQSxDQUFBOU8sQ0FBQSxNQUFBK08sTUFBQSxHQUFBRCxVQUFBLENBQUE3VCxDQUFBLElBQUFtQyxJQUFBLEdBQThCO01BQUEsSUFBckI0UixJQUFJLEdBQUFELE1BQUEsQ0FBQTFSLEtBQUE7TUFDWCxJQUFJLENBQUNzUixXQUFXLEdBQUcsR0FBRyxHQUFHSyxJQUFJLEVBQUUvUixNQUFNLElBQUl5UixTQUFTLEVBQUU7UUFDbERDLFdBQVcsSUFBSSxLQUFLO1FBQ3BCO01BQ0Y7TUFDQUEsV0FBVyxJQUFJLEdBQUc7TUFDbEJBLFdBQVcsSUFBSUssSUFBSTtJQUNyQjtFQUFDLFNBQUF6TixHQUFBO0lBQUF1TixVQUFBLENBQUFsVSxDQUFBLENBQUEyRyxHQUFBO0VBQUE7SUFBQXVOLFVBQUEsQ0FBQTFULENBQUE7RUFBQTtFQUNELE9BQU91VCxXQUFXO0FBQ3BCIiwiaWdub3JlTGlzdCI6W119
|