single-scripture-rcl 3.3.3-beta.94 → 3.3.3-patch.11
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.
|
@@ -589,7 +589,8 @@ export default function ScriptureCard(_ref2) {
|
|
|
589
589
|
token: authentication === null || authentication === void 0 ? void 0 : authentication.token,
|
|
590
590
|
// @ts-ignore
|
|
591
591
|
timeout: ((_httpConfig = httpConfig) === null || _httpConfig === void 0 ? void 0 : _httpConfig.serverTimeOut) || ((_httpConfig2 = httpConfig) === null || _httpConfig2 === void 0 ? void 0 : _httpConfig2.timeout) || 10000,
|
|
592
|
-
server: server
|
|
592
|
+
server: server,
|
|
593
|
+
dontCreateBranch: true
|
|
593
594
|
}),
|
|
594
595
|
author: loggedInUser,
|
|
595
596
|
token: authentication === null || authentication === void 0 ? void 0 : authentication.token,
|
|
@@ -604,7 +605,8 @@ export default function ScriptureCard(_ref2) {
|
|
|
604
605
|
React.useEffect(function () {
|
|
605
606
|
// when we get a save saveError
|
|
606
607
|
if (saveError && isSaveError) {
|
|
607
|
-
console.log("save error", saveError);
|
|
608
|
+
console.log("save error", saveError);
|
|
609
|
+
onResourceError && onResourceError(null, false, null, "Error saving ".concat(languageId_, "_").concat(resourceId, " ").concat(saveError), true);
|
|
608
610
|
}
|
|
609
611
|
}, [saveError, isSaveError]);
|
|
610
612
|
React.useEffect(function () {
|
|
@@ -728,7 +730,7 @@ export default function ScriptureCard(_ref2) {
|
|
|
728
730
|
switch (_context2.prev = _context2.next) {
|
|
729
731
|
case 0:
|
|
730
732
|
if (!saveClicked) {
|
|
731
|
-
_context2.next =
|
|
733
|
+
_context2.next = 54;
|
|
732
734
|
break;
|
|
733
735
|
}
|
|
734
736
|
|
|
@@ -748,7 +750,7 @@ export default function ScriptureCard(_ref2) {
|
|
|
748
750
|
}
|
|
749
751
|
|
|
750
752
|
if (!createEditBranch) {
|
|
751
|
-
_context2.next =
|
|
753
|
+
_context2.next = 18;
|
|
752
754
|
break;
|
|
753
755
|
}
|
|
754
756
|
|
|
@@ -766,23 +768,34 @@ export default function ScriptureCard(_ref2) {
|
|
|
766
768
|
case 8:
|
|
767
769
|
branch = _context2.sent;
|
|
768
770
|
|
|
769
|
-
if (branch) {
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
editBranchReady: true,
|
|
773
|
-
readyForFetch: true,
|
|
774
|
-
ref: branch
|
|
775
|
-
});
|
|
776
|
-
} else {
|
|
777
|
-
console.log("saveChangesToCloud - failed to create edit branch");
|
|
771
|
+
if (!branch) {
|
|
772
|
+
_context2.next = 14;
|
|
773
|
+
break;
|
|
778
774
|
}
|
|
779
775
|
|
|
780
|
-
|
|
776
|
+
console.log("saveChangesToCloud - edit branch created");
|
|
777
|
+
setState({
|
|
778
|
+
editBranchReady: true,
|
|
779
|
+
readyForFetch: true,
|
|
780
|
+
ref: branch
|
|
781
|
+
});
|
|
782
|
+
_context2.next = 18;
|
|
783
|
+
break;
|
|
784
|
+
|
|
785
|
+
case 14:
|
|
786
|
+
console.error('saveChangesToCloud() - error creating edit branch');
|
|
787
|
+
onResourceError && onResourceError(null, false, null, "Error creating edit branch ".concat(languageId_, "_").concat(resourceId), true);
|
|
788
|
+
setState({
|
|
789
|
+
saveClicked: false
|
|
790
|
+
});
|
|
791
|
+
return _context2.abrupt("return");
|
|
792
|
+
|
|
793
|
+
case 18:
|
|
781
794
|
console.log("saveChangesToCloud - getting verse changes");
|
|
782
795
|
unsavedCardIndices = Object.keys(unsavedChangesList);
|
|
783
796
|
|
|
784
797
|
if (!(unsavedCardIndices !== null && unsavedCardIndices !== void 0 && unsavedCardIndices.length)) {
|
|
785
|
-
_context2.next =
|
|
798
|
+
_context2.next = 54;
|
|
786
799
|
break;
|
|
787
800
|
}
|
|
788
801
|
|
|
@@ -790,13 +803,13 @@ export default function ScriptureCard(_ref2) {
|
|
|
790
803
|
mergeFail = false;
|
|
791
804
|
_cardNum = 0;
|
|
792
805
|
_iterator2 = _createForOfIteratorHelper(unsavedCardIndices);
|
|
793
|
-
_context2.prev =
|
|
806
|
+
_context2.prev = 25;
|
|
794
807
|
|
|
795
808
|
_iterator2.s();
|
|
796
809
|
|
|
797
|
-
case
|
|
810
|
+
case 27:
|
|
798
811
|
if ((_step2 = _iterator2.n()).done) {
|
|
799
|
-
_context2.next =
|
|
812
|
+
_context2.next = 43;
|
|
800
813
|
break;
|
|
801
814
|
}
|
|
802
815
|
|
|
@@ -805,7 +818,7 @@ export default function ScriptureCard(_ref2) {
|
|
|
805
818
|
_unsavedChangesList$_2 = unsavedChangesList[_cardNum], _getChanges2 = _unsavedChangesList$_2.getChanges, _state2 = _unsavedChangesList$_2.state;
|
|
806
819
|
|
|
807
820
|
if (!_getChanges2) {
|
|
808
|
-
_context2.next =
|
|
821
|
+
_context2.next = 41;
|
|
809
822
|
break;
|
|
810
823
|
}
|
|
811
824
|
|
|
@@ -818,40 +831,40 @@ export default function ScriptureCard(_ref2) {
|
|
|
818
831
|
}
|
|
819
832
|
|
|
820
833
|
if (!_newUsfm) {
|
|
821
|
-
_context2.next =
|
|
834
|
+
_context2.next = 39;
|
|
822
835
|
break;
|
|
823
836
|
}
|
|
824
837
|
|
|
825
838
|
bibleUsfm = _newUsfm;
|
|
826
|
-
_context2.next =
|
|
839
|
+
_context2.next = 41;
|
|
827
840
|
break;
|
|
828
841
|
|
|
829
|
-
case
|
|
842
|
+
case 39:
|
|
830
843
|
mergeFail = true;
|
|
831
|
-
return _context2.abrupt("break",
|
|
844
|
+
return _context2.abrupt("break", 43);
|
|
832
845
|
|
|
833
|
-
case
|
|
834
|
-
_context2.next =
|
|
846
|
+
case 41:
|
|
847
|
+
_context2.next = 27;
|
|
835
848
|
break;
|
|
836
849
|
|
|
837
|
-
case
|
|
838
|
-
_context2.next =
|
|
850
|
+
case 43:
|
|
851
|
+
_context2.next = 48;
|
|
839
852
|
break;
|
|
840
853
|
|
|
841
|
-
case
|
|
842
|
-
_context2.prev =
|
|
843
|
-
_context2.t0 = _context2["catch"](
|
|
854
|
+
case 45:
|
|
855
|
+
_context2.prev = 45;
|
|
856
|
+
_context2.t0 = _context2["catch"](25);
|
|
844
857
|
|
|
845
858
|
_iterator2.e(_context2.t0);
|
|
846
859
|
|
|
847
|
-
case
|
|
848
|
-
_context2.prev =
|
|
860
|
+
case 48:
|
|
861
|
+
_context2.prev = 48;
|
|
849
862
|
|
|
850
863
|
_iterator2.f();
|
|
851
864
|
|
|
852
|
-
return _context2.finish(
|
|
865
|
+
return _context2.finish(48);
|
|
853
866
|
|
|
854
|
-
case
|
|
867
|
+
case 51:
|
|
855
868
|
if (mergeFail) {
|
|
856
869
|
// if we failed to merge, fallback to brute force verse objects to USFM
|
|
857
870
|
console.log("saveChangesToCloud(".concat(_cardNum, ") - verse not found, falling back to inserting verse object"));
|
|
@@ -903,12 +916,12 @@ export default function ScriptureCard(_ref2) {
|
|
|
903
916
|
saveClicked: false
|
|
904
917
|
});
|
|
905
918
|
|
|
906
|
-
case
|
|
919
|
+
case 54:
|
|
907
920
|
case "end":
|
|
908
921
|
return _context2.stop();
|
|
909
922
|
}
|
|
910
923
|
}
|
|
911
|
-
}, _callee2, null, [[
|
|
924
|
+
}, _callee2, null, [[25, 45, 48, 51]]);
|
|
912
925
|
}));
|
|
913
926
|
return _getReadyForSave.apply(this, arguments);
|
|
914
927
|
}
|
|
@@ -1377,4 +1390,4 @@ ScriptureCard.propTypes = {
|
|
|
1377
1390
|
/** use method for using local storage specific for user */
|
|
1378
1391
|
useUserLocalStorage: PropTypes.func.isRequired
|
|
1379
1392
|
};
|
|
1380
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFUlJPUl9TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJ1c2VDYXJkU3RhdGUiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZml4T2NjdXJyZW5jZSIsImdldFJlc291cmNlTGluayIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImlzT3JpZ2luYWxCaWJsZSIsImRlbGF5IiwiYXJlTWFwc1RoZVNhbWUiLCJUaXRsZSIsIk5UX09SSUdfTEFORyIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIlZlcnNlU2VsZWN0b3JQb3B1cCIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsImNvbXBhcmVPYmplY3QiLCJ2ZXJzZVJlZiIsImNoYXB0ZXIiLCJ2ZXJzZSIsInZlcnNlRGF0YSIsInZlcnNlT2JqZWN0cyIsImxlbmd0aCIsImFyZVZlcnNlc1NhbWUiLCJ2ZXJzZXNGb3JSZWYxIiwidmVyc2VzRm9yUmVmMiIsImFyZVNhbWUiLCJpIiwibCIsInZlcnNlMSIsInZlcnNlMiIsIlNjcmlwdHVyZUNhcmQiLCJhcHBSZWYiLCJhdXRoZW50aWNhdGlvbiIsImJvb2tJbmRleCIsImNhcmROdW0iLCJjbGFzc2VzIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwiZ2V0TGFuZ3VhZ2UiLCJnZXRMZXhpY29uRGF0YSIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJodHRwQ29uZmlnIiwiaWQiLCJpc05UIiwibG9nZ2VkSW5Vc2VyIiwib25NaW5pbWl6ZSIsIm9uUmVzb3VyY2VFcnJvciIsIm9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMiLCJyZWZlcmVuY2UiLCJyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJ0cmFuc2xhdGUiLCJ0aXRsZSIsInVzZVVzZXJMb2NhbFN0b3JhZ2UiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJ1c2VTdGF0ZSIsImNoZWNrRm9yRWRpdEJyYW5jaCIsImN1cnJlbnRSZWZlcmVuY2UiLCJlZGl0QnJhbmNoUmVhZHkiLCJoYXZlVW5zYXZlZENoYW5nZXMiLCJsYXN0U2VsZWN0ZWRRdW90ZSIsInJlYWR5Rm9yRmV0Y2giLCJyZWYiLCJzYXZlQ2xpY2tlZCIsInNhdmVDb250ZW50Iiwic2VsZWN0aW9ucyIsIk1hcCIsInNoYSIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzRm9yUmVmIiwic2hvd0FsaWdubWVudFBvcHVwIiwidmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsInZlcnNlc0FsaWdubWVudFN0YXR1cyIsInZlcnNlT2JqZWN0c01hcCIsInN0YXRlIiwic2V0U3RhdGVfIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwibm9DYWNoZSIsInNldFVybEVycm9yIiwiZXJyb3IiLCJ3aG9sZUJvb2siLCJpc05ld1Rlc3RhbWVudCIsInNjcmlwdHVyZUNvbmZpZyIsInNldFNjcmlwdHVyZSIsInNjcmlwdHVyZVNldHRpbmdzIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJmZXRjaFJlc3BfIiwiZmV0Y2hSZXNwb25zZSIsInJlcG8iLCJyZWZlcmVuY2VfIiwidXNlRWZmZWN0IiwiX3NoYSIsImRhdGEiLCJ1cmwiLCJkb3dubG9hZF91cmwiLCJ2YWxpZEJyYW5jaCIsInBhcnRzIiwic3BsaXQiLCJmZXRjaEJyYW5jaCIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5IiwiY2FyZFJlc291cmNlSWQiLCJyZWZfIiwiY2FuVXNlRWRpdEJyYW5jaCIsImluY2x1ZGVzIiwiY2FyZElkIiwiYnJhbmNoRGV0ZXJtaW5lZCIsInVzZXJFZGl0QnJhbmNoTmFtZSIsIl91c2luZ1VzZXJCcmFuY2giLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJzdGFydEVkaXRCcmFuY2giLCJhY3Rpb25zIiwic3RhcnRFZGl0Iiwid29ya2luZ1JlZiIsInNjcmlwdHVyZVRpdGxlIiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwib25NZW51Q2xvc2UiLCJsYW5ndWFnZUlkXyIsImxhbmd1YWdlIiwiZGlyZWN0aW9uIiwiX3JlZmVyZW5jZSIsImlzSGVicmV3IiwiZm9udEZhY3RvciIsInNjYWxlZEZvbnRTaXplIiwiaXRlbXMiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwic2NyaXB0dXJlTGFiZWwiLCJkaXNhYmxlV29yZFBvcG92ZXJfIiwidXNpbmdPcmlnaW5hbEJpYmxlIiwidW5kZWZpbmVkIiwiZW5hYmxlRWRpdCIsImVuYWJsZUFsaWdubWVudCIsIm9yaWdpbmFsUmVwb1VybCIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJjdXJyZW50VmVyc2VSZWYiLCJfc2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJ0YXJnZXRMYW5ndWFnZSIsImN1cnJlbnRJbmRleCIsInNhdmVkIiwiZ2V0Q2hhbmdlcyIsImNsZWFyQ2hhbmdlcyIsIl91bnNhdmVkQ2hhbmdlc0xpc3QiLCJoYXNPd25Qcm9wZXJ0eSIsIl9oYXZlVW5zYXZlZENoYW5nZXMiLCJPYmplY3QiLCJrZXlzIiwiZmluZFJlZkluQXJyYXkiLCJmaW5kSXRlbSIsImNodW5rcyIsInJlZkxlbiIsImluZGV4IiwiZmluZEluZGV4IiwiY2h1bmsiLCJpZHgiLCJzdWJzdHJpbmciLCJuZXh0Q2hhciIsImdldEJvb2tOYW1lIiwiYm9va0NhcHMiLCJ0b1VwcGVyQ2FzZSIsImZpbGVwYXRoIiwiY29udGVudCIsImNvbmZpZyIsInRva2VuIiwidGltZW91dCIsInNlcnZlclRpbWVPdXQiLCJhdXRob3IiLCJicmFuY2giLCJzYXZlRXJyb3IiLCJpc1NhdmVFcnJvciIsImlzRXJyb3IiLCJvblNhdmVFZGl0IiwiX3NhdmVFZGl0IiwiaW5mbyIsInRoZW4iLCJzdWNjZXNzIiwidW5zYXZlZENhcmRJbmRpY2VzIiwiY2FyZEluZGV4IiwicmVsb2FkUmVzb3VyY2UiLCJtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0iLCJiaWJsZVVzZm0iLCJ1cGRhdGVkVmVyc2VPYmplY3RzIiwibmV3VXNmbSIsImNoYXB0ZXJDaHVua3MiLCJjaGFwdGVySW5kZXgiLCJjdXJyZW50Q2hhcHRlciIsInZlcnNlQ2h1bmtzIiwidmVyc2VJbmRleCIsIm5ld1ZlcnNlVXNmbSIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJvbGRWZXJzZSIsInZlcnNlTnVtTGVuIiwibmV3Q2hhcHRlciIsImpvaW4iLCJnZXRSZWFkeUZvclNhdmUiLCJjcmVhdGVFZGl0QnJhbmNoIiwid2FybiIsImdldFJlc3BvbnNlRGF0YSIsIm1lcmdlRmFpbCIsInBhcnNlSW50IiwibmV3VmVyc2VUZXh0IiwidGFyZ2V0VmVyc2VPYmplY3RzXyIsInVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwibmV3Qm9va0pzb24iLCJ1cGRhdGVWZXJzZSIsInRvVVNGTSIsImZvcmNlZE5ld0xpbmVzIiwiX3ZlcnNlc0ZvclJlZiIsIm5ld1NlbGVjdGlvbnMiLCJ1cGRhdGVTZWxlY3Rpb25zIiwiX21hcCIsIm9yaWdpbmFsQm9va0lkIiwiYm9va1ZlcnNlT2JqZWN0IiwiY2hhcHRlcnMiLCJuZXdTZWxlY3RlZFF1b3RlIiwicXVvdGUiLCJvcmlnaW5hbFZlcnNlcyIsInN1YnN0aXR1dGUiLCJzdGFydFZlcnNlIiwibGFzdFZlcnNlIiwiX3ZlcnNlIiwidmVyc2VzIiwidmVyc2VJdGVtIiwidm8iLCJjb25jYXQiLCJzZXQiLCJzdWJSZWYiLCJxdW90ZU1hdGNoZXMiLCJib29rT2JqZWN0Iiwib2NjdXJyZW5jZSIsInNpemUiLCJmb3JFYWNoIiwid29yZHMiLCJrZXkiLCJfa2V5IiwibWFwIiwid29yZCIsInRleHQiLCJub3JtYWxpemVTdHJpbmciLCJib29rc05vdFNhbWUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJhbGlnbmVkIiwicmVuZGVyZWRTY3JpcHR1cmVQYW5lcyIsIl9jdXJyZW50VmVyc2VEYXRhIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50IiwiaGFuZGxlQWxpZ25CdXR0b25DbGljayIsIm9uUmVuZGVyVG9vbGJhciIsIm5ld0l0ZW1zIiwiYWxsVmVyc2VzQWxpZ25lZCIsInZhbHVlcyIsImV2ZXJ5IiwiYWxpZ25TdGF0dXMiLCJhbGlnbkljb24iLCJhbGlnbkJ1dHRvblRleHQiLCJwdXNoIiwiY3Vyc29yIiwicHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9iamVjdCIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJhbnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsT0FBTyxLQUFLQyxTQUFaLE1BQTJCLFlBQTNCO0FBQ0EsU0FBU0MsSUFBVCxFQUFlQyx5QkFBZixRQUFnRCx5QkFBaEQ7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFNBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixxQkFBeEI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGVBQTNCO0FBQ0EsU0FBU0MsT0FBVCxFQUFrQkMsWUFBbEIsUUFBc0MsZ0JBQXRDO0FBQ0EsU0FDRUMsSUFERixFQUVFQyxXQUZGLEVBR0VDLHlCQUhGLEVBSUVDLFlBSkYsRUFLRUMsYUFMRixRQU1PLHVCQU5QLEMsQ0FPQTs7QUFDQSxTQUFTQyx3QkFBVCxRQUF5QyxrQkFBekM7QUFDQSxTQUFTQyxnQkFBVCxFQUEyQkMseUJBQTNCLFFBQTRELGtCQUE1RDtBQUNBLE9BQU8sS0FBS0MsT0FBWixNQUF5QixZQUF6QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsdUJBQTFCO0FBQ0EsU0FBU0MsYUFBVCxFQUF3QkMsaUJBQXhCLFFBQWlELElBQWpEO0FBQ0EsU0FBU0Msb0JBQVQsUUFBcUMsa0NBQXJDO0FBQ0EsU0FDRUMsbUJBREYsRUFFRUMsYUFGRixFQUdFQyxlQUhGLEVBSUVDLGtCQUpGLEVBS0VDLDJCQUxGLEVBTUVDLGVBTkYsUUFPTywrQkFQUDtBQVFBLFNBQVNDLEtBQVQs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QUFZLEVBQUU5RSxTQUFTLENBQUMyVSxHQTFEQTs7QUEyRHhCO0FBQ0E1UCxFQUFBQSxhQUFhLEVBQUUvRSxTQUFTLENBQUNxVSxNQTVERDs7QUE2RHhCO0FBQ0FyUCxFQUFBQSxNQUFNLEVBQUVoRixTQUFTLENBQUNtVSxNQUFWLENBQWlCQyxVQTlERDs7QUErRHhCO0FBQ0FuUCxFQUFBQSxlQUFlLEVBQUVqRixTQUFTLENBQUN3VSxJQWhFSDs7QUFpRXhCO0FBQ0F0UCxFQUFBQSxvQkFBb0IsRUFBRWxGLFNBQVMsQ0FBQ3dVLElBbEVSOztBQW1FeEI7QUFDQXBQLEVBQUFBLEtBQUssRUFBRXBGLFNBQVMsQ0FBQ21VLE1BQVYsQ0FBaUJDLFVBcEVBOztBQXFFeEI7QUFDQWpQLEVBQUFBLFNBQVMsRUFBRW5GLFNBQVMsQ0FBQ3dVLElBdEVHOztBQXVFeEI7QUFDQW5QLEVBQUFBLG1CQUFtQixFQUFFckYsU0FBUyxDQUFDd1UsSUFBVixDQUFlSjtBQXhFWixDQUExQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgeyBjb3JlLCBTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgdXNmbWpzIGZyb20gJ3VzZm0tanMnXG5pbXBvcnQgeyB1c2VFZGl0IH0gZnJvbSAnZ2l0ZWEtcmVhY3QtdG9vbGtpdCdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUnhMaW5rMiwgUnhMaW5rQnJlYWsyIH0gZnJvbSAncmVhY3QtaWNvbnMvcngnXG5pbXBvcnQge1xuICBDYXJkLFxuICBFUlJPUl9TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgdXNlQ2FyZFN0YXRlLFxuICB1c2VVc2VyQnJhbmNoLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYgfSBmcm9tICd1dy1xdW90ZS1oZWxwZXJzJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgKiBhcyBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBnZXRWZXJzZXMgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyBTY3JpcHR1cmVQYW5lLCBTY3JpcHR1cmVTZWxlY3RvciB9IGZyb20gJy4uJ1xuaW1wb3J0IHsgdXNlU2NyaXB0dXJlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7XG4gIGNsZWFudXBWZXJzZU9iamVjdHMsXG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldFJlc291cmNlTGluayxcbiAgZ2V0UmVzb3VyY2VNZXNzYWdlLFxuICBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MsXG4gIGlzT3JpZ2luYWxCaWJsZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlbGF5J1xuaW1wb3J0IHsgYXJlTWFwc1RoZVNhbWUgfSBmcm9tICcuLi8uLi91dGlscy9tYXBzJ1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICcuLi9TY3JpcHR1cmVQYW5lL3N0eWxlZCdcbmltcG9ydCB7XG4gIE5UX09SSUdfTEFORyxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG59IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgVmVyc2VTZWxlY3RvclBvcHVwIH0gZnJvbSAnLi4vVmVyc2VTZWxlY3RvclBvcHVwJ1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuLyoqXG4gKiBjcmVhdGUgYSBzaG9ydCBjb21wYXJpc29uIHZlcnNlIHJlZiBvYmplY3Qgd2l0aG91dCBhbGwgdGhlIHZlcnNlRGF0YVxuICogQHBhcmFtIHZlcnNlUmVmXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVPYmplY3QodmVyc2VSZWYpIHtcbiAgY29uc3Qge1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgdmVyc2VEYXRhLFxuICB9ID0gdmVyc2VSZWYgfHwge31cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gdmVyc2VEYXRhPy52ZXJzZU9iamVjdHM/Lmxlbmd0aCB8fCAwXG4gIHJldHVybiB7XG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICB2ZXJzZU9iamVjdHMsXG4gIH1cbn1cblxuLyoqXG4gKiBjb21wYXJlIHR3byB2ZXJzZSByZWZzIHRvIHNlZSBpZiB0aGV5IGFyZSBzdWJzdGFudGlhbGx5IHNpbWlsYXJcbiAqIEBwYXJhbSB2ZXJzZXNGb3JSZWYxXG4gKiBAcGFyYW0gdmVyc2VzRm9yUmVmMlxuICovXG5mdW5jdGlvbiBhcmVWZXJzZXNTYW1lKHZlcnNlc0ZvclJlZjE6IGFueVtdLCB2ZXJzZXNGb3JSZWYyOiBhbnlbXSkge1xuICB2ZXJzZXNGb3JSZWYxID0gdmVyc2VzRm9yUmVmMSB8fCBbXVxuICB2ZXJzZXNGb3JSZWYyID0gdmVyc2VzRm9yUmVmMiB8fCBbXVxuICBsZXQgYXJlU2FtZSA9IGZhbHNlXG5cbiAgaWYgKHZlcnNlc0ZvclJlZjEubGVuZ3RoID09PSB2ZXJzZXNGb3JSZWYyLmxlbmd0aCkge1xuICAgIGFyZVNhbWUgPSB0cnVlXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbD0gdmVyc2VzRm9yUmVmMS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHZlcnNlMSA9IGNvbXBhcmVPYmplY3QodmVyc2VzRm9yUmVmMVtpXSlcbiAgICAgIGNvbnN0IHZlcnNlMiA9IGNvbXBhcmVPYmplY3QodmVyc2VzRm9yUmVmMltpXSlcbiAgICAgIGFyZVNhbWUgPSBpc0VxdWFsKHZlcnNlMSwgdmVyc2UyKVxuXG4gICAgICBpZiAoIWFyZVNhbWUpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJlU2FtZVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JpcHR1cmVDYXJkKHtcbiAgYXBwUmVmLFxuICBhdXRoZW50aWNhdGlvbixcbiAgYm9va0luZGV4LFxuICBjYXJkTnVtLFxuICBjbGFzc2VzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIGdldExhbmd1YWdlLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgZ3JlZWtSZXBvVXJsLFxuICBoZWJyZXdSZXBvVXJsLFxuICBodHRwQ29uZmlnLFxuICBpZCxcbiAgaXNOVCxcbiAgbG9nZ2VkSW5Vc2VyLFxuICBvbk1pbmltaXplLFxuICBvblJlc291cmNlRXJyb3IsXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIHJlZmVyZW5jZSxcbiAgcmVzb3VyY2U6IHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICB9LFxuICByZXNvdXJjZUxpbmssXG4gIHNlbGVjdGVkUXVvdGUsXG4gIHNlcnZlcixcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgdHJhbnNsYXRlLFxuICB0aXRsZSxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbn0pIHtcbiAgY29uc3QgYm9va0lkID0gcmVmZXJlbmNlPy5wcm9qZWN0SWRcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGNoZWNrRm9yRWRpdEJyYW5jaDogMCxcbiAgICBjdXJyZW50UmVmZXJlbmNlOiBudWxsLFxuICAgIGVkaXRCcmFuY2hSZWFkeTogZmFsc2UsXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBmYWxzZSxcbiAgICBsYXN0U2VsZWN0ZWRRdW90ZTogbnVsbCxcbiAgICByZWFkeUZvckZldGNoOiBmYWxzZSxcbiAgICByZWY6IGFwcFJlZixcbiAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgc2F2ZUNvbnRlbnQ6IG51bGwsXG4gICAgc2VsZWN0aW9uczogbmV3IE1hcCgpLFxuICAgIHNoYTogbnVsbCxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSxcbiAgICB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBudWxsLFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICB2ZXJzZU9iamVjdHNNYXA6IG5ldyBNYXAoKSxcbiAgfSlcbiAgY29uc3Qge1xuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBjdXJyZW50UmVmZXJlbmNlLFxuICAgIGVkaXRCcmFuY2hSZWFkeSxcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGUsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWYsXG4gICAgc2F2ZUNsaWNrZWQsXG4gICAgc2F2ZUNvbnRlbnQsXG4gICAgc2VsZWN0aW9ucyxcbiAgICBzaGEsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwLFxuICAgIHN0YXJ0U2F2ZSxcbiAgICB1cmxFcnJvcixcbiAgICB1c2luZ1VzZXJCcmFuY2gsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0LFxuICAgIHZlcnNlT2JqZWN0c01hcCxcbiAgICB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1cyxcbiAgICB2ZXJzZXNGb3JSZWYsXG4gIH0gPSBzdGF0ZVxuXG4gIGNvbnN0IFtmb250U2l6ZSwgc2V0Rm9udFNpemVdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfRk9OVF9TSVpFX0JBU0UgKyBjYXJkTnVtLCAxMDApXG4gIGNvbnN0IGlzTlRfID0gaXNOVChib29rSWQpXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBpZiAodXNpbmdVc2VyQnJhbmNoKSB7XG4gICAgaHR0cENvbmZpZyA9IHtcbiAgICAgIC4uLmh0dHBDb25maWcsXG4gICAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICAgIG5vQ2FjaGU6IHRydWUsXG4gICAgfSAvLyBkaXNhYmxlIGh0dHAgY2FjaGluZ1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzZXRTY3JpcHR1cmUsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gIH0gPSB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gICAgaXNOVCxcbiAgICB0aXRsZSxcbiAgICBvd25lcixcbiAgICByZWZlcmVuY2U6IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlLFxuICAgIGFwcFJlZjogcmVmLFxuICAgIHNlcnZlcixcbiAgICBjYXJkTnVtLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICBodHRwQ29uZmlnLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgc2V0VXJsRXJyb3I6IChlcnJvcikgPT4gc2V0U3RhdGUoeyB1cmxFcnJvcjogZXJyb3IgfSksXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hSZXNwXyA9IHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZVxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IHJlcG8gPSBgJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkfV8ke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZH1gXG4gIGNvbnN0IHJlZmVyZW5jZV8gPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZSB8fCBudWxsXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZ2V0IHRoZSBfc2hhIGZyb20gbGFzdCBzY3JpcHR1cmUgZG93bmxvYWRcbiAgICBjb25zdCBfc2hhID0gZmV0Y2hSZXNwXz8uZGF0YT8uc2hhIHx8IG51bGxcbiAgICBjb25zdCB1cmwgPSBmZXRjaFJlc3BfPy5kYXRhPy5kb3dubG9hZF91cmwgfHwgbnVsbFxuICAgIGxldCB2YWxpZEJyYW5jaCA9IHRydWVcblxuICAgIGlmIChfc2hhKSB7IC8vIFRSSUNLWTogc2luY2UgdGhpcyBmZXRjaCBtYXkgYmUgZGVsYXllZCAtIG1ha2Ugc3VyZSBpdCB3YXMgZm9yIHRoZSBjdXJyZW50IGJyYW5jaCBiZWZvcmUgdXNpbmcgdGhlIHNoYVxuICAgICAgY29uc3QgcGFydHMgPSAodXJsIHx8ICcnKS5zcGxpdCgnLycpXG4gICAgICBjb25zdCBmZXRjaEJyYW5jaCA9IHBhcnRzLmxlbmd0aCA+IDcgPyBwYXJ0c1s3XSA6ICcnXG4gICAgICB2YWxpZEJyYW5jaCA9IGZldGNoQnJhbmNoID09PSByZWZcbiAgICB9XG5cbiAgICBpZiAodmFsaWRCcmFuY2ggJiYgX3NoYSAhPT0gc2hhKSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZDogZm9yICR7dXJsfSAke0pTT04uc3RyaW5naWZ5KHJlZmVyZW5jZV8pfSBuZXcgc2hhIGlzICR7X3NoYX1gKVxuICAgICAgc2V0U3RhdGUoeyBzaGE6IF9zaGEgfSlcbiAgICB9XG4gIH0sIFtmZXRjaFJlc3BfXSlcblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNhcmRSZXNvdXJjZUlkID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkIHx8IHJlc291cmNlSWRcbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgcmVmXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnJlZiB8fCBhcHBSZWZcbiAgY29uc3QgY2FuVXNlRWRpdEJyYW5jaCA9ICEhKGxvZ2dlZEluVXNlciAmJiBhdXRoZW50aWNhdGlvbiAmJiAocmVzb3VyY2VJZCAhPT0gT1JJR0lOQUxfU09VUkNFKSAmJiAvLyBUUklDS1kgaWYgbm90IG9yaWdpbmFsIGxhbmd1YWdlIGFuZCB3ZSBoYXZlIGxvZ2luIGRhdGEsIHRoZW4gd2UgY2FuIHVzZSB0aGUgZWRpdCBicmFuY2hcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5pbmNsdWRlcyhsb2dnZWRJblVzZXIpKSkpIC8vIGFsc28gbWFrZSBzdXJlIG5vdCBhIHZlcnNpb24gdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBicmFuY2hEZXRlcm1pbmVkLFxuICAgICAgdXNlckVkaXRCcmFuY2hOYW1lLFxuICAgICAgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoLFxuICAgICAgd29ya2luZ1Jlc291cmNlQnJhbmNoLFxuICAgIH0sXG4gICAgYWN0aW9uczogeyBzdGFydEVkaXQ6IHN0YXJ0RWRpdEJyYW5jaCB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgYXBwUmVmLFxuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGNhcmRSZXNvdXJjZUlkLFxuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBsYW5ndWFnZUlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3duZXIsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHNlcnZlcixcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB9KVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIGlmICghY2FuVXNlRWRpdEJyYW5jaCAmJiAhcmVhZHlGb3JGZXRjaCkgeyAvLyBpZiBiaWJsZSBub3QgZWxpZ2libGUgZm9yIHVzZXIgYnJhbmNoLCBtYWtlIHN1cmUgaXQncyByZWFkeVxuICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBib29rIGNoYW5nZWRgLCB7IGJvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWQgfSlcblxuICAgIGlmIChjYW5Vc2VFZGl0QnJhbmNoKSB7IC8vIGlmIGJpYmxlIGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgcmVmcmVzaCBpdFxuICAgICAgc2V0U3RhdGUoeyByZWFkeUZvckZldGNoOiBmYWxzZSwgY2hlY2tGb3JFZGl0QnJhbmNoOiBjaGVja0ZvckVkaXRCcmFuY2ggKyAxIH0pXG4gICAgfVxuICB9LCBbYm9va0lkLCBvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwocmVmZXJlbmNlLCBjdXJyZW50UmVmZXJlbmNlKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgcmVmZXJlbmNlIGNoYW5nZWRgLCByZWZlcmVuY2UpXG4gICAgICBzZXRTdGF0ZSh7IGN1cnJlbnRSZWZlcmVuY2U6IHJlZmVyZW5jZSB9KVxuICAgIH1cbiAgfSwgW3JlZmVyZW5jZV0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2FpdGluZyBmb3IgYnJhbmNoIGZldGNoIHRvIGNvbXBsZXRlXG4gICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgYnJhbmNoRGV0ZXJtaW5lZCBpcyAke2JyYW5jaERldGVybWluZWR9IGFuZCB3b3JraW5nUmVmIGlzICR7d29ya2luZ1JlZn0gYW5kIHJlYWR5Rm9yRmV0Y2ggaXMgJHtyZWFkeUZvckZldGNofWApXG5cbiAgICBpZiAoIXJlYWR5Rm9yRmV0Y2ggJiYgYnJhbmNoRGV0ZXJtaW5lZCApIHtcbiAgICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSwgcmVmOiB3b3JraW5nUmVmIH0pXG4gICAgfVxuICB9LCBbYnJhbmNoRGV0ZXJtaW5lZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKF91c2luZ1VzZXJCcmFuY2ggIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IF91c2luZ1VzZXJCcmFuY2ggfSlcbiAgICB9XG4gIH0sIFtfdXNpbmdVc2VyQnJhbmNoLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBvbk1lbnVDbG9zZSgpYClcbiAgICBzZXRTdGF0ZSh7IHVybEVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGxhbmd1YWdlSWRfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZFxuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKHsgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZF8gfSlcbiAgY29uc3QgZGlyZWN0aW9uID0gKGxhbmd1YWdlPy5kaXJlY3Rpb24pIHx8ICdsdHInXG4gIGNvbnN0IF9yZWZlcmVuY2UgPSBjdXJyZW50UmVmZXJlbmNlIHx8IHJlZmVyZW5jZVxuXG4gIGNvbnN0IGlzSGVicmV3ID0gKGxhbmd1YWdlSWRfID09PSAnaGJvJylcbiAgY29uc3QgZm9udEZhY3RvciA9IGlzSGVicmV3ID8gMS40IDogMSAvLyB3ZSBhdXRvbWF0aWNhbGx5IHNjYWxlIHVwIGZvbnQgc2l6ZSBmb3IgSGVicmV3XG4gIGNvbnN0IHNjYWxlZEZvbnRTaXplID0gZm9udFNpemUgKiBmb250RmFjdG9yXG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogX3JlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJvb2tDYXBzID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2U/LnByb2plY3RJZCA/IHNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UucHJvamVjdElkLnRvVXBwZXJDYXNlKCkgOiAnJ1xuICAgIHJldHVybiBgJHtib29rSW5kZXh9LSR7Ym9va0NhcHN9LnVzZm1gXG4gIH1cblxuICBjb25zdCBmaWxlcGF0aCA9IGdldEJvb2tOYW1lKClcblxuICAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGVkaXQgc3RhdGVcbiAgY29uc3Qge1xuICAgIGVycm9yOiBzYXZlRXJyb3IsXG4gICAgaXNFcnJvcjogaXNTYXZlRXJyb3IsXG4gICAgb25TYXZlRWRpdCxcbiAgfSA9IHVzZUVkaXQoe1xuICAgIHNoYSxcbiAgICBvd25lcixcbiAgICBjb250ZW50OiBzYXZlQ29udGVudCxcbiAgICBjb25maWc6IHtcbiAgICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgICAgLi4uYXV0aGVudGljYXRpb24/LmNvbmZpZyxcbiAgICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aW1lb3V0OiBodHRwQ29uZmlnPy5zZXJ2ZXJUaW1lT3V0IHx8IGh0dHBDb25maWc/LnRpbWVvdXQgfHwgMTAwMDAsXG4gICAgICBzZXJ2ZXIsXG4gICAgfSxcbiAgICBhdXRob3I6IGxvZ2dlZEluVXNlcixcbiAgICB0b2tlbjogYXV0aGVudGljYXRpb24/LnRva2VuLFxuICAgIGJyYW5jaDogd29ya2luZ1Jlc291cmNlQnJhbmNoLFxuICAgIGZpbGVwYXRoLFxuICAgIHJlcG8sXG4gIH0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2hlbiB3ZSBnZXQgYSBzYXZlIHNhdmVFcnJvclxuICAgIGlmIChzYXZlRXJyb3IgJiYgaXNTYXZlRXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlIGVycm9yYCwgc2F2ZUVycm9yKVxuICAgICAgLy8gb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIHNhdmluZyAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9ICR7c2F2ZUVycm9yfWAsIHRydWUpXG4gICAgfVxuICB9LCBbc2F2ZUVycm9yLCBpc1NhdmVFcnJvcl0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2hlbiBzdGFydFNhdmUgZ29lcyB0cnVlLCBzYXZlIGVkaXRzIHRvIHVzZXIgYnJhbmNoIGFuZCB0aGVuIGNsZWFyIHN0YXJ0U2F2ZVxuICAgIGNvbnN0IF9zYXZlRWRpdCA9IGFzeW5jICgpID0+IHsgLy8gYmVnaW4gdXBsb2FkaW5nIG5ldyBVU0ZNXG4gICAgICBjb25zb2xlLmluZm8oYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gVXNpbmcgc2hhOiAke3NoYX1gKVxuICAgICAgYXdhaXQgb25TYXZlRWRpdCh1c2VyRWRpdEJyYW5jaE5hbWUpLnRoZW4oKHN1Y2Nlc3MpID0+IHsgLy8gcHVzaCBjaGFuZ2VkIHRvIHNlcnZlclxuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc2NyaXB0dXJlIGVkaXRzIHN1Y2Nlc3NgKVxuICAgICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICAgIGlmICh1bnNhdmVkQ2FyZEluZGljZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgY2xlYXJDaGFuZ2VzIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZEluZGV4XVxuICAgICAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgICAgICAgICAgcmVhZHlGb3JGZXRjaDogdHJ1ZSxcbiAgICAgICAgICAgIHJlZjogdXNlckVkaXRCcmFuY2hOYW1lLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2Uoc2hhKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkJylcbiAgICAgICAgICBzZXRTdGF0ZSh7IHN0YXJ0U2F2ZTogZmFsc2UgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoc3RhcnRTYXZlKSB7XG4gICAgICBpZiAoIWVkaXRCcmFuY2hSZWFkeSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gZWRpdCBicmFuY2ggbm90IHlldCBjcmVhdGVkYClcbiAgICAgIH0gZWxzZSBpZiAoIXNoYSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gc2F2ZSBzaGEgbm90IHlldCByZWFkeWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gY2FsbGluZyBfc2F2ZUVkaXQoKWApXG4gICAgICAgIF9zYXZlRWRpdCgpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhcnRTYXZlLCBlZGl0QnJhbmNoUmVhZHksIHNoYV0pXG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdXBkYXRlZFZlcnNlT2JqZWN0cyB0byBVU0ZNIGFuZCBtZXJnZSBpbnRvIHRoZSBiaWJsZVVzZm1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbSAtIFVTRk0gb2YgYmlibGVcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlZiAtIHJlZmVyZW5jZSBvZiB2ZXJzZSB0byBtZXJnZSBpblxuICAgKiBAcGFyYW0ge29iamVjdFtdfSB1cGRhdGVkVmVyc2VPYmplY3RzIC0gbmV3IHZlcnNlIGluIHZlcnNlT2JqZWN0IGZvcm1hdFxuICAgKiBAcGFyYW0ge251bWJlcn0gY2FyZE51bVxuICAgKi9cbiAgZnVuY3Rpb24gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbSwgcmVmLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBjYXJkTnVtOiBudW1iZXIpIHtcbiAgICBsZXQgbmV3VXNmbVxuICAgIGNvbnN0IGNoYXB0ZXJDaHVua3MgPSBiaWJsZVVzZm0/LnNwbGl0KCdcXFxcYyAnKVxuICAgIGNvbnN0IGNoYXB0ZXJJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8uY2hhcHRlciwgY2hhcHRlckNodW5rcylcblxuICAgIGlmIChjaGFwdGVySW5kZXggPj0gMCkge1xuICAgICAgY29uc3QgY3VycmVudENoYXB0ZXIgPSBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF1cbiAgICAgIGNvbnN0IHZlcnNlQ2h1bmtzID0gY3VycmVudENoYXB0ZXIuc3BsaXQoJ1xcXFx2ICcpXG4gICAgICBjb25zdCB2ZXJzZUluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy52ZXJzZSwgdmVyc2VDaHVua3MpXG5cbiAgICAgIGlmICh2ZXJzZUluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV3VmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKHVwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoJHtjYXJkTnVtfSkgLSBuZXcgVVNGTSBmb3IgY2FyZDp9IC0gJHtuZXdWZXJzZVVzZm0uc3Vic3RyaW5nKDAsIDEwMCl9YClcbiAgICAgICAgY29uc3Qgb2xkVmVyc2UgPSB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XVxuICAgICAgICBjb25zdCB2ZXJzZU51bUxlbiA9IChyZWY/LnZlcnNlICsgJycpLmxlbmd0aFxuICAgICAgICB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCB2ZXJzZU51bUxlbiArIDEpICsgbmV3VmVyc2VVc2ZtXG4gICAgICAgIGNvbnN0IG5ld0NoYXB0ZXIgPSB2ZXJzZUNodW5rcy5qb2luKCdcXFxcdiAnKVxuICAgICAgICBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF0gPSBuZXdDaGFwdGVyXG4gICAgICAgIG5ld1VzZm0gPSBjaGFwdGVyQ2h1bmtzLmpvaW4oJ1xcXFxjICcpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdVc2ZtXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBmb3IgZWFjaCB1bnNhdmVkIGNoYW5nZSwgY2FsbCBpbnRvIHNjcmlwdHVyZVBhbmUgdG8gZ2V0IGxhdGVzdCBjaGFuZ2VzIGZvciB2ZXJzZSB0byBzYXZlXG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0UmVhZHlGb3JTYXZlKCkge1xuICAgICAgaWYgKHNhdmVDbGlja2VkKSB7XG4gICAgICAgIGxldCBjcmVhdGVFZGl0QnJhbmNoID0gIV91c2luZ1VzZXJCcmFuY2hcblxuICAgICAgICBpZiAoIWNyZWF0ZUVkaXRCcmFuY2gpIHsgLy8gaWYgYWxyZWFkeSB1c2luZyB0aGUgdXNlciBicmFuY2hcbiAgICAgICAgICBpZiAod29ya2luZ1Jlc291cmNlQnJhbmNoICE9PSB1c2VyRWRpdEJyYW5jaE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybihgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gc3RhdGUgY29uZmxpY3QgLSBzaG91bGQgYmUgaW4gdXNlciBicmFuY2ggJHt1c2VyRWRpdEJyYW5jaE5hbWV9LCBidXQgYWN0dWFsbHkgdXNpbmcgJHt3b3JraW5nUmVzb3VyY2VCcmFuY2h9YClcbiAgICAgICAgICAgIGNyZWF0ZUVkaXRCcmFuY2ggPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBhbHJlYWR5IHVzaW5nIGVkaXQgYnJhbmNoOiAke3dvcmtpbmdSZXNvdXJjZUJyYW5jaH1gKVxuICAgICAgICAgICAgc2V0U3RhdGUoeyBlZGl0QnJhbmNoUmVhZHk6IHRydWUgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3JlYXRlRWRpdEJyYW5jaCkgeyAvLyBpZiBub3QgeWV0IHVzaW5nIHRoZSB1c2VyIGJyYW5jaCwgY3JlYXRlIGl0XG4gICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGNyZWF0aW5nIGVkaXQgYnJhbmNoYClcbiAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICBlZGl0QnJhbmNoUmVhZHk6IGZhbHNlLFxuICAgICAgICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICAgICAgICBzaGE6IG51bGwsXG4gICAgICAgICAgfSkgLy8gd2Ugd2lsbCBuZWVkIGEgbmV3IHNoYSBmb3IgYm9vay9icmFuY2hcblxuICAgICAgICAgIGNvbnN0IGJyYW5jaCA9IGF3YWl0IHN0YXJ0RWRpdEJyYW5jaCgpXG5cbiAgICAgICAgICBpZiAoYnJhbmNoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gZWRpdCBicmFuY2ggY3JlYXRlZGApXG4gICAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGVkaXRCcmFuY2hSZWFkeTogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVhZHlGb3JGZXRjaDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVmOiBicmFuY2gsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gZmFpbGVkIHRvIGNyZWF0ZSBlZGl0IGJyYW5jaGApXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGdldHRpbmcgdmVyc2UgY2hhbmdlc2ApXG4gICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgYmlibGVVc2ZtID0gY29yZS5nZXRSZXNwb25zZURhdGEoc2NyaXB0dXJlQ29uZmlnPy5mZXRjaFJlc3BvbnNlKVxuICAgICAgICAgIGxldCBtZXJnZUZhaWwgPSBmYWxzZVxuICAgICAgICAgIGxldCBjYXJkTnVtID0gMFxuXG4gICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgYmlibGVVc2ZtKSB7IC8vIGp1c3QgcmVwbGFjZSB2ZXJzZVxuICAgICAgICAgICAgICAgIG5ld1VzZm0gPSBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW0pXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAobmV3VXNmbSkge1xuICAgICAgICAgICAgICAgIGJpYmxlVXNmbSA9IG5ld1VzZm1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZXJnZUZhaWwgPSB0cnVlXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChtZXJnZUZhaWwpIHsgLy8gaWYgd2UgZmFpbGVkIHRvIG1lcmdlLCBmYWxsYmFjayB0byBicnV0ZSBmb3JjZSB2ZXJzZSBvYmplY3RzIHRvIFVTRk1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoJHtjYXJkTnVtfSkgLSB2ZXJzZSBub3QgZm91bmQsIGZhbGxpbmcgYmFjayB0byBpbnNlcnRpbmcgdmVyc2Ugb2JqZWN0YClcbiAgICAgICAgICAgIGxldCBuZXdCb29rSnNvblxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2FyZE51bSA9IHBhcnNlSW50KGNhcmRJbmRleClcbiAgICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV3VXNmbVxuICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhbmV3VXNmbSkge1xuICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldFZlcnNlT2JqZWN0c18gPSBudWxsXG5cbiAgICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZlcnNlVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKHVwZGF0ZWRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdCb29rSnNvbiA9IHRhcmdldFZlcnNlT2JqZWN0c18gJiYgc2NyaXB0dXJlQ29uZmlnPy51cGRhdGVWZXJzZShyZWYuY2hhcHRlciwgcmVmLnZlcnNlLCB7dmVyc2VPYmplY3RzOiB0YXJnZXRWZXJzZU9iamVjdHNffSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYmlibGVVc2ZtID0gdXNmbWpzLnRvVVNGTShuZXdCb29rSnNvbiwge2ZvcmNlZE5ld0xpbmVzOiB0cnVlfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgbmV3IFVTRk06ICR7YmlibGVVc2ZtLnN1YnN0cmluZygwLCAxMDApfS4uLmApXG4gICAgICAgICAgc2V0U3RhdGUoe3NhdmVDb250ZW50OiBiaWJsZVVzZm0sIHN0YXJ0U2F2ZTogdHJ1ZSwgc2F2ZUNsaWNrZWQ6IGZhbHNlfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGdldFJlYWR5Rm9yU2F2ZSgpXG4gIH0sIFtzYXZlQ2xpY2tlZF0pXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCB7IGNoYXB0ZXIgfSA9IF9yZWZlcmVuY2UgfHwge31cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IF92ZXJzZXNGb3JSZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZlxuICAgIGxldCBuZXdTZWxlY3Rpb25zID0gbmV3IE1hcCgpXG4gICAgbGV0IHVwZGF0ZVNlbGVjdGlvbnMgPSBmYWxzZVxuICAgIGNvbnN0IF9tYXAgPSBuZXdTZWxlY3Rpb25zXG4gICAgY29uc3Qgb3JpZ2luYWxCb29rSWQgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5ib29rSWRcbiAgICBjb25zdCBib29rVmVyc2VPYmplY3QgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5jaGFwdGVyc1xuICAgIGxldCBuZXdTZWxlY3RlZFF1b3RlID0gbnVsbFxuXG4gICAgLy8gaWYgd2UgaGF2ZSBldmVyeXRoaW5nIHdlIG5lZWQgdG8gY2FsY3VsYXRlIHNlbGVjdGlvbnNcbiAgICBpZiAoX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoICYmXG4gICAgICBib29rVmVyc2VPYmplY3QgJiZcbiAgICAgIChib29rSWQgPT09IG9yaWdpbmFsQm9va0lkKSAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0W2NoYXB0ZXJdICYmIC8vIHdlIG5lZWQgdG8gaGF2ZSBkYXRhIGZvciBjaGFwdGVyXG4gICAgICBzZWxlY3RlZFF1b3RlPy5xdW90ZVxuICAgICkge1xuICAgICAgLy8gaWYgcXVvdGUgaXMgZGlmZmVyZW50IHRoYW4gbGFzdFxuICAgICAgaWYgKCFpc0VxdWFsKGxhc3RTZWxlY3RlZFF1b3RlLCBzZWxlY3RlZFF1b3RlKSB8fFxuICAgICAgICAhaXNFcXVhbCh2ZXJzZXNGb3JSZWYsIF92ZXJzZXNGb3JSZWYpKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVmVyc2VzID0ge31cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0ZSA9IHt9IC8vIGtlZXAgdHJhY2sgb2YgdmVyc2Ugc3Vic3RpdHV0aW9uc1xuICAgICAgICBsZXQgc3RhcnRWZXJzZSA9IF92ZXJzZXNGb3JSZWZbMF0udmVyc2VcblxuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0VmVyc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgc3RhcnRWZXJzZSA9IHBhcnNlSW50KHN0YXJ0VmVyc2UpXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFzdFZlcnNlID0gc3RhcnRWZXJzZVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gX3ZlcnNlc0ZvclJlZi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBjb25zdCB2ZXJzZVJlZiA9IF92ZXJzZXNGb3JSZWZbaV1cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjaGFwdGVyLFxuICAgICAgICAgICAgdmVyc2UsXG4gICAgICAgICAgfSA9IHZlcnNlUmVmXG4gICAgICAgICAgLy8gVFJJQ0tZIC0gd2UgcmVtYXAgdmVyc2VzIGluIHJlZmVyZW5jZSByYW5nZSB0byBhIGxpbmVhciBzZXJpZXMgb2YgdmVyc2VzIHNvIHZlcnNlIHNwYW5zIGRvbid0IGNob2tlIGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZlxuICAgICAgICAgIGxldCBfdmVyc2UgPSBzdGFydFZlcnNlICsgaVxuICAgICAgICAgIGxhc3RWZXJzZSA9IF92ZXJzZVxuICAgICAgICAgIHN1YnN0aXR1dGVbYCR7Y2hhcHRlcn06JHtfdmVyc2V9YF0gPSBgJHtjaGFwdGVyfToke3ZlcnNlfWBcblxuICAgICAgICAgIGlmICghb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl0pIHtcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdID0ge31cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgdmVyc2VPYmplY3RzID0gW11cblxuICAgICAgICAgIGlmICgodHlwZW9mIHZlcnNlID09PSAnc3RyaW5nJykgJiYgKHZlcnNlLmluY2x1ZGVzKCctJykpKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va1ZlcnNlT2JqZWN0LCBgJHtjaGFwdGVyfToke3ZlcnNlfWApXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmVyc2VJdGVtIG9mIHZlcnNlcykge1xuICAgICAgICAgICAgICBjb25zdCB2byA9IHZlcnNlSXRlbS52ZXJzZURhdGEudmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0cy5jb25jYXQodm8pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXVt2ZXJzZV0/LnZlcnNlT2JqZWN0c1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2ZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKVxuICAgICAgICAgICAgb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl1bX3ZlcnNlXSA9IHsgdmVyc2VPYmplY3RzIH1cbiAgICAgICAgICAgIF9tYXAuc2V0KGAke2NoYXB0ZXJ9OiR7dmVyc2V9YCwgdmVyc2VPYmplY3RzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBuZXcgcmVmZXJlbmNlIHJhbmdlIGZvciBuZXcgbGluZWFyIHZlcnNlIHJhbmdlXG4gICAgICAgIGNvbnN0IFtjaGFwdGVyXSA9IHNlbGVjdGVkUXVvdGU/LnJlZmVyZW5jZT8uc3BsaXQoJzonKVxuICAgICAgICBsZXQgc3ViUmVmID0gYCR7Y2hhcHRlcn06JHtzdGFydFZlcnNlfWBcblxuICAgICAgICBpZiAobGFzdFZlcnNlICE9IHN0YXJ0VmVyc2UpIHtcbiAgICAgICAgICBzdWJSZWYgKz0gYC0ke2xhc3RWZXJzZX1gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdW90ZU1hdGNoZXMgPSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYoe1xuICAgICAgICAgIGJvb2tPYmplY3Q6IG9yaWdpbmFsVmVyc2VzLFxuICAgICAgICAgIHJlZjogc3ViUmVmLFxuICAgICAgICAgIHF1b3RlOiBzZWxlY3RlZFF1b3RlPy5xdW90ZSxcbiAgICAgICAgICBvY2N1cnJlbmNlOiBzZWxlY3RlZFF1b3RlPy5vY2N1cnJlbmNlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSBuZXcgTWFwKClcblxuICAgICAgICBpZiAocXVvdGVNYXRjaGVzPy5zaXplKSB7XG4gICAgICAgICAgcXVvdGVNYXRjaGVzLmZvckVhY2goKHdvcmRzLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9rZXkgPSBzdWJzdGl0dXRlW2tleV1cblxuICAgICAgICAgICAgc2VsZWN0aW9ucy5zZXQoX2tleSwgd29yZHMubWFwKHdvcmQgPT4gKFxuICAgICAgICAgICAgICB7IC4uLndvcmQsIHRleHQ6IGNvcmUubm9ybWFsaXplU3RyaW5nKHdvcmQudGV4dCkgfVxuICAgICAgICAgICAgKSkpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBuZXdTZWxlY3Rpb25zID0gc2VsZWN0aW9uc1xuICAgICAgICBuZXdTZWxlY3RlZFF1b3RlID0gc2VsZWN0ZWRRdW90ZVxuICAgICAgICB1cGRhdGVTZWxlY3Rpb25zID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5ld1N0YXRlOiBhbnkgPSB7fVxuXG4gICAgLy8gdXBkYXRlIHN0YXRlcyB0aGF0IGhhdmUgY2hhbmdlZFxuICAgIGlmICghYXJlTWFwc1RoZVNhbWUodmVyc2VPYmplY3RzTWFwLCBfbWFwKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VPYmplY3RzTWFwID0gX21hcFxuICAgIH1cblxuICAgIGNvbnN0IGJvb2tzTm90U2FtZSA9IHJlZmVyZW5jZT8ucHJvamVjdElkICE9PSBjdXJyZW50UmVmZXJlbmNlPy5wcm9qZWN0SWRcblxuICAgIGlmIChib29rc05vdFNhbWUgfHwgIWFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VzRm9yUmVmID0gX3ZlcnNlc0ZvclJlZlxuICAgICAgbmV3U3RhdGUubGFzdFNlbGVjdGVkUXVvdGUgPSBuZXdTZWxlY3RlZFF1b3RlXG4gICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgIH1cblxuICAgIGlmIChuZXdTZWxlY3RlZFF1b3RlKSB7XG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlU2VsZWN0aW9ucykge1xuICAgICAgaWYgKCFhcmVNYXBzVGhlU2FtZShzZWxlY3Rpb25zIHx8IChuZXcgTWFwKCkpLCBuZXdTZWxlY3Rpb25zKSkge1xuICAgICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhuZXdTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICB9XG4gIH0sIFtvd25lciwgcmVzb3VyY2VJZCwgYm9va0lkLCBsYW5ndWFnZUlkXywgc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWYsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIHNlbGVjdGVkUXVvdGVdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGNsZWFyIHNldHRpbmdzIG9uIHZlcnNlIGNoYW5nZVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdDoge30sXG4gICAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIH0pXG4gIH0sIFtfcmVmZXJlbmNlXSlcblxuICBjb25zdCB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgPSAocmVmZXJlbmNlLCBhbGlnbmVkKSA9PiB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiB7IC4uLnByZXZTdGF0ZS52ZXJzZXNBbGlnbm1lbnRTdGF0dXMsIFtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YF06IGFsaWduZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGxldCBfdmVyc2VzRm9yUmVmID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWZcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChfdmVyc2VzRm9yUmVmPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHsgcmVmZXJlbmNlLCByZXNvdXJjZUxpbmsgfSA9IHNjcmlwdHVyZUNvbmZpZyB8fCB7fVxuICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQuX3ZlcnNlc0ZvclJlZiBjaGFuZ2VkYCwgeyByZWZlcmVuY2UsIHJlc291cmNlTGluayB9KVxuICAgIH1cbiAgfSwgW192ZXJzZXNGb3JSZWZdKVxuXG4gIGlmICghX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoKSB7IC8vIGlmIGVtcHR5IG9mIHJlZmVyZW5jZXMsIGNyZWF0ZSBzaW5nbGUgZW1wdHkgcmVmZXJlbmNlXG4gICAgX3ZlcnNlc0ZvclJlZiA9IFt7IC4uLnJlZmVyZW5jZSB9XVxuICB9XG5cbiAgY29uc3QgcmVuZGVyZWRTY3JpcHR1cmVQYW5lcyA9IF92ZXJzZXNGb3JSZWY/Lm1hcCgoX2N1cnJlbnRWZXJzZURhdGEsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IF9jdXJyZW50VmVyc2VEYXRhPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cyB8fCBbXVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSBfY3VycmVudFZlcnNlRGF0YSB8fCB7fVxuICAgIGNvbnN0IHByb2plY3RJZCA9IGN1cnJlbnRSZWZlcmVuY2U/LnByb2plY3RJZCB8fCByZWZlcmVuY2U/LnByb2plY3RJZFxuICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7XG4gICAgICAuLi5fdmVyc2VzRm9yUmVmLFxuICAgICAgY2hhcHRlcixcbiAgICAgIHZlcnNlLFxuICAgICAgcHJvamVjdElkLFxuICAgIH1cbiAgICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAgIC4uLnNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gICAgICBjdXJyZW50SW5kZXg6IGluZGV4LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIHJlZmVyZW5jZTogX3JlZmVyZW5jZSxcbiAgICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIH1cblxuICAgIGxldCBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSBmYWxzZVxuXG4gICAgaWYgKHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQpIHtcbiAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCA9IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQuY2hhcHRlciA9PSBjaGFwdGVyICYmIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQudmVyc2UgPT0gdmVyc2VcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgey4uLnNjcmlwdHVyZUNvbmZpZ31cbiAgICAgICAgY29udGVudFN0eWxlPXtjb250ZW50U3R5bGV9XG4gICAgICAgIGN1cnJlbnRJbmRleD17aW5kZXh9XG4gICAgICAgIGRldGVybWluaW5nQnJhbmNoPXshcmVhZHlGb3JGZXRjaH1cbiAgICAgICAgZGlyZWN0aW9uPXtkaXJlY3Rpb259XG4gICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyX31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgIGlzTlQ9e2lzTlRffVxuICAgICAgICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ9e2lzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudH1cbiAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgb25BbGlnbm1lbnRGaW5pc2g9eygpID0+IHNldFN0YXRlKHsgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCB9KX1cbiAgICAgICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz17b3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0c31cbiAgICAgICAgcmVmU3R5bGU9e3JlZlN0eWxlfVxuICAgICAgICByZWZlcmVuY2U9e19yZWZlcmVuY2V9XG4gICAgICAgIHNhdmluZz17c3RhcnRTYXZlfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc9e19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnfVxuICAgICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cz17c2V0V29yZEFsaWduZXJTdGF0dXN9XG4gICAgICAgIHNlcnZlcj17c2VydmVyfVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzPXt1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAvPlxuICAgIClcbiAgfSlcblxuICBjb25zdCBoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrID0gKCkgPT4ge1xuICAgIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIHNldFN0YXRlKHsgc2hvd0FsaWdubWVudFBvcHVwOiB0cnVlIH0pXG4gICAgfSBlbHNlIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiB2ZXJzZXNGb3JSZWZbMF0gfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBvblJlbmRlclRvb2xiYXIgPSAoeyBpdGVtcyB9KSA9PiB7XG4gICAgY29uc3QgbmV3SXRlbXMgPSBbLi4uaXRlbXNdXG5cbiAgICBsZXQgYWxsVmVyc2VzQWxpZ25lZCA9IGZhbHNlXG5cbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHZlcnNlc0FsaWdubWVudFN0YXR1cyBhcmUgdHJ1ZVxuICAgIGlmICh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpIHtcbiAgICAgIGFsbFZlcnNlc0FsaWduZWQgPSBPYmplY3QudmFsdWVzKHZlcnNlc0FsaWdubWVudFN0YXR1cykuZXZlcnkoYWxpZ25TdGF0dXMgPT4gYWxpZ25TdGF0dXMgPT09IHRydWUpXG4gICAgfVxuXG4gICAgbGV0IGFsaWduSWNvbiA9IG51bGxcbiAgICBsZXQgYWxpZ25CdXR0b25UZXh0ID0gJydcblxuICAgIGlmIChhbGxWZXJzZXNBbGlnbmVkKSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rMiBpZD17YHZhbGlkX2ljb25fJHtyZXNvdXJjZUlkfWB9IGNvbG9yPScjQkJCJy8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIFZhbGlkJ1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rQnJlYWsyIGlkPXtgaW52YWxpZF9hbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyMwMDAnLz5cbiAgICAgIGFsaWduQnV0dG9uVGV4dCA9ICdBbGlnbm1lbnQgaXMgSW52YWxpZCdcbiAgICB9XG5cbiAgICBpZiAoc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgcmVzb3VyY2VJZCAhPT0gJ09SSUdJTkFMX1NPVVJDRScpIHtcbiAgICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgaWQ9e2BhbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH1cbiAgICAgICAgICBrZXk9J2NoZWNraW5nLWJ1dHRvbidcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrfVxuICAgICAgICAgIHRpdGxlPXthbGlnbkJ1dHRvblRleHR9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICAgID5cbiAgICAgICAgICB7YWxpZ25JY29ufVxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0l0ZW1zXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyXG4gICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgb25TZWxlY3Rpb25zPXtuZXdTZWxlY3Rpb25zID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ29uU2VsZWN0aW9ucycsIG5ld1NlbGVjdGlvbnMpXG4gICAgICB9fVxuICAgICAgcXVvdGU9e3NlbGVjdGVkUXVvdGU/LnF1b3RlfVxuICAgICAgb2NjdXJyZW5jZT17Zml4T2NjdXJyZW5jZShzZWxlY3RlZFF1b3RlPy5vY2N1cnJlbmNlKX1cbiAgICAgIHZlcnNlT2JqZWN0c01hcD17dmVyc2VPYmplY3RzTWFwfVxuICAgID5cbiAgICAgIDxDYXJkXG4gICAgICAgIGlkPXtgc2NyaXB0dXJlX2NhcmRfJHtjYXJkTnVtfWB9XG4gICAgICAgIHRpdGxlPXtzY3JpcHR1cmVMYWJlbH1cbiAgICAgICAgc2V0dGluZ3NUaXRsZT17c2NyaXB0dXJlVGl0bGUgKyAnIFNldHRpbmdzJ31cbiAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICBoZWFkZXJzPXtoZWFkZXJzfVxuICAgICAgICBmaWx0ZXJzPXtmaWx0ZXJzfVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGl0ZW1JbmRleD17aXRlbUluZGV4fVxuICAgICAgICBzZXRGaWx0ZXJzPXtzZXRGaWx0ZXJzfVxuICAgICAgICBzZXRGb250U2l6ZT17c2V0Rm9udFNpemV9XG4gICAgICAgIHNldEl0ZW1JbmRleD17c2V0SXRlbUluZGV4fVxuICAgICAgICBtYXJrZG93blZpZXc9e21hcmtkb3duVmlld31cbiAgICAgICAgc2V0TWFya2Rvd25WaWV3PXtzZXRNYXJrZG93blZpZXd9XG4gICAgICAgIGdldEN1c3RvbUNvbXBvbmVudD17Z2V0U2NyaXB0dXJlU2VsZWN0b3J9XG4gICAgICAgIGhpZGVNYXJrZG93blRvZ2dsZVxuICAgICAgICBvbk1lbnVDbG9zZT17b25NZW51Q2xvc2V9XG4gICAgICAgIG9uTWluaW1pemU9e29uTWluaW1pemUgPyAoKSA9PiBvbk1pbmltaXplKGlkKSA6IG51bGx9XG4gICAgICAgIGVkaXRhYmxlPXtlbmFibGVFZGl0IHx8IGVuYWJsZUFsaWdubWVudH1cbiAgICAgICAgc2F2ZWQ9e3N0YXJ0U2F2ZSB8fCAhaGF2ZVVuc2F2ZWRDaGFuZ2VzfVxuICAgICAgICBvblNhdmVFZGl0PXsoKSA9PiBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiB0cnVlIH0pfVxuICAgICAgICBvblJlbmRlclRvb2xiYXI9e29uUmVuZGVyVG9vbGJhcn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8VmVyc2VTZWxlY3RvclBvcHVwXG4gICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgIG9wZW49e3Nob3dBbGlnbm1lbnRQb3B1cH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlIH0pfVxuICAgICAgICB2ZXJzZXNGb3JSZWY9e3ZlcnNlc0ZvclJlZn1cbiAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgIG9uVmVyc2VTZWxlY3Q9eyh2ZXJzZSkgPT4gc2V0U3RhdGUoe1xuICAgICAgICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlLFxuICAgICAgICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2VcbiAgICAgICAgfSl9XG4gICAgICAvPlxuICAgIDwvU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVDYXJkLnByb3BUeXBlcyA9IHtcbiAgLyoqIHJlcG8gYnJhbmNoIG9yIHRhZyBzdWNoIGFzIG1hc3RlciAqL1xuICBhcHBSZWY6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGF1dGhlbnRpY2F0aW9uIGluZm8gKi9cbiAgYXV0aGVudGljYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBpbmRleCBmb3IgY3VycmVudCBib29rIChlLmcuICcwMScgZm9yICdnZW4nKSovXG4gIGJvb2tJbmRleDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIHNjcmlwdHVyZSBjYXJkIG51bWJlciAoMCB0byAyIGZvciBleGFtcGxlKSAqL1xuICBjYXJkTnVtOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIC8qKiBDU1MgY2xhc3NlcyAqL1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBvcHRpb25hbCB1cmwgZm9yIGdyZWVrIHJlcG8gKi9cbiAgZ3JlZWtSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBoZWJyZXcgcmVwbyAqL1xuICBoZWJyZXdSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBmdW5jdGlvbiB0byBtaW5pbWl6ZSB0aGUgY2FyZCAob3B0aW9uYWwpICovXG4gIG9uTWluaW1pemU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgY2FsbGJhY2sgaWYgZXJyb3IgbG9hZGluZyByZXNvdXJjZSwgcGFyYW1ldGVyIHJldHVybmVkIGFyZTpcbiAgICogICAgKHtzdHJpbmd9IGVycm9yTWVzc2FnZSwge2Jvb2xlYW59IGlzQWNjZXNzRXJyb3IsIHtvYmplY3R9IHJlc291cmNlU3RhdHVzKVxuICAgKiAgICAgIC0gaXNBY2Nlc3NFcnJvciAtIGlzIHRydWUgaWYgdGhpcyB3YXMgYW4gZXJyb3IgdHJ5aW5nIHRvIGFjY2VzcyBmaWxlXG4gICAqICAgICAgLSByZXNvdXJjZVN0YXR1cyAtIGlzIG9iamVjdCBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgcHJvYmxlbXMgZmV0Y2hpbmcgcmVzb3VyY2UgKi9cbiAgb25SZXNvdXJjZUVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHRoZSBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9vayAqL1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBQcm9wVHlwZXMub2JqZWN0LFxuICByZWZlcmVuY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHByb2plY3RJZCAoYm9va0lEKSB0byB1c2UgKi9cbiAgICBwcm9qZWN0SWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogY3VycmVudCBjaGFwdGVyIG51bWJlciAqL1xuICAgIGNoYXB0ZXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IHZlcnNlIG51bWJlciAqL1xuICAgIHZlcnNlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiByZXNvdXJjZSBvYmplY3QgKi9cbiAgcmVzb3VyY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHJlc291cmNlIGxhbmd1YWdlIHRvIHVzZSAqL1xuICAgIGxhbmd1YWdlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXNvdXJjZUlkIHRvIHVzZSAoZS5nLiB1Z250KSAqL1xuICAgIHJlc291cmNlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VzIHN1Y2ggYXMgdW5mb2xkaW5nV29yZCAqL1xuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKlRoaXMgaXMgY3VycmVudGx5IHNlbGVjdGVkIHF1b3RlICovXG4gIHNlbGVjdGVkUXVvdGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBzZXJ2ZXIgKGUuZy4gJ2h0dHBzOi8vZ2l0LmRvb3I0My5vcmcnKSAqL1xuICBzZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGZ1bmN0aW9uIHRvIHNldCBzdGF0ZSBpbiBhcHAgdGhhdCB0aGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzICovXG4gIHNldFNhdmVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgd29yZCBhbGlnbmVyIHN0YXRlICovXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdXNlIG1ldGhvZCBmb3IgdXNpbmcgbG9jYWwgc3RvcmFnZSBzcGVjaWZpYyBmb3IgdXNlciAqL1xuICB1c2VVc2VyTG9jYWxTdG9yYWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuIl19
|
|
1393
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFUlJPUl9TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJ1c2VDYXJkU3RhdGUiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZml4T2NjdXJyZW5jZSIsImdldFJlc291cmNlTGluayIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImlzT3JpZ2luYWxCaWJsZSIsImRlbGF5IiwiYXJlTWFwc1RoZVNhbWUiLCJUaXRsZSIsIk5UX09SSUdfTEFORyIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIlZlcnNlU2VsZWN0b3JQb3B1cCIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsImNvbXBhcmVPYmplY3QiLCJ2ZXJzZVJlZiIsImNoYXB0ZXIiLCJ2ZXJzZSIsInZlcnNlRGF0YSIsInZlcnNlT2JqZWN0cyIsImxlbmd0aCIsImFyZVZlcnNlc1NhbWUiLCJ2ZXJzZXNGb3JSZWYxIiwidmVyc2VzRm9yUmVmMiIsImFyZVNhbWUiLCJpIiwibCIsInZlcnNlMSIsInZlcnNlMiIsIlNjcmlwdHVyZUNhcmQiLCJhcHBSZWYiLCJhdXRoZW50aWNhdGlvbiIsImJvb2tJbmRleCIsImNhcmROdW0iLCJjbGFzc2VzIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwiZ2V0TGFuZ3VhZ2UiLCJnZXRMZXhpY29uRGF0YSIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJodHRwQ29uZmlnIiwiaWQiLCJpc05UIiwibG9nZ2VkSW5Vc2VyIiwib25NaW5pbWl6ZSIsIm9uUmVzb3VyY2VFcnJvciIsIm9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMiLCJyZWZlcmVuY2UiLCJyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJ0cmFuc2xhdGUiLCJ0aXRsZSIsInVzZVVzZXJMb2NhbFN0b3JhZ2UiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJ1c2VTdGF0ZSIsImNoZWNrRm9yRWRpdEJyYW5jaCIsImN1cnJlbnRSZWZlcmVuY2UiLCJlZGl0QnJhbmNoUmVhZHkiLCJoYXZlVW5zYXZlZENoYW5nZXMiLCJsYXN0U2VsZWN0ZWRRdW90ZSIsInJlYWR5Rm9yRmV0Y2giLCJyZWYiLCJzYXZlQ2xpY2tlZCIsInNhdmVDb250ZW50Iiwic2VsZWN0aW9ucyIsIk1hcCIsInNoYSIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzRm9yUmVmIiwic2hvd0FsaWdubWVudFBvcHVwIiwidmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsInZlcnNlc0FsaWdubWVudFN0YXR1cyIsInZlcnNlT2JqZWN0c01hcCIsInN0YXRlIiwic2V0U3RhdGVfIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwibm9DYWNoZSIsInNldFVybEVycm9yIiwiZXJyb3IiLCJ3aG9sZUJvb2siLCJpc05ld1Rlc3RhbWVudCIsInNjcmlwdHVyZUNvbmZpZyIsInNldFNjcmlwdHVyZSIsInNjcmlwdHVyZVNldHRpbmdzIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJmZXRjaFJlc3BfIiwiZmV0Y2hSZXNwb25zZSIsInJlcG8iLCJyZWZlcmVuY2VfIiwidXNlRWZmZWN0IiwiX3NoYSIsImRhdGEiLCJ1cmwiLCJkb3dubG9hZF91cmwiLCJ2YWxpZEJyYW5jaCIsInBhcnRzIiwic3BsaXQiLCJmZXRjaEJyYW5jaCIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5IiwiY2FyZFJlc291cmNlSWQiLCJyZWZfIiwiY2FuVXNlRWRpdEJyYW5jaCIsImluY2x1ZGVzIiwiY2FyZElkIiwiYnJhbmNoRGV0ZXJtaW5lZCIsInVzZXJFZGl0QnJhbmNoTmFtZSIsIl91c2luZ1VzZXJCcmFuY2giLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJzdGFydEVkaXRCcmFuY2giLCJhY3Rpb25zIiwic3RhcnRFZGl0Iiwid29ya2luZ1JlZiIsInNjcmlwdHVyZVRpdGxlIiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwib25NZW51Q2xvc2UiLCJsYW5ndWFnZUlkXyIsImxhbmd1YWdlIiwiZGlyZWN0aW9uIiwiX3JlZmVyZW5jZSIsImlzSGVicmV3IiwiZm9udEZhY3RvciIsInNjYWxlZEZvbnRTaXplIiwiaXRlbXMiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwic2NyaXB0dXJlTGFiZWwiLCJkaXNhYmxlV29yZFBvcG92ZXJfIiwidXNpbmdPcmlnaW5hbEJpYmxlIiwidW5kZWZpbmVkIiwiZW5hYmxlRWRpdCIsImVuYWJsZUFsaWdubWVudCIsIm9yaWdpbmFsUmVwb1VybCIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJjdXJyZW50VmVyc2VSZWYiLCJfc2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJ0YXJnZXRMYW5ndWFnZSIsImN1cnJlbnRJbmRleCIsInNhdmVkIiwiZ2V0Q2hhbmdlcyIsImNsZWFyQ2hhbmdlcyIsIl91bnNhdmVkQ2hhbmdlc0xpc3QiLCJoYXNPd25Qcm9wZXJ0eSIsIl9oYXZlVW5zYXZlZENoYW5nZXMiLCJPYmplY3QiLCJrZXlzIiwiZmluZFJlZkluQXJyYXkiLCJmaW5kSXRlbSIsImNodW5rcyIsInJlZkxlbiIsImluZGV4IiwiZmluZEluZGV4IiwiY2h1bmsiLCJpZHgiLCJzdWJzdHJpbmciLCJuZXh0Q2hhciIsImdldEJvb2tOYW1lIiwiYm9va0NhcHMiLCJ0b1VwcGVyQ2FzZSIsImZpbGVwYXRoIiwiY29udGVudCIsImNvbmZpZyIsInRva2VuIiwidGltZW91dCIsInNlcnZlclRpbWVPdXQiLCJkb250Q3JlYXRlQnJhbmNoIiwiYXV0aG9yIiwiYnJhbmNoIiwic2F2ZUVycm9yIiwiaXNTYXZlRXJyb3IiLCJpc0Vycm9yIiwib25TYXZlRWRpdCIsIl9zYXZlRWRpdCIsImluZm8iLCJ0aGVuIiwic3VjY2VzcyIsInVuc2F2ZWRDYXJkSW5kaWNlcyIsImNhcmRJbmRleCIsInJlbG9hZFJlc291cmNlIiwibWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtIiwiYmlibGVVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsIm5ld1VzZm0iLCJjaGFwdGVyQ2h1bmtzIiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJuZXdWZXJzZVVzZm0iLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwib2xkVmVyc2UiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVhZHlGb3JTYXZlIiwiY3JlYXRlRWRpdEJyYW5jaCIsIndhcm4iLCJnZXRSZXNwb25zZURhdGEiLCJtZXJnZUZhaWwiLCJwYXJzZUludCIsIm5ld1ZlcnNlVGV4dCIsInRhcmdldFZlcnNlT2JqZWN0c18iLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlT2JqZWN0cyIsIm5ld0Jvb2tKc29uIiwidXBkYXRlVmVyc2UiLCJ0b1VTRk0iLCJmb3JjZWROZXdMaW5lcyIsIl92ZXJzZXNGb3JSZWYiLCJuZXdTZWxlY3Rpb25zIiwidXBkYXRlU2VsZWN0aW9ucyIsIl9tYXAiLCJvcmlnaW5hbEJvb2tJZCIsImJvb2tWZXJzZU9iamVjdCIsImNoYXB0ZXJzIiwibmV3U2VsZWN0ZWRRdW90ZSIsInF1b3RlIiwib3JpZ2luYWxWZXJzZXMiLCJzdWJzdGl0dXRlIiwic3RhcnRWZXJzZSIsImxhc3RWZXJzZSIsIl92ZXJzZSIsInZlcnNlcyIsInZlcnNlSXRlbSIsInZvIiwiY29uY2F0Iiwic2V0Iiwic3ViUmVmIiwicXVvdGVNYXRjaGVzIiwiYm9va09iamVjdCIsIm9jY3VycmVuY2UiLCJzaXplIiwiZm9yRWFjaCIsIndvcmRzIiwia2V5IiwiX2tleSIsIm1hcCIsIndvcmQiLCJ0ZXh0Iiwibm9ybWFsaXplU3RyaW5nIiwiYm9va3NOb3RTYW1lIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwiYWxpZ25lZCIsInJlbmRlcmVkU2NyaXB0dXJlUGFuZXMiLCJfY3VycmVudFZlcnNlRGF0YSIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsImhhbmRsZUFsaWduQnV0dG9uQ2xpY2siLCJvblJlbmRlclRvb2xiYXIiLCJuZXdJdGVtcyIsImFsbFZlcnNlc0FsaWduZWQiLCJ2YWx1ZXMiLCJldmVyeSIsImFsaWduU3RhdHVzIiwiYWxpZ25JY29uIiwiYWxpZ25CdXR0b25UZXh0IiwicHVzaCIsImN1cnNvciIsInByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJudW1iZXIiLCJib29sIiwiZnVuYyIsInNoYXBlIiwib25lT2ZUeXBlIiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU8sS0FBS0MsU0FBWixNQUEyQixZQUEzQjtBQUNBLFNBQVNDLElBQVQsRUFBZUMseUJBQWYsUUFBZ0QseUJBQWhEO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixTQUFuQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IscUJBQXhCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixlQUEzQjtBQUNBLFNBQVNDLE9BQVQsRUFBa0JDLFlBQWxCLFFBQXNDLGdCQUF0QztBQUNBLFNBQ0VDLElBREYsRUFFRUMsV0FGRixFQUdFQyx5QkFIRixFQUlFQyxZQUpGLEVBS0VDLGFBTEYsUUFNTyx1QkFOUCxDLENBT0E7O0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsa0JBQXpDO0FBQ0EsU0FBU0MsZ0JBQVQsRUFBMkJDLHlCQUEzQixRQUE0RCxrQkFBNUQ7QUFDQSxPQUFPLEtBQUtDLE9BQVosTUFBeUIsWUFBekI7QUFDQSxTQUFTQyxTQUFULFFBQTBCLHVCQUExQjtBQUNBLFNBQVNDLGFBQVQsRUFBd0JDLGlCQUF4QixRQUFpRCxJQUFqRDtBQUNBLFNBQVNDLG9CQUFULFFBQXFDLGtDQUFyQztBQUNBLFNBQ0VDLG1CQURGLEVBRUVDLGFBRkYsRUFHRUMsZUFIRixFQUlFQyxrQkFKRixFQUtFQywyQkFMRixFQU1FQyxlQU5GLFFBT08sK0JB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REM7QUFOeEMsR0FBaEIsQ0F0Q2E7O0FBOEN4QjtBQUNBNVAsRUFBQUEsUUFBUSxFQUFFekUsU0FBUyxDQUFDMFUsS0FBVixDQUFnQjtBQUN4QjtBQUNBL1AsSUFBQUEsVUFBVSxFQUFFM0UsU0FBUyxDQUFDb1UsTUFBVixDQUFpQkMsVUFGTDs7QUFHeEI7QUFDQTNQLElBQUFBLEtBQUssRUFBRTFFLFNBQVMsQ0FBQ29VLE1BQVYsQ0FBaUJDLFVBSkE7O0FBS3hCO0FBQ0F6UCxJQUFBQSxVQUFVLEVBQUU1RSxTQUFTLENBQUNvVSxNQUFWLENBQWlCQyxVQU5MOztBQU94QjtBQUNBeFAsSUFBQUEscUJBQXFCLEVBQUU3RSxTQUFTLENBQUNvVSxNQUFWLENBQWlCQztBQVJoQixHQUFoQixDQS9DYzs7QUF5RHhCO0FBQ0F2UCxFQUFBQSxZQUFZLEVBQUU5RSxTQUFTLENBQUM0VSxHQTFEQTs7QUEyRHhCO0FBQ0E3UCxFQUFBQSxhQUFhLEVBQUUvRSxTQUFTLENBQUNzVSxNQTVERDs7QUE2RHhCO0FBQ0F0UCxFQUFBQSxNQUFNLEVBQUVoRixTQUFTLENBQUNvVSxNQUFWLENBQWlCQyxVQTlERDs7QUErRHhCO0FBQ0FwUCxFQUFBQSxlQUFlLEVBQUVqRixTQUFTLENBQUN5VSxJQWhFSDs7QUFpRXhCO0FBQ0F2UCxFQUFBQSxvQkFBb0IsRUFBRWxGLFNBQVMsQ0FBQ3lVLElBbEVSOztBQW1FeEI7QUFDQXJQLEVBQUFBLEtBQUssRUFBRXBGLFNBQVMsQ0FBQ29VLE1BQVYsQ0FBaUJDLFVBcEVBOztBQXFFeEI7QUFDQWxQLEVBQUFBLFNBQVMsRUFBRW5GLFNBQVMsQ0FBQ3lVLElBdEVHOztBQXVFeEI7QUFDQXBQLEVBQUFBLG1CQUFtQixFQUFFckYsU0FBUyxDQUFDeVUsSUFBVixDQUFlSjtBQXhFWixDQUExQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgeyBjb3JlLCBTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgdXNmbWpzIGZyb20gJ3VzZm0tanMnXG5pbXBvcnQgeyB1c2VFZGl0IH0gZnJvbSAnZ2l0ZWEtcmVhY3QtdG9vbGtpdCdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUnhMaW5rMiwgUnhMaW5rQnJlYWsyIH0gZnJvbSAncmVhY3QtaWNvbnMvcngnXG5pbXBvcnQge1xuICBDYXJkLFxuICBFUlJPUl9TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgdXNlQ2FyZFN0YXRlLFxuICB1c2VVc2VyQnJhbmNoLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYgfSBmcm9tICd1dy1xdW90ZS1oZWxwZXJzJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgKiBhcyBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBnZXRWZXJzZXMgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyBTY3JpcHR1cmVQYW5lLCBTY3JpcHR1cmVTZWxlY3RvciB9IGZyb20gJy4uJ1xuaW1wb3J0IHsgdXNlU2NyaXB0dXJlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7XG4gIGNsZWFudXBWZXJzZU9iamVjdHMsXG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldFJlc291cmNlTGluayxcbiAgZ2V0UmVzb3VyY2VNZXNzYWdlLFxuICBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MsXG4gIGlzT3JpZ2luYWxCaWJsZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlbGF5J1xuaW1wb3J0IHsgYXJlTWFwc1RoZVNhbWUgfSBmcm9tICcuLi8uLi91dGlscy9tYXBzJ1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICcuLi9TY3JpcHR1cmVQYW5lL3N0eWxlZCdcbmltcG9ydCB7XG4gIE5UX09SSUdfTEFORyxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG59IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgVmVyc2VTZWxlY3RvclBvcHVwIH0gZnJvbSAnLi4vVmVyc2VTZWxlY3RvclBvcHVwJ1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuLyoqXG4gKiBjcmVhdGUgYSBzaG9ydCBjb21wYXJpc29uIHZlcnNlIHJlZiBvYmplY3Qgd2l0aG91dCBhbGwgdGhlIHZlcnNlRGF0YVxuICogQHBhcmFtIHZlcnNlUmVmXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVPYmplY3QodmVyc2VSZWYpIHtcbiAgY29uc3Qge1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgdmVyc2VEYXRhLFxuICB9ID0gdmVyc2VSZWYgfHwge31cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gdmVyc2VEYXRhPy52ZXJzZU9iamVjdHM/Lmxlbmd0aCB8fCAwXG4gIHJldHVybiB7XG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICB2ZXJzZU9iamVjdHMsXG4gIH1cbn1cblxuLyoqXG4gKiBjb21wYXJlIHR3byB2ZXJzZSByZWZzIHRvIHNlZSBpZiB0aGV5IGFyZSBzdWJzdGFudGlhbGx5IHNpbWlsYXJcbiAqIEBwYXJhbSB2ZXJzZXNGb3JSZWYxXG4gKiBAcGFyYW0gdmVyc2VzRm9yUmVmMlxuICovXG5mdW5jdGlvbiBhcmVWZXJzZXNTYW1lKHZlcnNlc0ZvclJlZjE6IGFueVtdLCB2ZXJzZXNGb3JSZWYyOiBhbnlbXSkge1xuICB2ZXJzZXNGb3JSZWYxID0gdmVyc2VzRm9yUmVmMSB8fCBbXVxuICB2ZXJzZXNGb3JSZWYyID0gdmVyc2VzRm9yUmVmMiB8fCBbXVxuICBsZXQgYXJlU2FtZSA9IGZhbHNlXG5cbiAgaWYgKHZlcnNlc0ZvclJlZjEubGVuZ3RoID09PSB2ZXJzZXNGb3JSZWYyLmxlbmd0aCkge1xuICAgIGFyZVNhbWUgPSB0cnVlXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbD0gdmVyc2VzRm9yUmVmMS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHZlcnNlMSA9IGNvbXBhcmVPYmplY3QodmVyc2VzRm9yUmVmMVtpXSlcbiAgICAgIGNvbnN0IHZlcnNlMiA9IGNvbXBhcmVPYmplY3QodmVyc2VzRm9yUmVmMltpXSlcbiAgICAgIGFyZVNhbWUgPSBpc0VxdWFsKHZlcnNlMSwgdmVyc2UyKVxuXG4gICAgICBpZiAoIWFyZVNhbWUpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJlU2FtZVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JpcHR1cmVDYXJkKHtcbiAgYXBwUmVmLFxuICBhdXRoZW50aWNhdGlvbixcbiAgYm9va0luZGV4LFxuICBjYXJkTnVtLFxuICBjbGFzc2VzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIGdldExhbmd1YWdlLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgZ3JlZWtSZXBvVXJsLFxuICBoZWJyZXdSZXBvVXJsLFxuICBodHRwQ29uZmlnLFxuICBpZCxcbiAgaXNOVCxcbiAgbG9nZ2VkSW5Vc2VyLFxuICBvbk1pbmltaXplLFxuICBvblJlc291cmNlRXJyb3IsXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIHJlZmVyZW5jZSxcbiAgcmVzb3VyY2U6IHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICB9LFxuICByZXNvdXJjZUxpbmssXG4gIHNlbGVjdGVkUXVvdGUsXG4gIHNlcnZlcixcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgdHJhbnNsYXRlLFxuICB0aXRsZSxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbn0pIHtcbiAgY29uc3QgYm9va0lkID0gcmVmZXJlbmNlPy5wcm9qZWN0SWRcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGNoZWNrRm9yRWRpdEJyYW5jaDogMCxcbiAgICBjdXJyZW50UmVmZXJlbmNlOiBudWxsLFxuICAgIGVkaXRCcmFuY2hSZWFkeTogZmFsc2UsXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBmYWxzZSxcbiAgICBsYXN0U2VsZWN0ZWRRdW90ZTogbnVsbCxcbiAgICByZWFkeUZvckZldGNoOiBmYWxzZSxcbiAgICByZWY6IGFwcFJlZixcbiAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgc2F2ZUNvbnRlbnQ6IG51bGwsXG4gICAgc2VsZWN0aW9uczogbmV3IE1hcCgpLFxuICAgIHNoYTogbnVsbCxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSxcbiAgICB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBudWxsLFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICB2ZXJzZU9iamVjdHNNYXA6IG5ldyBNYXAoKSxcbiAgfSlcbiAgY29uc3Qge1xuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBjdXJyZW50UmVmZXJlbmNlLFxuICAgIGVkaXRCcmFuY2hSZWFkeSxcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGUsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWYsXG4gICAgc2F2ZUNsaWNrZWQsXG4gICAgc2F2ZUNvbnRlbnQsXG4gICAgc2VsZWN0aW9ucyxcbiAgICBzaGEsXG4gICAgc2hvd0FsaWdubWVudFBvcHVwLFxuICAgIHN0YXJ0U2F2ZSxcbiAgICB1cmxFcnJvcixcbiAgICB1c2luZ1VzZXJCcmFuY2gsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0LFxuICAgIHZlcnNlT2JqZWN0c01hcCxcbiAgICB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1cyxcbiAgICB2ZXJzZXNGb3JSZWYsXG4gIH0gPSBzdGF0ZVxuXG4gIGNvbnN0IFtmb250U2l6ZSwgc2V0Rm9udFNpemVdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfRk9OVF9TSVpFX0JBU0UgKyBjYXJkTnVtLCAxMDApXG4gIGNvbnN0IGlzTlRfID0gaXNOVChib29rSWQpXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBpZiAodXNpbmdVc2VyQnJhbmNoKSB7XG4gICAgaHR0cENvbmZpZyA9IHtcbiAgICAgIC4uLmh0dHBDb25maWcsXG4gICAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICAgIG5vQ2FjaGU6IHRydWUsXG4gICAgfSAvLyBkaXNhYmxlIGh0dHAgY2FjaGluZ1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzZXRTY3JpcHR1cmUsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gIH0gPSB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gICAgaXNOVCxcbiAgICB0aXRsZSxcbiAgICBvd25lcixcbiAgICByZWZlcmVuY2U6IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlLFxuICAgIGFwcFJlZjogcmVmLFxuICAgIHNlcnZlcixcbiAgICBjYXJkTnVtLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICBodHRwQ29uZmlnLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgc2V0VXJsRXJyb3I6IChlcnJvcikgPT4gc2V0U3RhdGUoeyB1cmxFcnJvcjogZXJyb3IgfSksXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hSZXNwXyA9IHNjcmlwdHVyZUNvbmZpZz8uZmV0Y2hSZXNwb25zZVxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IHJlcG8gPSBgJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkfV8ke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZH1gXG4gIGNvbnN0IHJlZmVyZW5jZV8gPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZSB8fCBudWxsXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZ2V0IHRoZSBfc2hhIGZyb20gbGFzdCBzY3JpcHR1cmUgZG93bmxvYWRcbiAgICBjb25zdCBfc2hhID0gZmV0Y2hSZXNwXz8uZGF0YT8uc2hhIHx8IG51bGxcbiAgICBjb25zdCB1cmwgPSBmZXRjaFJlc3BfPy5kYXRhPy5kb3dubG9hZF91cmwgfHwgbnVsbFxuICAgIGxldCB2YWxpZEJyYW5jaCA9IHRydWVcblxuICAgIGlmIChfc2hhKSB7IC8vIFRSSUNLWTogc2luY2UgdGhpcyBmZXRjaCBtYXkgYmUgZGVsYXllZCAtIG1ha2Ugc3VyZSBpdCB3YXMgZm9yIHRoZSBjdXJyZW50IGJyYW5jaCBiZWZvcmUgdXNpbmcgdGhlIHNoYVxuICAgICAgY29uc3QgcGFydHMgPSAodXJsIHx8ICcnKS5zcGxpdCgnLycpXG4gICAgICBjb25zdCBmZXRjaEJyYW5jaCA9IHBhcnRzLmxlbmd0aCA+IDcgPyBwYXJ0c1s3XSA6ICcnXG4gICAgICB2YWxpZEJyYW5jaCA9IGZldGNoQnJhbmNoID09PSByZWZcbiAgICB9XG5cbiAgICBpZiAodmFsaWRCcmFuY2ggJiYgX3NoYSAhPT0gc2hhKSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZDogZm9yICR7dXJsfSAke0pTT04uc3RyaW5naWZ5KHJlZmVyZW5jZV8pfSBuZXcgc2hhIGlzICR7X3NoYX1gKVxuICAgICAgc2V0U3RhdGUoeyBzaGE6IF9zaGEgfSlcbiAgICB9XG4gIH0sIFtmZXRjaFJlc3BfXSlcblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNhcmRSZXNvdXJjZUlkID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkIHx8IHJlc291cmNlSWRcbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgcmVmXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnJlZiB8fCBhcHBSZWZcbiAgY29uc3QgY2FuVXNlRWRpdEJyYW5jaCA9ICEhKGxvZ2dlZEluVXNlciAmJiBhdXRoZW50aWNhdGlvbiAmJiAocmVzb3VyY2VJZCAhPT0gT1JJR0lOQUxfU09VUkNFKSAmJiAvLyBUUklDS1kgaWYgbm90IG9yaWdpbmFsIGxhbmd1YWdlIGFuZCB3ZSBoYXZlIGxvZ2luIGRhdGEsIHRoZW4gd2UgY2FuIHVzZSB0aGUgZWRpdCBicmFuY2hcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5pbmNsdWRlcyhsb2dnZWRJblVzZXIpKSkpIC8vIGFsc28gbWFrZSBzdXJlIG5vdCBhIHZlcnNpb24gdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBicmFuY2hEZXRlcm1pbmVkLFxuICAgICAgdXNlckVkaXRCcmFuY2hOYW1lLFxuICAgICAgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoLFxuICAgICAgd29ya2luZ1Jlc291cmNlQnJhbmNoLFxuICAgIH0sXG4gICAgYWN0aW9uczogeyBzdGFydEVkaXQ6IHN0YXJ0RWRpdEJyYW5jaCB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgYXBwUmVmLFxuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGNhcmRSZXNvdXJjZUlkLFxuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBsYW5ndWFnZUlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3duZXIsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHNlcnZlcixcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB9KVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIGlmICghY2FuVXNlRWRpdEJyYW5jaCAmJiAhcmVhZHlGb3JGZXRjaCkgeyAvLyBpZiBiaWJsZSBub3QgZWxpZ2libGUgZm9yIHVzZXIgYnJhbmNoLCBtYWtlIHN1cmUgaXQncyByZWFkeVxuICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBib29rIGNoYW5nZWRgLCB7IGJvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWQgfSlcblxuICAgIGlmIChjYW5Vc2VFZGl0QnJhbmNoKSB7IC8vIGlmIGJpYmxlIGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgcmVmcmVzaCBpdFxuICAgICAgc2V0U3RhdGUoeyByZWFkeUZvckZldGNoOiBmYWxzZSwgY2hlY2tGb3JFZGl0QnJhbmNoOiBjaGVja0ZvckVkaXRCcmFuY2ggKyAxIH0pXG4gICAgfVxuICB9LCBbYm9va0lkLCBvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwocmVmZXJlbmNlLCBjdXJyZW50UmVmZXJlbmNlKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgcmVmZXJlbmNlIGNoYW5nZWRgLCByZWZlcmVuY2UpXG4gICAgICBzZXRTdGF0ZSh7IGN1cnJlbnRSZWZlcmVuY2U6IHJlZmVyZW5jZSB9KVxuICAgIH1cbiAgfSwgW3JlZmVyZW5jZV0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2FpdGluZyBmb3IgYnJhbmNoIGZldGNoIHRvIGNvbXBsZXRlXG4gICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgYnJhbmNoRGV0ZXJtaW5lZCBpcyAke2JyYW5jaERldGVybWluZWR9IGFuZCB3b3JraW5nUmVmIGlzICR7d29ya2luZ1JlZn0gYW5kIHJlYWR5Rm9yRmV0Y2ggaXMgJHtyZWFkeUZvckZldGNofWApXG5cbiAgICBpZiAoIXJlYWR5Rm9yRmV0Y2ggJiYgYnJhbmNoRGV0ZXJtaW5lZCApIHtcbiAgICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSwgcmVmOiB3b3JraW5nUmVmIH0pXG4gICAgfVxuICB9LCBbYnJhbmNoRGV0ZXJtaW5lZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKF91c2luZ1VzZXJCcmFuY2ggIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IF91c2luZ1VzZXJCcmFuY2ggfSlcbiAgICB9XG4gIH0sIFtfdXNpbmdVc2VyQnJhbmNoLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBvbk1lbnVDbG9zZSgpYClcbiAgICBzZXRTdGF0ZSh7IHVybEVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGxhbmd1YWdlSWRfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZFxuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKHsgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZF8gfSlcbiAgY29uc3QgZGlyZWN0aW9uID0gKGxhbmd1YWdlPy5kaXJlY3Rpb24pIHx8ICdsdHInXG4gIGNvbnN0IF9yZWZlcmVuY2UgPSBjdXJyZW50UmVmZXJlbmNlIHx8IHJlZmVyZW5jZVxuXG4gIGNvbnN0IGlzSGVicmV3ID0gKGxhbmd1YWdlSWRfID09PSAnaGJvJylcbiAgY29uc3QgZm9udEZhY3RvciA9IGlzSGVicmV3ID8gMS40IDogMSAvLyB3ZSBhdXRvbWF0aWNhbGx5IHNjYWxlIHVwIGZvbnQgc2l6ZSBmb3IgSGVicmV3XG4gIGNvbnN0IHNjYWxlZEZvbnRTaXplID0gZm9udFNpemUgKiBmb250RmFjdG9yXG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogX3JlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJvb2tDYXBzID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2U/LnByb2plY3RJZCA/IHNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UucHJvamVjdElkLnRvVXBwZXJDYXNlKCkgOiAnJ1xuICAgIHJldHVybiBgJHtib29rSW5kZXh9LSR7Ym9va0NhcHN9LnVzZm1gXG4gIH1cblxuICBjb25zdCBmaWxlcGF0aCA9IGdldEJvb2tOYW1lKClcblxuICAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGVkaXQgc3RhdGVcbiAgY29uc3Qge1xuICAgIGVycm9yOiBzYXZlRXJyb3IsXG4gICAgaXNFcnJvcjogaXNTYXZlRXJyb3IsXG4gICAgb25TYXZlRWRpdCxcbiAgfSA9IHVzZUVkaXQoe1xuICAgIHNoYSxcbiAgICBvd25lcixcbiAgICBjb250ZW50OiBzYXZlQ29udGVudCxcbiAgICBjb25maWc6IHtcbiAgICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgICAgLi4uYXV0aGVudGljYXRpb24/LmNvbmZpZyxcbiAgICAgIHRva2VuOiBhdXRoZW50aWNhdGlvbj8udG9rZW4sXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aW1lb3V0OiBodHRwQ29uZmlnPy5zZXJ2ZXJUaW1lT3V0IHx8IGh0dHBDb25maWc/LnRpbWVvdXQgfHwgMTAwMDAsXG4gICAgICBzZXJ2ZXIsXG4gICAgICBkb250Q3JlYXRlQnJhbmNoOiB0cnVlLFxuICAgIH0sXG4gICAgYXV0aG9yOiBsb2dnZWRJblVzZXIsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gd2UgZ2V0IGEgc2F2ZSBzYXZlRXJyb3JcbiAgICBpZiAoc2F2ZUVycm9yICYmIGlzU2F2ZUVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZSBlcnJvcmAsIHNhdmVFcnJvcilcbiAgICAgIG9uUmVzb3VyY2VFcnJvciAmJiBvblJlc291cmNlRXJyb3IobnVsbCwgZmFsc2UsIG51bGwsIGBFcnJvciBzYXZpbmcgJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfSAke3NhdmVFcnJvcn1gLCB0cnVlKVxuICAgIH1cbiAgfSwgW3NhdmVFcnJvciwgaXNTYXZlRXJyb3JdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gc3RhcnRTYXZlIGdvZXMgdHJ1ZSwgc2F2ZSBlZGl0cyB0byB1c2VyIGJyYW5jaCBhbmQgdGhlbiBjbGVhciBzdGFydFNhdmVcbiAgICBjb25zdCBfc2F2ZUVkaXQgPSBhc3luYyAoKSA9PiB7IC8vIGJlZ2luIHVwbG9hZGluZyBuZXcgVVNGTVxuICAgICAgY29uc29sZS5pbmZvKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFVzaW5nIHNoYTogJHtzaGF9YClcbiAgICAgIGF3YWl0IG9uU2F2ZUVkaXQodXNlckVkaXRCcmFuY2hOYW1lKS50aGVuKChzdWNjZXNzKSA9PiB7IC8vIHB1c2ggY2hhbmdlZCB0byBzZXJ2ZXJcbiAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHNjcmlwdHVyZSBlZGl0cyBzdWNjZXNzYClcbiAgICAgICAgICBjb25zdCB1bnNhdmVkQ2FyZEluZGljZXMgPSBPYmplY3Qua2V5cyh1bnNhdmVkQ2hhbmdlc0xpc3QpXG5cbiAgICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgICBjb25zdCB7IGNsZWFyQ2hhbmdlcyB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmRJbmRleF1cbiAgICAgICAgICAgICAgY2xlYXJDaGFuZ2VzICYmIGNsZWFyQ2hhbmdlcygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc29sZS5pbmZvKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFJlbG9hZGluZyByZXNvdXJjZScpXG4gICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IHRydWUsXG4gICAgICAgICAgICByZWY6IHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKHNoYSlcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCcpXG4gICAgICAgICAgc2V0U3RhdGUoeyBzdGFydFNhdmU6IGZhbHNlIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0U2F2ZSkge1xuICAgICAgaWYgKCFlZGl0QnJhbmNoUmVhZHkpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGVkaXQgYnJhbmNoIG5vdCB5ZXQgY3JlYXRlZGApXG4gICAgICB9IGVsc2UgaWYgKCFzaGEpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIHNhdmUgc2hhIG5vdCB5ZXQgcmVhZHlgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGNhbGxpbmcgX3NhdmVFZGl0KClgKVxuICAgICAgICBfc2F2ZUVkaXQoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3N0YXJ0U2F2ZSwgZWRpdEJyYW5jaFJlYWR5LCBzaGFdKVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHVwZGF0ZWRWZXJzZU9iamVjdHMgdG8gVVNGTSBhbmQgbWVyZ2UgaW50byB0aGUgYmlibGVVc2ZtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZVVzZm0gLSBVU0ZNIG9mIGJpYmxlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZWYgLSByZWZlcmVuY2Ugb2YgdmVyc2UgdG8gbWVyZ2UgaW5cbiAgICogQHBhcmFtIHtvYmplY3RbXX0gdXBkYXRlZFZlcnNlT2JqZWN0cyAtIG5ldyB2ZXJzZSBpbiB2ZXJzZU9iamVjdCBmb3JtYXRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGNhcmROdW1cbiAgICovXG4gIGZ1bmN0aW9uIG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm0sIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bTogbnVtYmVyKSB7XG4gICAgbGV0IG5ld1VzZm1cbiAgICBjb25zdCBjaGFwdGVyQ2h1bmtzID0gYmlibGVVc2ZtPy5zcGxpdCgnXFxcXGMgJylcbiAgICBjb25zdCBjaGFwdGVySW5kZXggPSBmaW5kUmVmSW5BcnJheShyZWY/LmNoYXB0ZXIsIGNoYXB0ZXJDaHVua3MpXG5cbiAgICBpZiAoY2hhcHRlckluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRDaGFwdGVyID0gY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdXG4gICAgICBjb25zdCB2ZXJzZUNodW5rcyA9IGN1cnJlbnRDaGFwdGVyLnNwbGl0KCdcXFxcdiAnKVxuICAgICAgY29uc3QgdmVyc2VJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8udmVyc2UsIHZlcnNlQ2h1bmtzKVxuXG4gICAgICBpZiAodmVyc2VJbmRleCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZlcnNlVXNmbSA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTSh1cGRhdGVkVmVyc2VPYmplY3RzKVxuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gbmV3IFVTRk0gZm9yIGNhcmQ6fSAtICR7bmV3VmVyc2VVc2ZtLnN1YnN0cmluZygwLCAxMDApfWApXG4gICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbdmVyc2VJbmRleF1cbiAgICAgICAgY29uc3QgdmVyc2VOdW1MZW4gPSAocmVmPy52ZXJzZSArICcnKS5sZW5ndGhcbiAgICAgICAgdmVyc2VDaHVua3NbdmVyc2VJbmRleF0gPSBvbGRWZXJzZS5zdWJzdHJpbmcoMCwgdmVyc2VOdW1MZW4gKyAxKSArIG5ld1ZlcnNlVXNmbVxuICAgICAgICBjb25zdCBuZXdDaGFwdGVyID0gdmVyc2VDaHVua3Muam9pbignXFxcXHYgJylcbiAgICAgICAgY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdID0gbmV3Q2hhcHRlclxuICAgICAgICBuZXdVc2ZtID0gY2hhcHRlckNodW5rcy5qb2luKCdcXFxcYyAnKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3VXNmbVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZm9yIGVhY2ggdW5zYXZlZCBjaGFuZ2UsIGNhbGwgaW50byBzY3JpcHR1cmVQYW5lIHRvIGdldCBsYXRlc3QgY2hhbmdlcyBmb3IgdmVyc2UgdG8gc2F2ZVxuICAgIGFzeW5jIGZ1bmN0aW9uIGdldFJlYWR5Rm9yU2F2ZSgpIHtcbiAgICAgIGlmIChzYXZlQ2xpY2tlZCkge1xuICAgICAgICBsZXQgY3JlYXRlRWRpdEJyYW5jaCA9ICFfdXNpbmdVc2VyQnJhbmNoXG5cbiAgICAgICAgaWYgKCFjcmVhdGVFZGl0QnJhbmNoKSB7IC8vIGlmIGFscmVhZHkgdXNpbmcgdGhlIHVzZXIgYnJhbmNoXG4gICAgICAgICAgaWYgKHdvcmtpbmdSZXNvdXJjZUJyYW5jaCAhPT0gdXNlckVkaXRCcmFuY2hOYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIHN0YXRlIGNvbmZsaWN0IC0gc2hvdWxkIGJlIGluIHVzZXIgYnJhbmNoICR7dXNlckVkaXRCcmFuY2hOYW1lfSwgYnV0IGFjdHVhbGx5IHVzaW5nICR7d29ya2luZ1Jlc291cmNlQnJhbmNofWApXG4gICAgICAgICAgICBjcmVhdGVFZGl0QnJhbmNoID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gYWxyZWFkeSB1c2luZyBlZGl0IGJyYW5jaDogJHt3b3JraW5nUmVzb3VyY2VCcmFuY2h9YClcbiAgICAgICAgICAgIHNldFN0YXRlKHsgZWRpdEJyYW5jaFJlYWR5OiB0cnVlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNyZWF0ZUVkaXRCcmFuY2gpIHsgLy8gaWYgbm90IHlldCB1c2luZyB0aGUgdXNlciBicmFuY2gsIGNyZWF0ZSBpdFxuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjcmVhdGluZyBlZGl0IGJyYW5jaGApXG4gICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgZWRpdEJyYW5jaFJlYWR5OiBmYWxzZSxcbiAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgICAgICAgc2hhOiBudWxsLFxuICAgICAgICAgIH0pIC8vIHdlIHdpbGwgbmVlZCBhIG5ldyBzaGEgZm9yIGJvb2svYnJhbmNoXG5cbiAgICAgICAgICBjb25zdCBicmFuY2ggPSBhd2FpdCBzdGFydEVkaXRCcmFuY2goKVxuXG4gICAgICAgICAgaWYgKGJyYW5jaCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGVkaXQgYnJhbmNoIGNyZWF0ZWRgKVxuICAgICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBlZGl0QnJhbmNoUmVhZHk6IHRydWUsXG4gICAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IHRydWUsXG4gICAgICAgICAgICAgIHJlZjogYnJhbmNoLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBlcnJvciBjcmVhdGluZyBlZGl0IGJyYW5jaCcpXG4gICAgICAgICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG51bGwsIGZhbHNlLCBudWxsLCBgRXJyb3IgY3JlYXRpbmcgZWRpdCBicmFuY2ggJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWAsIHRydWUpXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGdldHRpbmcgdmVyc2UgY2hhbmdlc2ApXG4gICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgYmlibGVVc2ZtID0gY29yZS5nZXRSZXNwb25zZURhdGEoc2NyaXB0dXJlQ29uZmlnPy5mZXRjaFJlc3BvbnNlKVxuICAgICAgICAgIGxldCBtZXJnZUZhaWwgPSBmYWxzZVxuICAgICAgICAgIGxldCBjYXJkTnVtID0gMFxuXG4gICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgYmlibGVVc2ZtKSB7IC8vIGp1c3QgcmVwbGFjZSB2ZXJzZVxuICAgICAgICAgICAgICAgIG5ld1VzZm0gPSBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW0pXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAobmV3VXNmbSkge1xuICAgICAgICAgICAgICAgIGJpYmxlVXNmbSA9IG5ld1VzZm1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZXJnZUZhaWwgPSB0cnVlXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChtZXJnZUZhaWwpIHsgLy8gaWYgd2UgZmFpbGVkIHRvIG1lcmdlLCBmYWxsYmFjayB0byBicnV0ZSBmb3JjZSB2ZXJzZSBvYmplY3RzIHRvIFVTRk1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoJHtjYXJkTnVtfSkgLSB2ZXJzZSBub3QgZm91bmQsIGZhbGxpbmcgYmFjayB0byBpbnNlcnRpbmcgdmVyc2Ugb2JqZWN0YClcbiAgICAgICAgICAgIGxldCBuZXdCb29rSnNvblxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2FyZE51bSA9IHBhcnNlSW50KGNhcmRJbmRleClcbiAgICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV3VXNmbVxuICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhbmV3VXNmbSkge1xuICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldFZlcnNlT2JqZWN0c18gPSBudWxsXG5cbiAgICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZlcnNlVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKHVwZGF0ZWRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdCb29rSnNvbiA9IHRhcmdldFZlcnNlT2JqZWN0c18gJiYgc2NyaXB0dXJlQ29uZmlnPy51cGRhdGVWZXJzZShyZWYuY2hhcHRlciwgcmVmLnZlcnNlLCB7dmVyc2VPYmplY3RzOiB0YXJnZXRWZXJzZU9iamVjdHNffSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYmlibGVVc2ZtID0gdXNmbWpzLnRvVVNGTShuZXdCb29rSnNvbiwge2ZvcmNlZE5ld0xpbmVzOiB0cnVlfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgbmV3IFVTRk06ICR7YmlibGVVc2ZtLnN1YnN0cmluZygwLCAxMDApfS4uLmApXG4gICAgICAgICAgc2V0U3RhdGUoe3NhdmVDb250ZW50OiBiaWJsZVVzZm0sIHN0YXJ0U2F2ZTogdHJ1ZSwgc2F2ZUNsaWNrZWQ6IGZhbHNlfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGdldFJlYWR5Rm9yU2F2ZSgpXG4gIH0sIFtzYXZlQ2xpY2tlZF0pXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCB7IGNoYXB0ZXIgfSA9IF9yZWZlcmVuY2UgfHwge31cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IF92ZXJzZXNGb3JSZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZlxuICAgIGxldCBuZXdTZWxlY3Rpb25zID0gbmV3IE1hcCgpXG4gICAgbGV0IHVwZGF0ZVNlbGVjdGlvbnMgPSBmYWxzZVxuICAgIGNvbnN0IF9tYXAgPSBuZXdTZWxlY3Rpb25zXG4gICAgY29uc3Qgb3JpZ2luYWxCb29rSWQgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5ib29rSWRcbiAgICBjb25zdCBib29rVmVyc2VPYmplY3QgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5jaGFwdGVyc1xuICAgIGxldCBuZXdTZWxlY3RlZFF1b3RlID0gbnVsbFxuXG4gICAgLy8gaWYgd2UgaGF2ZSBldmVyeXRoaW5nIHdlIG5lZWQgdG8gY2FsY3VsYXRlIHNlbGVjdGlvbnNcbiAgICBpZiAoX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoICYmXG4gICAgICBib29rVmVyc2VPYmplY3QgJiZcbiAgICAgIChib29rSWQgPT09IG9yaWdpbmFsQm9va0lkKSAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0W2NoYXB0ZXJdICYmIC8vIHdlIG5lZWQgdG8gaGF2ZSBkYXRhIGZvciBjaGFwdGVyXG4gICAgICBzZWxlY3RlZFF1b3RlPy5xdW90ZVxuICAgICkge1xuICAgICAgLy8gaWYgcXVvdGUgaXMgZGlmZmVyZW50IHRoYW4gbGFzdFxuICAgICAgaWYgKCFpc0VxdWFsKGxhc3RTZWxlY3RlZFF1b3RlLCBzZWxlY3RlZFF1b3RlKSB8fFxuICAgICAgICAhaXNFcXVhbCh2ZXJzZXNGb3JSZWYsIF92ZXJzZXNGb3JSZWYpKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVmVyc2VzID0ge31cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0ZSA9IHt9IC8vIGtlZXAgdHJhY2sgb2YgdmVyc2Ugc3Vic3RpdHV0aW9uc1xuICAgICAgICBsZXQgc3RhcnRWZXJzZSA9IF92ZXJzZXNGb3JSZWZbMF0udmVyc2VcblxuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0VmVyc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgc3RhcnRWZXJzZSA9IHBhcnNlSW50KHN0YXJ0VmVyc2UpXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFzdFZlcnNlID0gc3RhcnRWZXJzZVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gX3ZlcnNlc0ZvclJlZi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBjb25zdCB2ZXJzZVJlZiA9IF92ZXJzZXNGb3JSZWZbaV1cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjaGFwdGVyLFxuICAgICAgICAgICAgdmVyc2UsXG4gICAgICAgICAgfSA9IHZlcnNlUmVmXG4gICAgICAgICAgLy8gVFJJQ0tZIC0gd2UgcmVtYXAgdmVyc2VzIGluIHJlZmVyZW5jZSByYW5nZSB0byBhIGxpbmVhciBzZXJpZXMgb2YgdmVyc2VzIHNvIHZlcnNlIHNwYW5zIGRvbid0IGNob2tlIGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZlxuICAgICAgICAgIGxldCBfdmVyc2UgPSBzdGFydFZlcnNlICsgaVxuICAgICAgICAgIGxhc3RWZXJzZSA9IF92ZXJzZVxuICAgICAgICAgIHN1YnN0aXR1dGVbYCR7Y2hhcHRlcn06JHtfdmVyc2V9YF0gPSBgJHtjaGFwdGVyfToke3ZlcnNlfWBcblxuICAgICAgICAgIGlmICghb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl0pIHtcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdID0ge31cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgdmVyc2VPYmplY3RzID0gW11cblxuICAgICAgICAgIGlmICgodHlwZW9mIHZlcnNlID09PSAnc3RyaW5nJykgJiYgKHZlcnNlLmluY2x1ZGVzKCctJykpKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va1ZlcnNlT2JqZWN0LCBgJHtjaGFwdGVyfToke3ZlcnNlfWApXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmVyc2VJdGVtIG9mIHZlcnNlcykge1xuICAgICAgICAgICAgICBjb25zdCB2byA9IHZlcnNlSXRlbS52ZXJzZURhdGEudmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0cy5jb25jYXQodm8pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXVt2ZXJzZV0/LnZlcnNlT2JqZWN0c1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2ZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKVxuICAgICAgICAgICAgb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl1bX3ZlcnNlXSA9IHsgdmVyc2VPYmplY3RzIH1cbiAgICAgICAgICAgIF9tYXAuc2V0KGAke2NoYXB0ZXJ9OiR7dmVyc2V9YCwgdmVyc2VPYmplY3RzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBuZXcgcmVmZXJlbmNlIHJhbmdlIGZvciBuZXcgbGluZWFyIHZlcnNlIHJhbmdlXG4gICAgICAgIGNvbnN0IFtjaGFwdGVyXSA9IHNlbGVjdGVkUXVvdGU/LnJlZmVyZW5jZT8uc3BsaXQoJzonKVxuICAgICAgICBsZXQgc3ViUmVmID0gYCR7Y2hhcHRlcn06JHtzdGFydFZlcnNlfWBcblxuICAgICAgICBpZiAobGFzdFZlcnNlICE9IHN0YXJ0VmVyc2UpIHtcbiAgICAgICAgICBzdWJSZWYgKz0gYC0ke2xhc3RWZXJzZX1gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdW90ZU1hdGNoZXMgPSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYoe1xuICAgICAgICAgIGJvb2tPYmplY3Q6IG9yaWdpbmFsVmVyc2VzLFxuICAgICAgICAgIHJlZjogc3ViUmVmLFxuICAgICAgICAgIHF1b3RlOiBzZWxlY3RlZFF1b3RlPy5xdW90ZSxcbiAgICAgICAgICBvY2N1cnJlbmNlOiBzZWxlY3RlZFF1b3RlPy5vY2N1cnJlbmNlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSBuZXcgTWFwKClcblxuICAgICAgICBpZiAocXVvdGVNYXRjaGVzPy5zaXplKSB7XG4gICAgICAgICAgcXVvdGVNYXRjaGVzLmZvckVhY2goKHdvcmRzLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9rZXkgPSBzdWJzdGl0dXRlW2tleV1cblxuICAgICAgICAgICAgc2VsZWN0aW9ucy5zZXQoX2tleSwgd29yZHMubWFwKHdvcmQgPT4gKFxuICAgICAgICAgICAgICB7IC4uLndvcmQsIHRleHQ6IGNvcmUubm9ybWFsaXplU3RyaW5nKHdvcmQudGV4dCkgfVxuICAgICAgICAgICAgKSkpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBuZXdTZWxlY3Rpb25zID0gc2VsZWN0aW9uc1xuICAgICAgICBuZXdTZWxlY3RlZFF1b3RlID0gc2VsZWN0ZWRRdW90ZVxuICAgICAgICB1cGRhdGVTZWxlY3Rpb25zID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5ld1N0YXRlOiBhbnkgPSB7fVxuXG4gICAgLy8gdXBkYXRlIHN0YXRlcyB0aGF0IGhhdmUgY2hhbmdlZFxuICAgIGlmICghYXJlTWFwc1RoZVNhbWUodmVyc2VPYmplY3RzTWFwLCBfbWFwKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VPYmplY3RzTWFwID0gX21hcFxuICAgIH1cblxuICAgIGNvbnN0IGJvb2tzTm90U2FtZSA9IHJlZmVyZW5jZT8ucHJvamVjdElkICE9PSBjdXJyZW50UmVmZXJlbmNlPy5wcm9qZWN0SWRcblxuICAgIGlmIChib29rc05vdFNhbWUgfHwgIWFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VzRm9yUmVmID0gX3ZlcnNlc0ZvclJlZlxuICAgICAgbmV3U3RhdGUubGFzdFNlbGVjdGVkUXVvdGUgPSBuZXdTZWxlY3RlZFF1b3RlXG4gICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgIH1cblxuICAgIGlmIChuZXdTZWxlY3RlZFF1b3RlKSB7XG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlU2VsZWN0aW9ucykge1xuICAgICAgaWYgKCFhcmVNYXBzVGhlU2FtZShzZWxlY3Rpb25zIHx8IChuZXcgTWFwKCkpLCBuZXdTZWxlY3Rpb25zKSkge1xuICAgICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhuZXdTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICB9XG4gIH0sIFtvd25lciwgcmVzb3VyY2VJZCwgYm9va0lkLCBsYW5ndWFnZUlkXywgc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWYsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIHNlbGVjdGVkUXVvdGVdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGNsZWFyIHNldHRpbmdzIG9uIHZlcnNlIGNoYW5nZVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdDoge30sXG4gICAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIH0pXG4gIH0sIFtfcmVmZXJlbmNlXSlcblxuICBjb25zdCB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgPSAocmVmZXJlbmNlLCBhbGlnbmVkKSA9PiB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiB7IC4uLnByZXZTdGF0ZS52ZXJzZXNBbGlnbm1lbnRTdGF0dXMsIFtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YF06IGFsaWduZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGxldCBfdmVyc2VzRm9yUmVmID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWZcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChfdmVyc2VzRm9yUmVmPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHsgcmVmZXJlbmNlLCByZXNvdXJjZUxpbmsgfSA9IHNjcmlwdHVyZUNvbmZpZyB8fCB7fVxuICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQuX3ZlcnNlc0ZvclJlZiBjaGFuZ2VkYCwgeyByZWZlcmVuY2UsIHJlc291cmNlTGluayB9KVxuICAgIH1cbiAgfSwgW192ZXJzZXNGb3JSZWZdKVxuXG4gIGlmICghX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoKSB7IC8vIGlmIGVtcHR5IG9mIHJlZmVyZW5jZXMsIGNyZWF0ZSBzaW5nbGUgZW1wdHkgcmVmZXJlbmNlXG4gICAgX3ZlcnNlc0ZvclJlZiA9IFt7IC4uLnJlZmVyZW5jZSB9XVxuICB9XG5cbiAgY29uc3QgcmVuZGVyZWRTY3JpcHR1cmVQYW5lcyA9IF92ZXJzZXNGb3JSZWY/Lm1hcCgoX2N1cnJlbnRWZXJzZURhdGEsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IF9jdXJyZW50VmVyc2VEYXRhPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cyB8fCBbXVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSBfY3VycmVudFZlcnNlRGF0YSB8fCB7fVxuICAgIGNvbnN0IHByb2plY3RJZCA9IGN1cnJlbnRSZWZlcmVuY2U/LnByb2plY3RJZCB8fCByZWZlcmVuY2U/LnByb2plY3RJZFxuICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7XG4gICAgICAuLi5fdmVyc2VzRm9yUmVmLFxuICAgICAgY2hhcHRlcixcbiAgICAgIHZlcnNlLFxuICAgICAgcHJvamVjdElkLFxuICAgIH1cbiAgICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAgIC4uLnNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gICAgICBjdXJyZW50SW5kZXg6IGluZGV4LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIHJlZmVyZW5jZTogX3JlZmVyZW5jZSxcbiAgICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIH1cblxuICAgIGxldCBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSBmYWxzZVxuXG4gICAgaWYgKHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQpIHtcbiAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCA9IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQuY2hhcHRlciA9PSBjaGFwdGVyICYmIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQudmVyc2UgPT0gdmVyc2VcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgey4uLnNjcmlwdHVyZUNvbmZpZ31cbiAgICAgICAgY29udGVudFN0eWxlPXtjb250ZW50U3R5bGV9XG4gICAgICAgIGN1cnJlbnRJbmRleD17aW5kZXh9XG4gICAgICAgIGRldGVybWluaW5nQnJhbmNoPXshcmVhZHlGb3JGZXRjaH1cbiAgICAgICAgZGlyZWN0aW9uPXtkaXJlY3Rpb259XG4gICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyX31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgIGlzTlQ9e2lzTlRffVxuICAgICAgICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ9e2lzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudH1cbiAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgb25BbGlnbm1lbnRGaW5pc2g9eygpID0+IHNldFN0YXRlKHsgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCB9KX1cbiAgICAgICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz17b3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0c31cbiAgICAgICAgcmVmU3R5bGU9e3JlZlN0eWxlfVxuICAgICAgICByZWZlcmVuY2U9e19yZWZlcmVuY2V9XG4gICAgICAgIHNhdmluZz17c3RhcnRTYXZlfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc9e19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnfVxuICAgICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cz17c2V0V29yZEFsaWduZXJTdGF0dXN9XG4gICAgICAgIHNlcnZlcj17c2VydmVyfVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzPXt1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAvPlxuICAgIClcbiAgfSlcblxuICBjb25zdCBoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrID0gKCkgPT4ge1xuICAgIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIHNldFN0YXRlKHsgc2hvd0FsaWdubWVudFBvcHVwOiB0cnVlIH0pXG4gICAgfSBlbHNlIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiB2ZXJzZXNGb3JSZWZbMF0gfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBvblJlbmRlclRvb2xiYXIgPSAoeyBpdGVtcyB9KSA9PiB7XG4gICAgY29uc3QgbmV3SXRlbXMgPSBbLi4uaXRlbXNdXG5cbiAgICBsZXQgYWxsVmVyc2VzQWxpZ25lZCA9IGZhbHNlXG5cbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHZlcnNlc0FsaWdubWVudFN0YXR1cyBhcmUgdHJ1ZVxuICAgIGlmICh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpIHtcbiAgICAgIGFsbFZlcnNlc0FsaWduZWQgPSBPYmplY3QudmFsdWVzKHZlcnNlc0FsaWdubWVudFN0YXR1cykuZXZlcnkoYWxpZ25TdGF0dXMgPT4gYWxpZ25TdGF0dXMgPT09IHRydWUpXG4gICAgfVxuXG4gICAgbGV0IGFsaWduSWNvbiA9IG51bGxcbiAgICBsZXQgYWxpZ25CdXR0b25UZXh0ID0gJydcblxuICAgIGlmIChhbGxWZXJzZXNBbGlnbmVkKSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rMiBpZD17YHZhbGlkX2ljb25fJHtyZXNvdXJjZUlkfWB9IGNvbG9yPScjQkJCJy8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIFZhbGlkJ1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rQnJlYWsyIGlkPXtgaW52YWxpZF9hbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyMwMDAnLz5cbiAgICAgIGFsaWduQnV0dG9uVGV4dCA9ICdBbGlnbm1lbnQgaXMgSW52YWxpZCdcbiAgICB9XG5cbiAgICBpZiAoc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgcmVzb3VyY2VJZCAhPT0gJ09SSUdJTkFMX1NPVVJDRScpIHtcbiAgICAgIG5ld0l0ZW1zLnB1c2goXG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgaWQ9e2BhbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH1cbiAgICAgICAgICBrZXk9J2NoZWNraW5nLWJ1dHRvbidcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrfVxuICAgICAgICAgIHRpdGxlPXthbGlnbkJ1dHRvblRleHR9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICAgID5cbiAgICAgICAgICB7YWxpZ25JY29ufVxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0l0ZW1zXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyXG4gICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgb25TZWxlY3Rpb25zPXtuZXdTZWxlY3Rpb25zID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ29uU2VsZWN0aW9ucycsIG5ld1NlbGVjdGlvbnMpXG4gICAgICB9fVxuICAgICAgcXVvdGU9e3NlbGVjdGVkUXVvdGU/LnF1b3RlfVxuICAgICAgb2NjdXJyZW5jZT17Zml4T2NjdXJyZW5jZShzZWxlY3RlZFF1b3RlPy5vY2N1cnJlbmNlKX1cbiAgICAgIHZlcnNlT2JqZWN0c01hcD17dmVyc2VPYmplY3RzTWFwfVxuICAgID5cbiAgICAgIDxDYXJkXG4gICAgICAgIGlkPXtgc2NyaXB0dXJlX2NhcmRfJHtjYXJkTnVtfWB9XG4gICAgICAgIHRpdGxlPXtzY3JpcHR1cmVMYWJlbH1cbiAgICAgICAgc2V0dGluZ3NUaXRsZT17c2NyaXB0dXJlVGl0bGUgKyAnIFNldHRpbmdzJ31cbiAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICBoZWFkZXJzPXtoZWFkZXJzfVxuICAgICAgICBmaWx0ZXJzPXtmaWx0ZXJzfVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGl0ZW1JbmRleD17aXRlbUluZGV4fVxuICAgICAgICBzZXRGaWx0ZXJzPXtzZXRGaWx0ZXJzfVxuICAgICAgICBzZXRGb250U2l6ZT17c2V0Rm9udFNpemV9XG4gICAgICAgIHNldEl0ZW1JbmRleD17c2V0SXRlbUluZGV4fVxuICAgICAgICBtYXJrZG93blZpZXc9e21hcmtkb3duVmlld31cbiAgICAgICAgc2V0TWFya2Rvd25WaWV3PXtzZXRNYXJrZG93blZpZXd9XG4gICAgICAgIGdldEN1c3RvbUNvbXBvbmVudD17Z2V0U2NyaXB0dXJlU2VsZWN0b3J9XG4gICAgICAgIGhpZGVNYXJrZG93blRvZ2dsZVxuICAgICAgICBvbk1lbnVDbG9zZT17b25NZW51Q2xvc2V9XG4gICAgICAgIG9uTWluaW1pemU9e29uTWluaW1pemUgPyAoKSA9PiBvbk1pbmltaXplKGlkKSA6IG51bGx9XG4gICAgICAgIGVkaXRhYmxlPXtlbmFibGVFZGl0IHx8IGVuYWJsZUFsaWdubWVudH1cbiAgICAgICAgc2F2ZWQ9e3N0YXJ0U2F2ZSB8fCAhaGF2ZVVuc2F2ZWRDaGFuZ2VzfVxuICAgICAgICBvblNhdmVFZGl0PXsoKSA9PiBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiB0cnVlIH0pfVxuICAgICAgICBvblJlbmRlclRvb2xiYXI9e29uUmVuZGVyVG9vbGJhcn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8VmVyc2VTZWxlY3RvclBvcHVwXG4gICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgIG9wZW49e3Nob3dBbGlnbm1lbnRQb3B1cH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlIH0pfVxuICAgICAgICB2ZXJzZXNGb3JSZWY9e3ZlcnNlc0ZvclJlZn1cbiAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgIG9uVmVyc2VTZWxlY3Q9eyh2ZXJzZSkgPT4gc2V0U3RhdGUoe1xuICAgICAgICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlLFxuICAgICAgICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2VcbiAgICAgICAgfSl9XG4gICAgICAvPlxuICAgIDwvU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVDYXJkLnByb3BUeXBlcyA9IHtcbiAgLyoqIHJlcG8gYnJhbmNoIG9yIHRhZyBzdWNoIGFzIG1hc3RlciAqL1xuICBhcHBSZWY6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGF1dGhlbnRpY2F0aW9uIGluZm8gKi9cbiAgYXV0aGVudGljYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBpbmRleCBmb3IgY3VycmVudCBib29rIChlLmcuICcwMScgZm9yICdnZW4nKSovXG4gIGJvb2tJbmRleDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIHNjcmlwdHVyZSBjYXJkIG51bWJlciAoMCB0byAyIGZvciBleGFtcGxlKSAqL1xuICBjYXJkTnVtOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIC8qKiBDU1MgY2xhc3NlcyAqL1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBvcHRpb25hbCB1cmwgZm9yIGdyZWVrIHJlcG8gKi9cbiAgZ3JlZWtSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBoZWJyZXcgcmVwbyAqL1xuICBoZWJyZXdSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBmdW5jdGlvbiB0byBtaW5pbWl6ZSB0aGUgY2FyZCAob3B0aW9uYWwpICovXG4gIG9uTWluaW1pemU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgY2FsbGJhY2sgaWYgZXJyb3IgbG9hZGluZyByZXNvdXJjZSwgcGFyYW1ldGVyIHJldHVybmVkIGFyZTpcbiAgICogICAgKHtzdHJpbmd9IGVycm9yTWVzc2FnZSwge2Jvb2xlYW59IGlzQWNjZXNzRXJyb3IsIHtvYmplY3R9IHJlc291cmNlU3RhdHVzKVxuICAgKiAgICAgIC0gaXNBY2Nlc3NFcnJvciAtIGlzIHRydWUgaWYgdGhpcyB3YXMgYW4gZXJyb3IgdHJ5aW5nIHRvIGFjY2VzcyBmaWxlXG4gICAqICAgICAgLSByZXNvdXJjZVN0YXR1cyAtIGlzIG9iamVjdCBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgcHJvYmxlbXMgZmV0Y2hpbmcgcmVzb3VyY2UgKi9cbiAgb25SZXNvdXJjZUVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHRoZSBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9vayAqL1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBQcm9wVHlwZXMub2JqZWN0LFxuICByZWZlcmVuY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHByb2plY3RJZCAoYm9va0lEKSB0byB1c2UgKi9cbiAgICBwcm9qZWN0SWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogY3VycmVudCBjaGFwdGVyIG51bWJlciAqL1xuICAgIGNoYXB0ZXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IHZlcnNlIG51bWJlciAqL1xuICAgIHZlcnNlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiByZXNvdXJjZSBvYmplY3QgKi9cbiAgcmVzb3VyY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHJlc291cmNlIGxhbmd1YWdlIHRvIHVzZSAqL1xuICAgIGxhbmd1YWdlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXNvdXJjZUlkIHRvIHVzZSAoZS5nLiB1Z250KSAqL1xuICAgIHJlc291cmNlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VzIHN1Y2ggYXMgdW5mb2xkaW5nV29yZCAqL1xuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKlRoaXMgaXMgY3VycmVudGx5IHNlbGVjdGVkIHF1b3RlICovXG4gIHNlbGVjdGVkUXVvdGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBzZXJ2ZXIgKGUuZy4gJ2h0dHBzOi8vZ2l0LmRvb3I0My5vcmcnKSAqL1xuICBzZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGZ1bmN0aW9uIHRvIHNldCBzdGF0ZSBpbiBhcHAgdGhhdCB0aGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzICovXG4gIHNldFNhdmVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgd29yZCBhbGlnbmVyIHN0YXRlICovXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdXNlIG1ldGhvZCBmb3IgdXNpbmcgbG9jYWwgc3RvcmFnZSBzcGVjaWZpYyBmb3IgdXNlciAqL1xuICB1c2VVc2VyTG9jYWxTdG9yYWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuIl19
|
|
@@ -150,23 +150,19 @@ function ScripturePane(_ref) {
|
|
|
150
150
|
if (isVerseSelectedForAlignment && !alignerData && !doingAlignment) {
|
|
151
151
|
console.log("ScripturePane - verse selected for alignment", basicReference);
|
|
152
152
|
handleAlignmentClick();
|
|
153
|
-
}
|
|
153
|
+
} // const verseChanged = React.useMemo(() => {
|
|
154
|
+
// return (newVerseText !== newText)
|
|
155
|
+
// }, [newVerseText, newText])
|
|
156
|
+
//
|
|
157
|
+
// React.useEffect(() => {
|
|
158
|
+
// if (newVerseText !== newText) {
|
|
159
|
+
// console.log(`ScripturePane - new verse text diverged`, { newVerseText, newText })
|
|
160
|
+
// } else {
|
|
161
|
+
// console.log(`ScripturePane - new verse text converged`, { newVerseText })
|
|
162
|
+
// }
|
|
163
|
+
// }, [verseChanged])
|
|
164
|
+
|
|
154
165
|
|
|
155
|
-
var verseChanged = React.useMemo(function () {
|
|
156
|
-
return newVerseText !== newText;
|
|
157
|
-
}, [newVerseText, newText]);
|
|
158
|
-
React.useEffect(function () {
|
|
159
|
-
if (newVerseText !== newText) {
|
|
160
|
-
console.log("ScripturePane - new verse text diverged", {
|
|
161
|
-
newVerseText: newVerseText,
|
|
162
|
-
newText: newText
|
|
163
|
-
});
|
|
164
|
-
} else {
|
|
165
|
-
console.log("ScripturePane - new verse text converged", {
|
|
166
|
-
newVerseText: newVerseText
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
}, [verseChanged]);
|
|
170
166
|
React.useEffect(function () {
|
|
171
167
|
updateVersesAlignmentStatus && updateVersesAlignmentStatus(reference, aligned);
|
|
172
168
|
}, [aligned, chapter, verse, projectId]);
|
|
@@ -272,4 +268,4 @@ ScripturePane.defaultProps = {
|
|
|
272
268
|
verseObjects: []
|
|
273
269
|
};
|
|
274
270
|
export default ScripturePane;
|
|
275
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJMT0FESU5HX1JFU09VUkNFIiwiU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIkNvbnRhaW5lciIsIkNvbnRlbnQiLCJNZXNzYWdlU3R5bGUiLCJkaXJlY3Rpb24iLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJ3aWR0aCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJUZXh0QXJlYVN0eWxlIiwibWluV2lkdGgiLCJTY3JpcHR1cmVQYW5lIiwiY3VycmVudEluZGV4IiwiY29udGVudFN0eWxlIiwiZGV0ZXJtaW5pbmdCcmFuY2giLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJnZXRMZXhpY29uRGF0YSIsImlzTlQiLCJpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJvbkFsaWdubWVudEZpbmlzaCIsIm9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2F2aW5nIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwic2VydmVyIiwidHJhbnNsYXRlIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwidXNlU3RhdGUiLCJkb2luZ0FsaWdubWVudCIsIm5ld1RleHQiLCJ1cmxFcnJvciIsInN0YXRlIiwic2V0U3RhdGVfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJwcm9qZWN0SWQiLCJiYXNpY1JlZmVyZW5jZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiYWxpZ25lZCIsImFsaWduZXJEYXRhIiwiY3VycmVudFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwidW5zYXZlZENoYW5nZXMiLCJuZXdWZXJzZVRleHQiLCJjb25zb2xlIiwibG9nIiwidmVyc2VDaGFuZ2VkIiwidXNlTWVtbyIsInVzZUVmZmVjdCIsImNhbGN1bGF0ZWRGb250U2l6ZSIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uVGV4dENoYW5nZSIsImV2ZW50IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwib25CbHVyIiwicGFkZGluZ0JvdHRvbSIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLG9CQUFQLE1BQWlDLHlCQUFqQztBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsa0JBQTFDO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsYUFBbkM7QUFDQSxTQUFTQyxrQkFBVCxFQUE2QkMsZ0JBQTdCLFFBQXFELGFBQXJEO0FBQ0EsU0FBU0MsMkJB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QUNxRSxZQUFkLEdBQTZCO0FBQUVSLEVBQUFBLFlBQVksRUFBRTtBQUFoQixDQUE3QjtBQUVBLGVBQWU3RCxhQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1lc3NhZ2UsIExPQURJTkdfUkVTT1VSQ0UgfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcywgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQnXG5pbXBvcnQgeyBDb250YWluZXIsIENvbnRlbnQgfSBmcm9tICcuL3N0eWxlZCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIGNvbnRlbnQgKiovXG4gIGNvbnRlbnRTdHlsZTogYW55O1xuICAvLyBpbmRleCBudW1iZXIgZm9yIHRoaXMgc2NyaXB0dXJlIHBhbmVcbiAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gIC8vIHdhaXRpbmcgdG8gZGV0ZXJtaW5lIGJyYW5jaFxuICBkZXRlcm1pbmluZ0JyYW5jaDogYm9vbGVhbixcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiB3aGV0aGVyIG9yIG5vdCB0aGlzIGN1cnJlbnQgdmVyc2UgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIGFsaWdubWVudCAqL1xuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IGJvb2xlYW47XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB2ZXJzZSBhbGlnbm1lbnQgaGFzIGZpbmlzaGVkICovXG4gIG9uQWxpZ25tZW50RmluaXNoOiBGdW5jdGlvbjtcbiAgLy8gb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2tcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogb2JqZWN0LFxuICAvKiogY3VycmVudCByZWZlcmVuY2UgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgcmVmZXJlbmNlICoqL1xuICByZWZTdHlsZTogYW55O1xuICAvKiogb2JqZWN0IHRoYXQgY29udGFpbnMgcmVzb3VyY2UgbG9hZGluZyBzdGF0dXMgb3IgZmV0Y2hpbmcgZXJyb3JzICovXG4gIHJlc291cmNlU3RhdHVzOiBvYmplY3R8dW5kZWZpbmVkO1xuICAvKiogcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkICovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgY3VycmVudGx5IHNhdmluZyB1cGRhdGVkIHRleHQgYW5kIGFsaWdubWVudHMgKi9cbiAgc2F2aW5nOiBib29sZWFuO1xuICAvLyBpbml0aWFsaXphdGlvbiBmb3IgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnOiBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsXG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogY2FsbGJhY2sgdG8gZmxhZyB1bnNhdmVkIHN0YXR1cyAqL1xuICBzZXRTYXZlZENoYW5nZXM6IEZ1bmN0aW9uO1xuICAvLyBjYWxsYmFjayBmb3IgY2hhbmdlIGluIHdvcmQgYWxpZ25tZW50IHN0YXR1c1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogRnVuY3Rpb247XG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogRnVuY3Rpb247XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgdG8gdXBkYXRlIHZlcnNlIGFsaWdubWVudCBzdGF0dXMgKi9cbiAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzOiBGdW5jdGlvbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICBjdXJyZW50SW5kZXgsXG4gIGNvbnRlbnRTdHlsZSxcbiAgZGV0ZXJtaW5pbmdCcmFuY2gsXG4gIGRpcmVjdGlvbixcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBmb250U2l6ZSxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGlzTlQsXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgb25BbGlnbm1lbnRGaW5pc2gsXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIHJlZmVyZW5jZSxcbiAgcmVmU3R5bGUsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNhdmluZyxcbiAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgc2VydmVyLFxuICB0cmFuc2xhdGUsXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgdXJsRXJyb3I6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBkb2luZ0FsaWdubWVudCxcbiAgICBuZXdUZXh0LFxuICAgIHVybEVycm9yLFxuICB9ID0gc3RhdGVcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG5cbiAgbGV0IHJlc291cmNlTXNnID0gbnVsbFxuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1zZyA9ICdTYXZpbmcgQ2hhbmdlcy4uLidcbiAgfSBlbHNlIGlmIChkZXRlcm1pbmluZ0JyYW5jaCkge1xuICAgIHJlc291cmNlTXNnID0gJ1ByZS0nICsgTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIHJlc291cmNlTXNnID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIHByb2plY3RJZCxcbiAgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcbiAgY29uc3QgYmFzaWNSZWZlcmVuY2UgPSB7XG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICBwcm9qZWN0SWQsXG4gIH1cblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIGVkaXRpbmcsXG4gICAgICB1bnNhdmVkQ2hhbmdlcyxcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICB9LFxuICB9ID0gX3NjcmlwdHVyZUFsaWdubWVudEVkaXRcblxuICBpZiAoaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ICYmICFhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRgLCBiYXNpY1JlZmVyZW5jZSlcbiAgICBoYW5kbGVBbGlnbm1lbnRDbGljaygpXG4gIH1cblxuICBjb25zdCB2ZXJzZUNoYW5nZWQgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKG5ld1ZlcnNlVGV4dCAhPT0gbmV3VGV4dClcbiAgfSwgW25ld1ZlcnNlVGV4dCwgbmV3VGV4dF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobmV3VmVyc2VUZXh0ICE9PSBuZXdUZXh0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIG5ldyB2ZXJzZSB0ZXh0IGRpdmVyZ2VkYCwgeyBuZXdWZXJzZVRleHQsIG5ld1RleHQgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBuZXcgdmVyc2UgdGV4dCBjb252ZXJnZWRgLCB7IG5ld1ZlcnNlVGV4dCB9KVxuICAgIH1cbiAgfSwgW3ZlcnNlQ2hhbmdlZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgJiYgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzKHJlZmVyZW5jZSwgYWxpZ25lZClcbiAgfSwgW2FsaWduZWQsIGNoYXB0ZXIsIHZlcnNlLCBwcm9qZWN0SWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFsaWduZXJEYXRhICYmICFkb2luZ0FsaWdubWVudCkge1xuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiB0cnVlIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBhbGlnbmVyRGF0YSB3ZW50IGZhbHNlIHVuZXhwZWN0ZWRgLCB7IGJhc2ljUmVmZXJlbmNlLCBhbGlnbmVyRGF0YSwgZG9pbmdBbGlnbm1lbnQgfSlcbiAgICAgIH1cblxuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiBmYWxzZSB9KVxuICAgICAgb25BbGlnbm1lbnRGaW5pc2ggJiYgb25BbGlnbm1lbnRGaW5pc2goKVxuICAgIH1cbiAgfSwgW19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Py5zdGF0ZT8uYWxpZ25lckRhdGFdKVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBmb250IHNpemVcbiAgY29uc3QgY2FsY3VsYXRlZEZvbnRTaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiAoXG4gICAgcGFyc2VGbG9hdChUZXh0QXJlYVN0eWxlLmZvbnRTaXplKSAqIGZvbnRTaXplIC8gMTAwICsgJ3B4J1xuICApLCBbZm9udFNpemVdKVxuXG4gIGNvbnN0IHRleHRBcmVhU3R5bGUgPSB7XG4gICAgLi4uY29udGVudFN0eWxlLFxuICAgIC4uLlRleHRBcmVhU3R5bGUsXG4gICAgZm9udFNpemU6IGNhbGN1bGF0ZWRGb250U2l6ZSxcbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICBjbGVhckNoYW5nZXMoKVxuICAgIHNldEluaXRpYWxWZXJzZVRleHQodmVyc2VUZXh0KVxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbnVsbCB9KVxuICB9LCBbeyBiYXNpY1JlZmVyZW5jZSwgaW5pdGlhbFZlcnNlT2JqZWN0cyB9XSlcblxuICBmdW5jdGlvbiBvblRleHRDaGFuZ2UoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgbmV3VmVyc2VUZXh0ID0gZXZlbnQ/LnRhcmdldD8udmFsdWVcbiAgICBjb25zdCBjaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG4gICAgLy8gY29uc29sZS5sb2coYFNQLm9uVGV4dENoYW5nZWAsIHsgY2hhbmdlZCwgbmV3VGV4dDogbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0IH0pXG4gICAgc2V0VmVyc2VDaGFuZ2VkKGNoYW5nZWQsIG5ld1ZlcnNlVGV4dCwgaW5pdGlhbFZlcnNlVGV4dClcbiAgICBzZXRTdGF0ZSh7IG5ld1RleHQ6IG5ld1ZlcnNlVGV4dCB9KVxuICB9XG5cbiAgZnVuY3Rpb24gb25CbHVyKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIHNldEVkaXRpbmcoZmFsc2UsIG5ld1RleHQpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nIH19PlxuICAgICAge3Jlc291cmNlTXNnID9cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICA8ZGl2IHN0eWxlPXtNZXNzYWdlU3R5bGV9PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IGAke2ZvbnRTaXplfSVgIH19PiB7cmVzb3VyY2VNc2d9IDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8Q29udGVudD5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17cmVmU3R5bGV9PiB7Y2hhcHRlcn06e3ZlcnNlfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17Y29udGVudFN0eWxlfSBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRFZGl0aW5nICYmIHNldEVkaXRpbmcodHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlZGl0aW5nID9cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtuZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt0ZXh0QXJlYVN0eWxlfVxuICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgIDxWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICAgICAgICAgICAgdmVyc2VPYmplY3RzPXtjdXJyZW50VmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJ9XG4gICAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Db250ZW50PlxuICAgICAgfVxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cblNjcmlwdHVyZVBhbmUuZGVmYXVsdFByb3BzID0geyB2ZXJzZU9iamVjdHM6IFtdIH1cblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0dXJlUGFuZVxuIl19
|
|
271
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJMT0FESU5HX1JFU09VUkNFIiwiU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIkNvbnRhaW5lciIsIkNvbnRlbnQiLCJNZXNzYWdlU3R5bGUiLCJkaXJlY3Rpb24iLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJ3aWR0aCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJUZXh0QXJlYVN0eWxlIiwibWluV2lkdGgiLCJTY3JpcHR1cmVQYW5lIiwiY3VycmVudEluZGV4IiwiY29udGVudFN0eWxlIiwiZGV0ZXJtaW5pbmdCcmFuY2giLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJnZXRMZXhpY29uRGF0YSIsImlzTlQiLCJpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJvbkFsaWdubWVudEZpbmlzaCIsIm9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2F2aW5nIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwic2VydmVyIiwidHJhbnNsYXRlIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwidXNlU3RhdGUiLCJkb2luZ0FsaWdubWVudCIsIm5ld1RleHQiLCJ1cmxFcnJvciIsInN0YXRlIiwic2V0U3RhdGVfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJwcm9qZWN0SWQiLCJiYXNpY1JlZmVyZW5jZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiYWxpZ25lZCIsImFsaWduZXJEYXRhIiwiY3VycmVudFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwidW5zYXZlZENoYW5nZXMiLCJuZXdWZXJzZVRleHQiLCJjb25zb2xlIiwibG9nIiwidXNlRWZmZWN0IiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uVGV4dENoYW5nZSIsImV2ZW50IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwib25CbHVyIiwicGFkZGluZ0JvdHRvbSIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLG9CQUFQLE1BQWlDLHlCQUFqQztBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsa0JBQTFDO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsYUFBbkM7QUFDQSxTQUFTQyxrQkFBVCxFQUE2QkMsZ0JBQTdCLFFBQXFELGFBQXJEO0FBQ0EsU0FBU0MsMkJBQVQsRUFBc0NDLHlCQUF0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QUFLLEVBQUVoQyxZQUFiO0FBQTJCLElBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ3hDd0MsTUFBQUEsVUFBVSxJQUFJQSxVQUFVLENBQUMsSUFBRCxDQUF4QjtBQUNEO0FBRkQsS0FJR00sT0FBTyxnQkFDTjtBQUNFLElBQUEsWUFBWSxFQUFFRSxZQUFZLElBQUlwQixnQkFEaEM7QUFFRSxJQUFBLFFBQVEsRUFBRStCLFlBRlo7QUFHRSxJQUFBLE1BQU0sRUFBRUssTUFIVjtBQUlFLElBQUEsS0FBSyxFQUFFVCxhQUpUO0FBS0UsSUFBQSxTQUFTO0FBTFgsSUFETSxnQkFTTixvQkFBQyxZQUFEO0FBQ0UsSUFBQSxRQUFRLFlBQUsvQyxTQUFTLENBQUN1QixPQUFmLGNBQTBCdkIsU0FBUyxDQUFDd0IsS0FBcEMsQ0FEVjtBQUVFLElBQUEsWUFBWSxFQUFFWSxtQkFBbUIsSUFBSUMsbUJBRnZDO0FBR0UsSUFBQSxrQkFBa0IsRUFBRTNDLGtCQUh0QjtBQUlFLElBQUEsY0FBYyxFQUFFQyxjQUpsQjtBQUtFLElBQUEsU0FBUyxFQUFFYztBQUxiLElBYkosQ0FGRixDQVBKLENBREY7QUFvQ0Q7O0FBRURuQixhQUFhLENBQUNvRSxZQUFkLEdBQTZCO0FBQUVSLEVBQUFBLFlBQVksRUFBRTtBQUFoQixDQUE3QjtBQUVBLGVBQWU1RCxhQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1lc3NhZ2UsIExPQURJTkdfUkVTT1VSQ0UgfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcywgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQnXG5pbXBvcnQgeyBDb250YWluZXIsIENvbnRlbnQgfSBmcm9tICcuL3N0eWxlZCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIGNvbnRlbnQgKiovXG4gIGNvbnRlbnRTdHlsZTogYW55O1xuICAvLyBpbmRleCBudW1iZXIgZm9yIHRoaXMgc2NyaXB0dXJlIHBhbmVcbiAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gIC8vIHdhaXRpbmcgdG8gZGV0ZXJtaW5lIGJyYW5jaFxuICBkZXRlcm1pbmluZ0JyYW5jaDogYm9vbGVhbixcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiB3aGV0aGVyIG9yIG5vdCB0aGlzIGN1cnJlbnQgdmVyc2UgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIGFsaWdubWVudCAqL1xuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IGJvb2xlYW47XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB2ZXJzZSBhbGlnbm1lbnQgaGFzIGZpbmlzaGVkICovXG4gIG9uQWxpZ25tZW50RmluaXNoOiBGdW5jdGlvbjtcbiAgLy8gb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2tcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogb2JqZWN0LFxuICAvKiogY3VycmVudCByZWZlcmVuY2UgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgcmVmZXJlbmNlICoqL1xuICByZWZTdHlsZTogYW55O1xuICAvKiogb2JqZWN0IHRoYXQgY29udGFpbnMgcmVzb3VyY2UgbG9hZGluZyBzdGF0dXMgb3IgZmV0Y2hpbmcgZXJyb3JzICovXG4gIHJlc291cmNlU3RhdHVzOiBvYmplY3R8dW5kZWZpbmVkO1xuICAvKiogcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkICovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgY3VycmVudGx5IHNhdmluZyB1cGRhdGVkIHRleHQgYW5kIGFsaWdubWVudHMgKi9cbiAgc2F2aW5nOiBib29sZWFuO1xuICAvLyBpbml0aWFsaXphdGlvbiBmb3IgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnOiBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMsXG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogY2FsbGJhY2sgdG8gZmxhZyB1bnNhdmVkIHN0YXR1cyAqL1xuICBzZXRTYXZlZENoYW5nZXM6IEZ1bmN0aW9uO1xuICAvLyBjYWxsYmFjayBmb3IgY2hhbmdlIGluIHdvcmQgYWxpZ25tZW50IHN0YXR1c1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogRnVuY3Rpb247XG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogRnVuY3Rpb247XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgdG8gdXBkYXRlIHZlcnNlIGFsaWdubWVudCBzdGF0dXMgKi9cbiAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzOiBGdW5jdGlvbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICBjdXJyZW50SW5kZXgsXG4gIGNvbnRlbnRTdHlsZSxcbiAgZGV0ZXJtaW5pbmdCcmFuY2gsXG4gIGRpcmVjdGlvbixcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBmb250U2l6ZSxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGlzTlQsXG4gIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgb25BbGlnbm1lbnRGaW5pc2gsXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIHJlZmVyZW5jZSxcbiAgcmVmU3R5bGUsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNhdmluZyxcbiAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgc2VydmVyLFxuICB0cmFuc2xhdGUsXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgdXJsRXJyb3I6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBkb2luZ0FsaWdubWVudCxcbiAgICBuZXdUZXh0LFxuICAgIHVybEVycm9yLFxuICB9ID0gc3RhdGVcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG5cbiAgbGV0IHJlc291cmNlTXNnID0gbnVsbFxuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1zZyA9ICdTYXZpbmcgQ2hhbmdlcy4uLidcbiAgfSBlbHNlIGlmIChkZXRlcm1pbmluZ0JyYW5jaCkge1xuICAgIHJlc291cmNlTXNnID0gJ1ByZS0nICsgTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIHJlc291cmNlTXNnID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIHByb2plY3RJZCxcbiAgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcbiAgY29uc3QgYmFzaWNSZWZlcmVuY2UgPSB7XG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICBwcm9qZWN0SWQsXG4gIH1cblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIGVkaXRpbmcsXG4gICAgICB1bnNhdmVkQ2hhbmdlcyxcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICB9LFxuICB9ID0gX3NjcmlwdHVyZUFsaWdubWVudEVkaXRcblxuICBpZiAoaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ICYmICFhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRgLCBiYXNpY1JlZmVyZW5jZSlcbiAgICBoYW5kbGVBbGlnbm1lbnRDbGljaygpXG4gIH1cblxuICAvLyBjb25zdCB2ZXJzZUNoYW5nZWQgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgLy8gICByZXR1cm4gKG5ld1ZlcnNlVGV4dCAhPT0gbmV3VGV4dClcbiAgLy8gfSwgW25ld1ZlcnNlVGV4dCwgbmV3VGV4dF0pXG4gIC8vXG4gIC8vIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gIC8vICAgaWYgKG5ld1ZlcnNlVGV4dCAhPT0gbmV3VGV4dCkge1xuICAvLyAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBuZXcgdmVyc2UgdGV4dCBkaXZlcmdlZGAsIHsgbmV3VmVyc2VUZXh0LCBuZXdUZXh0IH0pXG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gbmV3IHZlcnNlIHRleHQgY29udmVyZ2VkYCwgeyBuZXdWZXJzZVRleHQgfSlcbiAgLy8gICB9XG4gIC8vIH0sIFt2ZXJzZUNoYW5nZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzICYmIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyhyZWZlcmVuY2UsIGFsaWduZWQpXG4gIH0sIFthbGlnbmVkLCBjaGFwdGVyLCB2ZXJzZSwgcHJvamVjdElkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogdHJ1ZSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gYWxpZ25lckRhdGEgd2VudCBmYWxzZSB1bmV4cGVjdGVkYCwgeyBiYXNpY1JlZmVyZW5jZSwgYWxpZ25lckRhdGEsIGRvaW5nQWxpZ25tZW50IH0pXG4gICAgICB9XG5cbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogZmFsc2UgfSlcbiAgICAgIG9uQWxpZ25tZW50RmluaXNoICYmIG9uQWxpZ25tZW50RmluaXNoKClcbiAgICB9XG4gIH0sIFtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdD8uc3RhdGU/LmFsaWduZXJEYXRhXSlcblxuICAvLyBkeW5hbWljYWxseSBhZGp1c3QgZm9udCBzaXplXG4gIGNvbnN0IGNhbGN1bGF0ZWRGb250U2l6ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKFxuICAgIHBhcnNlRmxvYXQoVGV4dEFyZWFTdHlsZS5mb250U2l6ZSkgKiBmb250U2l6ZSAvIDEwMCArICdweCdcbiAgKSwgW2ZvbnRTaXplXSlcblxuICBjb25zdCB0ZXh0QXJlYVN0eWxlID0ge1xuICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAuLi5UZXh0QXJlYVN0eWxlLFxuICAgIGZvbnRTaXplOiBjYWxjdWxhdGVkRm9udFNpemUsXG4gIH1cblxuICB1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzOiBpbml0aWFsVmVyc2VPYmplY3RzIH0pXG4gICAgY2xlYXJDaGFuZ2VzKClcbiAgICBzZXRJbml0aWFsVmVyc2VUZXh0KHZlcnNlVGV4dClcbiAgICBzZXRTdGF0ZSh7IG5ld1RleHQ6IG51bGwgfSlcbiAgfSwgW3sgYmFzaWNSZWZlcmVuY2UsIGluaXRpYWxWZXJzZU9iamVjdHMgfV0pXG5cbiAgZnVuY3Rpb24gb25UZXh0Q2hhbmdlKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50Pikge1xuICAgIGNvbnN0IG5ld1ZlcnNlVGV4dCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlXG4gICAgY29uc3QgY2hhbmdlZCA9IG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuICAgIC8vIGNvbnNvbGUubG9nKGBTUC5vblRleHRDaGFuZ2VgLCB7IGNoYW5nZWQsIG5ld1RleHQ6IG5ld1ZlcnNlVGV4dCwgaW5pdGlhbFZlcnNlVGV4dCB9KVxuICAgIHNldFZlcnNlQ2hhbmdlZChjaGFuZ2VkLCBuZXdWZXJzZVRleHQsIGluaXRpYWxWZXJzZVRleHQpXG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBuZXdWZXJzZVRleHQgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBzZXRFZGl0aW5nKGZhbHNlLCBuZXdUZXh0KVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgcGFkZGluZ0JvdHRvbTogJzAuNWVtJyB9fT5cbiAgICAgIHtyZXNvdXJjZU1zZyA/XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgPGRpdiBzdHlsZT17TWVzc2FnZVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCB9fT4ge3Jlc291cmNlTXNnfSA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDpcbiAgICAgICAgPENvbnRlbnQ+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3JlZlN0eWxlfT4ge2NoYXB0ZXJ9Ont2ZXJzZX0mbmJzcDs8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e2NvbnRlbnRTdHlsZX0gb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0RWRpdGluZyAmJiBzZXRFZGl0aW5nKHRydWUpXG4gICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZWRpdGluZyA/XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17bmV3VmVyc2VUZXh0IHx8IGluaXRpYWxWZXJzZVRleHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVGV4dENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgICBzdHlsZT17dGV4dEFyZWFTdHlsZX1cbiAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICA8VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgICAgICAgICAgIHZlcnNlT2JqZWN0cz17Y3VycmVudFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyfVxuICAgICAgICAgICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdfQ==
|
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.3.3-
|
|
4
|
+
"version": "3.3.3-patch.11",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|