single-scripture-rcl 3.3.1-beta.2 → 3.3.1

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.
@@ -1,4 +1,5 @@
1
1
  import "core-js/modules/es.array.concat.js";
2
+ import "core-js/modules/es.array.find.js";
2
3
  import "core-js/modules/es.array.iterator.js";
3
4
  import "core-js/modules/es.object.define-property.js";
4
5
  import "core-js/modules/es.object.to-string.js";
@@ -79,6 +80,19 @@ export function getScriptureObject(_ref) {
79
80
 
80
81
  return scripture;
81
82
  }
83
+ /**
84
+ * return verse data given a scripture config and verse number
85
+ * @param scriptureConfig
86
+ * @param verseNum
87
+ */
88
+
89
+ export function getVerseDataFromScripConfig(scriptureConfig, verseNum) {
90
+ var _scriptureConfig$vers;
91
+
92
+ return scriptureConfig === null || scriptureConfig === void 0 ? void 0 : (_scriptureConfig$vers = scriptureConfig.versesForRef) === null || _scriptureConfig$vers === void 0 ? void 0 : _scriptureConfig$vers.find(function (verseRef) {
93
+ return verseRef.verse === verseNum;
94
+ });
95
+ }
82
96
  /**
83
97
  * return true if resource is an original language bible
84
98
  * @param resourceId
@@ -402,4 +416,4 @@ export function cleanupVerseObjects(verseObjects) {
402
416
 
403
417
  return [];
404
418
  }
405
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiaXNPcmlnaW5hbEJpYmxlIiwiaXNPcmlnIiwiY2xlYW51cEFjY291bnRTZXR0aW5ncyIsInNjcmlwdHVyZVNldHRpbmdzIiwiY3VycmVudE93bmVyIiwiY3VycmVudExhbmd1YWdlSWQiLCJzcGxpdFVybCIsIm9yaWdpbmFsUmVwb1VybCIsInVybCIsIlVSTCIsIm9yaWdpbiIsInBhdGhuYW1lIiwic2VhcmNoIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsImJvb2tJZCIsInNjcmlwdHVyZVNldHRpbmdzXyIsImlzTmV3VGVzdGFtZW50IiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsInNwbGl0IiwiZSIsImdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayIsImVycm9yQ29kZSIsImVycm9yTXNnIiwidmFsaWRhdGVEY3NVcmwiLCJ2YWxpZFJlcG9QYXRoIiwidmFsaWRVcmwiLCJwYXJ0cyIsInByb3RvY29sIiwiaG9zdCIsInVzZXIiLCJyZXBvIiwiaG9zdFBhcnRzIiwibGVuZ3RoIiwicGFydCIsInByb2plY3RJZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIiwiZml4T2NjdXJyZW5jZSIsIm9jY3VycmVuY2UiLCJwYXJzZUludCIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHNfIiwiaSIsImwiLCJ2byIsInR5cGUiLCJ3b3JkIiwib2NjdXJyZW5jZXMiLCJjaGlsZHJlbiIsIm5ld1ZvIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FDRUEsdUJBREYsRUFFRUMsc0JBRkYsRUFHRUMsYUFIRixFQUlFQyx5QkFKRixFQUtFQywwQkFMRixRQU1PLHVCQU5QO0FBT0EsU0FDRUMsd0JBREYsRUFFRUMsZ0JBRkYsRUFHRUMsMEJBSEYsRUFJRUMsNEJBSkYsRUFLRUMsWUFMRixFQU1FQyxrQkFORixFQU9FQyxlQVBGLEVBUUVDLFlBUkYsRUFTRUMsa0JBVEYsRUFVRUMsNkJBVkYsRUFXRUMsY0FYRixFQVlFQyxpQkFaRixRQWFPLFVBYlA7QUFlQSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLElBQTdCLEMsQ0FBa0M7O0FBRXpDLE9BQU8sU0FBU0MsZUFBVCxDQUF5QkMsU0FBekIsRUFBb0M7QUFDekMsTUFBTUMsR0FBRyxHQUFHRCxTQUFTLENBQUNDLEdBQVYsSUFBaUJELFNBQVMsQ0FBQ0UsTUFBdkM7QUFDQSxtQkFBVUYsU0FBUyxDQUFDRyxLQUFwQixjQUE2QkgsU0FBUyxDQUFDSSxVQUF2QyxjQUFxREosU0FBUyxDQUFDSyxVQUEvRCxjQUE2RUosR0FBN0U7QUFDRDtBQUVELE9BQU8sU0FBU0ssa0JBQVQsT0FVSjtBQUFBLE1BVERDLEtBU0MsUUFUREEsS0FTQztBQUFBLE1BUkRDLE1BUUMsUUFSREEsTUFRQztBQUFBLE1BUERMLEtBT0MsUUFQREEsS0FPQztBQUFBLE1BTkRGLEdBTUMsUUFOREEsR0FNQztBQUFBLE1BTERHLFVBS0MsUUFMREEsVUFLQztBQUFBLE1BSkRDLFVBSUMsUUFKREEsVUFJQztBQUFBLE1BSERJLFlBR0MsUUFIREEsWUFHQztBQUFBLE1BRkRDLGtCQUVDLFFBRkRBLGtCQUVDO0FBQUEsTUFEREMscUJBQ0MsUUFEREEscUJBQ0M7QUFDRCxNQUFNWCxTQUFTLEdBQUc7QUFDaEJPLElBQUFBLEtBQUssRUFBTEEsS0FEZ0I7QUFFaEJDLElBQUFBLE1BQU0sRUFBTkEsTUFGZ0I7QUFHaEJMLElBQUFBLEtBQUssRUFBTEEsS0FIZ0I7QUFJaEJRLElBQUFBLHFCQUFxQixFQUFyQkEscUJBSmdCO0FBS2hCVixJQUFBQSxHQUFHLEVBQUhBLEdBTGdCO0FBTWhCRyxJQUFBQSxVQUFVLEVBQVZBLFVBTmdCO0FBT2hCQyxJQUFBQSxVQUFVLEVBQVZBLFVBUGdCO0FBUWhCSyxJQUFBQSxrQkFBa0IsRUFBbEJBLGtCQVJnQjtBQVNoQkQsSUFBQUEsWUFBWSxFQUFaQTtBQVRnQixHQUFsQjs7QUFZQSxNQUFJLENBQUNBLFlBQUwsRUFBbUI7QUFDakJULElBQUFBLFNBQVMsQ0FBQ1MsWUFBVixHQUF5QlYsZUFBZSxDQUFDO0FBQ3ZDSSxNQUFBQSxLQUFLLEVBQUxBLEtBRHVDO0FBRXZDRixNQUFBQSxHQUFHLEVBQUhBLEdBRnVDO0FBR3ZDRyxNQUFBQSxVQUFVLEVBQVZBLFVBSHVDO0FBSXZDQyxNQUFBQSxVQUFVLEVBQVZBO0FBSnVDLEtBQUQsQ0FBeEM7QUFNRDs7QUFDRCxTQUFPTCxTQUFQO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLFNBQVNZLGVBQVQsQ0FBeUJQLFVBQXpCLEVBQXFDO0FBQzFDLE1BQU1RLE1BQU0sR0FBS1IsVUFBVSxLQUFLZCxrQkFBaEIsSUFBd0NjLFVBQVUsS0FBS1gsa0JBQXZELElBQStFVyxVQUFVLEtBQUtiLGVBQTlHO0FBQ0EsU0FBT3FCLE1BQVA7QUFDRDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLFNBQVNDLHNCQUFULENBQWdDQyxpQkFBaEMsRUFBd0RDLFlBQXhELEVBQTJFQyxpQkFBM0UsRUFBbUc7QUFDeEcsTUFBSUQsWUFBWSxJQUFLQSxZQUFZLEtBQUtELGlCQUFpQixDQUFDWixLQUF4RCxFQUFnRTtBQUFFO0FBQ2hFWSxJQUFBQSxpQkFBaUIsQ0FBQ1osS0FBbEIsR0FBMEJhLFlBQTFCO0FBQ0Q7O0FBRUQsTUFBSUMsaUJBQWlCLElBQUtBLGlCQUFpQixLQUFLRixpQkFBaUIsQ0FBQ1gsVUFBbEUsRUFBK0U7QUFBRTtBQUMvRVcsSUFBQUEsaUJBQWlCLENBQUNYLFVBQWxCLEdBQStCYSxpQkFBL0I7QUFDRDtBQUNGO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTQyxRQUFULENBQWtCQyxlQUFsQixFQUFtQztBQUN4QyxNQUFJQSxlQUFKLEVBQXFCO0FBQ25CLFFBQU1DLEdBQUcsR0FBRyxJQUFJQyxHQUFKLENBQVFGLGVBQVIsQ0FBWjtBQUNBLFFBQU1YLE1BQU0sR0FBR1ksR0FBRyxDQUFDRSxNQUFuQjtBQUNBLFFBQU1iLFlBQVksR0FBR1csR0FBRyxDQUFDRyxRQUFKLElBQWdCSCxHQUFHLENBQUNJLE1BQUosSUFBYyxFQUE5QixDQUFyQjtBQUNBLFdBQU87QUFBRWhCLE1BQUFBLE1BQU0sRUFBTkEsTUFBRjtBQUFVQyxNQUFBQSxZQUFZLEVBQVpBO0FBQVYsS0FBUDtBQUNEOztBQUNELFNBQU8sRUFBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sU0FBU2dCLDRCQUFULENBQ0xDLE1BREssRUFDR0Msa0JBREgsRUFDdUJDLGNBRHZCLEVBS0w7QUFBQSxNQUhBVCxlQUdBLHVFQUhnQixJQUdoQjtBQUFBLE1BRkFGLGlCQUVBLHVFQUZrQixJQUVsQjtBQUFBLE1BREFELFlBQ0EsdUVBRGEsSUFDYjs7QUFDQSxNQUFNRCxpQkFBaUIscUJBQVFZLGtCQUFSLENBQXZCOztBQUNBWixFQUFBQSxpQkFBaUIsQ0FBQ0wsa0JBQWxCLEdBQXVDWixvQkFBdkM7QUFDQSxNQUFNTyxVQUFVLEdBQUdzQixrQkFBa0IsQ0FBQ3RCLFVBQXRDOztBQUVBLE1BQUlBLFVBQVUsS0FBS2IsZUFBbkIsRUFBb0M7QUFDbEM7QUFDQXVCLElBQUFBLGlCQUFpQixDQUFDWCxVQUFsQixHQUErQndCLGNBQWMsR0FBR3RDLFlBQUgsR0FBa0JHLFlBQS9EO0FBQ0FzQixJQUFBQSxpQkFBaUIsQ0FBQ1YsVUFBbEIsR0FBK0J1QixjQUFjLEdBQ3pDckMsa0JBRHlDLEdBRXpDRyxrQkFGSjs7QUFJQSxRQUFJcUIsaUJBQWlCLENBQUNKLHFCQUF0QixFQUE2QztBQUMzQ0ksTUFBQUEsaUJBQWlCLENBQUNaLEtBQWxCLEdBQTBCWSxpQkFBaUIsQ0FBQ0oscUJBQTVDO0FBQ0Q7O0FBRUQsUUFBSVEsZUFBSixFQUFxQjtBQUFFO0FBQUYsc0JBQ2NELFFBQVEsQ0FBQ0MsZUFBRCxDQUR0QjtBQUFBLFVBQ1hYLE1BRFcsYUFDWEEsTUFEVztBQUFBLFVBQ0hDLFlBREcsYUFDSEEsWUFERzs7QUFFbkJNLE1BQUFBLGlCQUFpQixDQUFDUCxNQUFsQixHQUEyQkEsTUFBM0I7QUFDQU8sTUFBQUEsaUJBQWlCLENBQUNOLFlBQWxCLEdBQWlDQSxZQUFqQztBQUNELEtBSkQsTUFJTztBQUFFO0FBQ1BNLE1BQUFBLGlCQUFpQixDQUFDTixZQUFsQixHQUFpQ1YsZUFBZSxDQUFDZ0IsaUJBQUQsQ0FBaEQ7QUFDRDs7QUFDREEsSUFBQUEsaUJBQWlCLENBQUNMLGtCQUFsQixHQUF1QyxLQUF2QztBQUNELEdBbkJELE1BbUJPLElBQUlMLFVBQVUsS0FBS1QsY0FBbkIsRUFBbUM7QUFDeENrQixJQUFBQSxzQkFBc0IsQ0FBQ0MsaUJBQUQsRUFBb0JDLFlBQXBCLEVBQWtDQyxpQkFBbEMsQ0FBdEI7QUFDQUYsSUFBQUEsaUJBQWlCLENBQUNWLFVBQWxCLEdBQStCVSxpQkFBaUIsQ0FBQ1gsVUFBbEIsS0FBaUMsSUFBakMsR0FBd0MsS0FBeEMsR0FBZ0QsS0FBL0U7QUFDQVcsSUFBQUEsaUJBQWlCLENBQUNOLFlBQWxCLEdBQWlDVixlQUFlLENBQUNnQixpQkFBRCxDQUFoRDtBQUNELEdBSk0sTUFJQSxJQUFJVixVQUFVLEtBQUtSLGlCQUFuQixFQUFzQztBQUMzQ2lCLElBQUFBLHNCQUFzQixDQUFDQyxpQkFBRCxFQUFvQkMsWUFBcEIsRUFBa0NDLGlCQUFsQyxDQUF0QjtBQUNBRixJQUFBQSxpQkFBaUIsQ0FBQ1YsVUFBbEIsR0FBK0JVLGlCQUFpQixDQUFDWCxVQUFsQixLQUFpQyxJQUFqQyxHQUF3QyxLQUF4QyxHQUFnRCxLQUEvRTtBQUNBVyxJQUFBQSxpQkFBaUIsQ0FBQ04sWUFBbEIsR0FBaUNWLGVBQWUsQ0FBQ2dCLGlCQUFELENBQWhEO0FBQ0Q7O0FBQ0QsU0FBT0EsaUJBQVA7QUFDRDtBQUVELE9BQU8sU0FBU2MsMkJBQVQsUUFLSjtBQUFBLE1BSkRDLEtBSUMsU0FKREEsS0FJQztBQUFBLE1BSERyQixZQUdDLFNBSERBLFlBR0M7QUFBQSxNQUZEc0IsWUFFQyxTQUZEQSxZQUVDO0FBQUEsTUFEREMsb0JBQ0MsU0FEREEsb0JBQ0M7QUFDRCxNQUFNQyxPQUFPLEdBQUdELG9CQUFvQixDQUFDRSxTQUFyQixFQUFoQjtBQUNBLE1BQUlDLEtBQUssR0FBR0gsb0JBQW9CLENBQUNJLGtCQUFyQixDQUF3Q0gsT0FBeEMsRUFBaUQsY0FBakQsRUFBaUV4QixZQUFqRSxDQUFaO0FBRUEsTUFBTTRCLHVCQUF1QixHQUFHO0FBQzlCUCxJQUFBQSxLQUFLLEVBQUxBLEtBRDhCO0FBQ3ZCO0FBQ1BRLElBQUFBLE9BQU8sRUFBRUwsT0FGcUI7QUFHOUJNLElBQUFBLE9BQU8sRUFBRUosS0FIcUI7QUFJOUJLLElBQUFBLGNBQWMsRUFBRSxJQUpjO0FBSzlCQyxJQUFBQSxRQUFRLEVBQUUsa0JBQUNsQyxLQUFELEVBQVE0QixLQUFSLEVBQXFDO0FBQUEsVUFBdEJPLFlBQXNCLHVFQUFULElBQVM7QUFDN0MsVUFBSUMsSUFBSjs7QUFFQSxVQUFLUixLQUFLLEdBQUcsQ0FBVCxJQUFlNUIsS0FBbkIsRUFBMEI7QUFDeEIsWUFBTXFDLE9BQU8sR0FBRztBQUNkeEIsVUFBQUEsR0FBRyxFQUFFYixLQURTO0FBRWRBLFVBQUFBLEtBQUssRUFBTEE7QUFGYyxTQUFoQjs7QUFJQSxZQUFNNEIsTUFBSyxHQUFHSCxvQkFBb0IsQ0FBQ2EsZ0JBQXJCLENBQXNDRCxPQUF0QyxDQUFkOztBQUVBLFlBQUlULE1BQUssSUFBSSxDQUFiLEVBQWdCO0FBQ2RRLFVBQUFBLElBQUksR0FBR1gsb0JBQW9CLENBQUNFLFNBQXJCLEdBQWlDQyxNQUFqQyxDQUFQO0FBQ0Q7QUFDRixPQVZELE1BVU87QUFDTFEsUUFBQUEsSUFBSSxHQUFHWCxvQkFBb0IsQ0FBQ2MsY0FBckIsQ0FBb0N2QyxLQUFwQyxDQUFQO0FBQ0Q7O0FBRUQsVUFBSW9DLElBQUosRUFBVTtBQUNSWixRQUFBQSxZQUFZLENBQUNZLElBQUQsRUFBT0QsWUFBUCxDQUFaO0FBQ0Q7QUFDRixLQXpCNkI7QUEwQjlCSyxJQUFBQSxVQUFVLEVBQUUsb0JBQUF4QyxLQUFLLEVBQUk7QUFDbkIsVUFBTTBCLE9BQU8sR0FBR0Qsb0JBQW9CLENBQUNFLFNBQXJCLEVBQWhCO0FBQ0EsVUFBTWMsV0FBVyxHQUFHaEIsb0JBQW9CLENBQUNJLGtCQUFyQixDQUF3Q0gsT0FBeEMsRUFBaUQsT0FBakQsRUFBMEQxQixLQUExRCxDQUFwQjtBQUNBeUIsTUFBQUEsb0JBQW9CLENBQUNpQixpQkFBckIsQ0FBdUNELFdBQXZDO0FBQ0Q7QUE5QjZCLEdBQWhDO0FBaUNBLFNBQU9YLHVCQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNhLFVBQVQsQ0FBb0J6QyxZQUFwQixFQUEwQ0QsTUFBMUMsRUFBMEQyQyxJQUExRCxFQUFpRjtBQUN0RixNQUFJQyxPQUFKOztBQUVBLE1BQUk7QUFBQSw4QkFDb0MzQyxZQUFZLENBQUM0QyxLQUFiLENBQW1CLEdBQW5CLENBRHBDO0FBQUE7QUFBQSxRQUNHbEQsS0FESDtBQUFBLFFBQ1VDLFVBRFY7QUFBQSxRQUNzQkMsVUFEdEI7O0FBR0YsWUFBUUEsVUFBUjtBQUNBLFdBQUtiLGVBQUw7QUFDRVksUUFBQUEsVUFBVSxHQUFHK0MsSUFBSSxHQUFHN0QsWUFBSCxHQUFrQkcsWUFBbkM7QUFDQVksUUFBQUEsVUFBVSxHQUFHOEMsSUFBSSxHQUNiNUQsa0JBRGEsR0FFYkcsa0JBRko7QUFHQTs7QUFFRixXQUFLRSxjQUFMO0FBQ0VTLFFBQUFBLFVBQVUsR0FBSUQsVUFBVSxLQUFLLElBQWhCLEdBQXdCLEtBQXhCLEdBQWdDLEtBQTdDO0FBQ0E7O0FBRUYsV0FBS1AsaUJBQUw7QUFDRVEsUUFBQUEsVUFBVSxHQUFJRCxVQUFVLEtBQUssSUFBaEIsR0FBd0IsS0FBeEIsR0FBZ0MsS0FBN0M7QUFDQTtBQWRGOztBQWdCQWdELElBQUFBLE9BQU8sYUFBTWpELEtBQU4sY0FBZUMsVUFBZixjQUE2QkMsVUFBN0IsQ0FBUDtBQUNELEdBcEJELENBb0JFLE9BQU9pRCxDQUFQLEVBQVUsQ0FDVjtBQUNELEdBekJxRixDQTJCdEY7OztBQUNBLG1CQUFVOUMsTUFBTSxJQUFJLEVBQXBCLGNBQTBCNEMsT0FBMUI7QUFDRDtBQUVELE9BQU8sU0FBU0csOEJBQVQsQ0FDTDlDLFlBREssRUFFTEQsTUFGSyxFQUdMZ0QsU0FISyxFQUlMTCxJQUpLLEVBS1A7QUFDRSxNQUFNQyxPQUFPLEdBQUdGLFVBQVUsQ0FBQ3pDLFlBQUQsRUFBZUQsTUFBZixFQUF1QjJDLElBQXZCLENBQTFCO0FBQ0EsTUFBTU0sUUFBUSxHQUFHRCxTQUFTLEdBQUdKLE9BQTdCO0FBQ0EsU0FBT0ssUUFBUDtBQUNEO0FBRUQsT0FBTyxTQUFTQyxjQUFULENBQXdCdEMsR0FBeEIsRUFBNkI7QUFDbEMsTUFBSXVDLGFBQWEsR0FBRyxLQUFwQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxLQUFmOztBQUVBLE1BQUk7QUFDRixRQUFNQyxLQUFLLEdBQUd6QyxHQUFHLENBQUNpQyxLQUFKLENBQVUsR0FBVixDQUFkOztBQURFLGdDQUVxQ1EsS0FGckM7QUFBQSxRQUVLQyxRQUZMO0FBQUEsUUFFaUJDLElBRmpCO0FBQUEsUUFFdUJDLElBRnZCO0FBQUEsUUFFNkJDLElBRjdCOztBQUdGTCxJQUFBQSxRQUFRLEdBQUlFLFFBQVEsS0FBSyxRQUF6QjtBQUNBLFFBQU1JLFNBQVMsR0FBR0gsSUFBSSxHQUFHQSxJQUFJLENBQUNWLEtBQUwsQ0FBVyxHQUFYLENBQUgsR0FBcUIsRUFBM0M7O0FBRUEsUUFBSWEsU0FBUyxDQUFDQyxNQUFWLElBQW9CLENBQXhCLEVBQTJCO0FBQUEsaURBQ1JELFNBRFE7QUFBQTs7QUFBQTtBQUN6Qiw0REFBNEI7QUFBQSxjQUFuQkUsSUFBbUI7O0FBQzFCLGNBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1RSLFlBQUFBLFFBQVEsR0FBRyxLQUFYO0FBQ0E7QUFDRDtBQUNGO0FBTndCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPMUIsS0FQRCxNQU9PO0FBQ0xBLE1BQUFBLFFBQVEsR0FBRyxLQUFYO0FBQ0Q7O0FBRUQsUUFBS0UsUUFBUSxJQUFJQyxJQUFaLElBQW9CQyxJQUFwQixJQUE0QkMsSUFBakMsRUFBd0M7QUFBQSx3QkFDTkEsSUFBSSxDQUFDWixLQUFMLENBQVcsR0FBWCxDQURNO0FBQUE7QUFBQSxVQUMvQmpELFVBRCtCO0FBQUEsVUFDbkJpRSxTQURtQjs7QUFFdENWLE1BQUFBLGFBQWEsR0FBR3ZELFVBQVUsSUFBSWlFLFNBQTlCO0FBQ0Q7QUFDRixHQXJCRCxDQXFCRSxnQkFBTTtBQUNOQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxzQkFBc0JuRCxHQUFsQztBQUNEOztBQUNELFNBQU87QUFBRXdDLElBQUFBLFFBQVEsRUFBUkEsUUFBRjtBQUFZRCxJQUFBQSxhQUFhLEVBQWJBO0FBQVosR0FBUDtBQUNEO0FBRUQsT0FBTyxTQUFTYSx1QkFBVCxDQUFpQ0MsY0FBakMsRUFBeUQ7QUFDOUQsTUFBSUMsT0FBTyxHQUFHLEVBQWQ7O0FBRUEsTUFBSUQsY0FBYyxDQUFDekYseUJBQUQsQ0FBbEIsRUFBK0M7QUFDN0MwRixJQUFBQSxPQUFPLEdBQUdyRiw0QkFBVjtBQUNELEdBRkQsTUFFTyxJQUFJb0YsY0FBYyxDQUFDM0Ysc0JBQUQsQ0FBbEIsRUFBNEM7QUFDakQ0RixJQUFBQSxPQUFPLEdBQUd0RiwwQkFBVjtBQUNELEdBRk0sTUFFQSxJQUFJcUYsY0FBYyxDQUFDNUYsdUJBQUQsQ0FBbEIsRUFBNkM7QUFDbEQ2RixJQUFBQSxPQUFPLEdBQUd4Rix3QkFBVjtBQUNELEdBRk0sTUFFQSxJQUFJdUYsY0FBYyxDQUFDeEYsMEJBQUQsQ0FBbEIsRUFBZ0Q7QUFDckR5RixJQUFBQSxPQUFPLEdBQUcvRSw2QkFBVjtBQUNEOztBQUNELFNBQU8rRSxPQUFQO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sU0FBU0Msa0JBQVQsQ0FBNEJGLGNBQTVCLEVBQW9EakUsTUFBcEQsRUFBb0VDLFlBQXBFLEVBQTBGMEMsSUFBMUYsRUFBeUc7QUFDOUcsTUFBSXVCLE9BQU8sR0FBRyxFQUFkOztBQUVBLE1BQUlELGNBQWMsQ0FBQzFGLGFBQUQsQ0FBbEIsRUFBbUM7QUFDakMyRixJQUFBQSxPQUFPLEdBQUd2RixnQkFBVjtBQUNELEdBRkQsTUFFTztBQUNMdUYsSUFBQUEsT0FBTyxHQUFHRix1QkFBdUIsQ0FBQ0MsY0FBRCxDQUFqQzs7QUFFQSxRQUFJQyxPQUFKLEVBQWE7QUFDWEEsTUFBQUEsT0FBTyxHQUFHbkIsOEJBQThCLENBQUM5QyxZQUFELEVBQWVELE1BQWYsRUFBdUJrRSxPQUF2QixFQUFnQ3ZCLElBQWhDLENBQXhDO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPdUIsT0FBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTRSx1QkFBVCxDQUFpQ3pFLEtBQWpDLEVBQWdEQyxVQUFoRCxFQUFvRWlFLFNBQXBFLEVBQXVGcEUsR0FBdkYsRUFBb0c7QUFDekcsZ0NBQXVCRSxLQUF2QixjQUFnQ0MsVUFBaEMsY0FBOENpRSxTQUE5QywyQkFBd0VwRSxHQUF4RTtBQUNEO0FBRUQsT0FBTyxTQUFTNEUsYUFBVCxDQUF1QkMsVUFBdkIsRUFBbUM7QUFDeEMsTUFBSSxPQUFPQSxVQUFQLEtBQXNCLFFBQTFCLEVBQW9DO0FBQ2xDLFdBQU9DLFFBQVEsQ0FBQ0QsVUFBRCxDQUFmO0FBQ0Q7O0FBQ0QsU0FBT0EsVUFBUDtBQUNEO0FBRUQsT0FBTyxTQUFTRSxtQkFBVCxDQUE2QkMsWUFBN0IsRUFBMkM7QUFDaEQsTUFBSUEsWUFBSixhQUFJQSxZQUFKLGVBQUlBLFlBQVksQ0FBRWQsTUFBbEIsRUFBMEI7QUFDeEIsUUFBTWUsYUFBYSxzQkFBT0QsWUFBUCxDQUFuQjs7QUFFQSxTQUFLLElBQUlFLENBQUMsR0FBRyxDQUFSLEVBQVdDLENBQUMsR0FBR0YsYUFBYSxDQUFDZixNQUFsQyxFQUEwQ2dCLENBQUMsR0FBR0MsQ0FBOUMsRUFBaURELENBQUMsRUFBbEQsRUFBc0Q7QUFDcEQsVUFBTUUsRUFBRSxHQUFHSCxhQUFhLENBQUNDLENBQUQsQ0FBeEI7O0FBRUEsVUFBSUUsRUFBRSxDQUFDQyxJQUFILEtBQVksTUFBaEIsRUFBd0I7QUFDdEIsWUFBTUMsSUFBSSxtQ0FDTEYsRUFESztBQUVSUCxVQUFBQSxVQUFVLEVBQUVELGFBQWEsQ0FBQ1EsRUFBRSxDQUFDUCxVQUFKLENBRmpCO0FBR1JVLFVBQUFBLFdBQVcsRUFBRVgsYUFBYSxDQUFDUSxFQUFFLENBQUNHLFdBQUo7QUFIbEIsVUFBVjs7QUFLQU4sUUFBQUEsYUFBYSxDQUFDQyxDQUFELENBQWIsR0FBbUJJLElBQW5CO0FBQ0QsT0FQRCxNQU9PLElBQUlGLEVBQUUsQ0FBQ0ksUUFBUCxFQUFpQjtBQUN0QixZQUFNQSxRQUFRLEdBQUdULG1CQUFtQixDQUFDSyxFQUFFLENBQUNJLFFBQUosQ0FBcEM7O0FBQ0EsWUFBTUMsS0FBSyxtQ0FDTkwsRUFETTtBQUVUSSxVQUFBQSxRQUFRLEVBQVJBO0FBRlMsVUFBWDs7QUFJQVAsUUFBQUEsYUFBYSxDQUFDQyxDQUFELENBQWIsR0FBbUJPLEtBQW5CO0FBQ0Q7QUFDRjs7QUFDRCxXQUFPUixhQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxFQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7XG4gIEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0csXG4gIE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIE5UX09SSUdfTEFORyxcbiAgTlRfT1JJR19MQU5HX0JJQkxFLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbiAgT1RfT1JJR19MQU5HX0JJQkxFLFxuICBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgVEFSR0VUX0xJVEVSQUwsXG4gIFRBUkdFVF9TSU1QTElGSUVELFxufSBmcm9tICcuL2NvbW1vbidcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVfV09SRF9QT1BPVkVSID0gdHJ1ZSAvLyBkaXNhYmxlIHdvcmQgcG9wb3ZlciBmb3IgZXZlcnkgc2NyaXB0dXJlIHBhbmUgYnV0IG9yaWdpbmFsIGxhbmd1YWdlc1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZSkge1xuICBjb25zdCByZWYgPSBzY3JpcHR1cmUucmVmIHx8IHNjcmlwdHVyZS5icmFuY2hcbiAgcmV0dXJuIGAke3NjcmlwdHVyZS5vd25lcn0vJHtzY3JpcHR1cmUubGFuZ3VhZ2VJZH0vJHtzY3JpcHR1cmUucmVzb3VyY2VJZH0vJHtyZWZ9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlT2JqZWN0KHtcbiAgdGl0bGUsXG4gIHNlcnZlcixcbiAgb3duZXIsXG4gIHJlZixcbiAgbGFuZ3VhZ2VJZCxcbiAgcmVzb3VyY2VJZCxcbiAgcmVzb3VyY2VMaW5rLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbn0pIHtcbiAgY29uc3Qgc2NyaXB0dXJlID0ge1xuICAgIHRpdGxlLFxuICAgIHNlcnZlcixcbiAgICBvd25lcixcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgcmVmLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgcmVzb3VyY2VMaW5rLFxuICB9XG5cbiAgaWYgKCFyZXNvdXJjZUxpbmspIHtcbiAgICBzY3JpcHR1cmUucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgIG93bmVyLFxuICAgICAgcmVmLFxuICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgIHJlc291cmNlSWQsXG4gICAgfSlcbiAgfVxuICByZXR1cm4gc2NyaXB0dXJlXG59XG5cbi8qKlxuICogcmV0dXJuIHRydWUgaWYgcmVzb3VyY2UgaXMgYW4gb3JpZ2luYWwgbGFuZ3VhZ2UgYmlibGVcbiAqIEBwYXJhbSByZXNvdXJjZUlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09yaWdpbmFsQmlibGUocmVzb3VyY2VJZCkge1xuICBjb25zdCBpc09yaWcgPSAoKHJlc291cmNlSWQgPT09IE5UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkpXG4gIHJldHVybiBpc09yaWdcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgc2NyaXB0dXJlU2V0dGluZ3MgYXJlIHVwIHRvIGRhdGUgd2l0aCBjdXJyZW50IG93bmVyIGFuZCBsYW5ndWFnZVxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzOiBhbnksIGN1cnJlbnRPd25lcjogYW55LCBjdXJyZW50TGFuZ3VhZ2VJZDogYW55KSB7XG4gIGlmIChjdXJyZW50T3duZXIgJiYgKGN1cnJlbnRPd25lciAhPT0gc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIpKSB7IC8vIGlmIG93bmVyIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gY3VycmVudE93bmVyXG4gIH1cblxuICBpZiAoY3VycmVudExhbmd1YWdlSWQgJiYgKGN1cnJlbnRMYW5ndWFnZUlkICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkKSkgeyAvLyBpZiBsYW5ndWFnZSBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gY3VycmVudExhbmd1YWdlSWRcbiAgfVxufVxuXG4vKipcbiAqIHNlcGFyYXRlIFVSTCBpbnRvIHNlcnZlciBhbmQgcmVzb3VyY2UgbGlua1xuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKSB7XG4gIGlmIChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKG9yaWdpbmFsUmVwb1VybClcbiAgICBjb25zdCBzZXJ2ZXIgPSB1cmwub3JpZ2luXG4gICAgY29uc3QgcmVzb3VyY2VMaW5rID0gdXJsLnBhdGhuYW1lICsgKHVybC5zZWFyY2ggfHwgJycpXG4gICAgcmV0dXJuIHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfVxuICB9XG4gIHJldHVybiB7fVxufVxuXG4vKipcbiAqIGdldCB0aGUgc2NyaXB0dXJlIHNldHRpbmdzIG5lZWRlZCBmb3IgZmV0Y2ggLSBmb3IgT3JpZ0xhbmcsIFVMVCwgR0xUIHdpbGwgcmVwbGFjZSBvd25lciBhbmQgbGFuZ3VhZ2VJZCB3aXRoIGNvcnJlY3QgdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NfXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3VGVzdGFtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsIC0gb3B0aW9uYWwgcGF0aCB0byByZXBvIGZvciBvcmlnaW5hbCBsYW5ndWFnZVxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgYm9va0lkLCBzY3JpcHR1cmVTZXR0aW5nc18sIGlzTmV3VGVzdGFtZW50LFxuICBvcmlnaW5hbFJlcG9Vcmw9bnVsbCxcbiAgY3VycmVudExhbmd1YWdlSWQ9bnVsbCxcbiAgY3VycmVudE93bmVyPW51bGwsXG4pIHtcbiAgY29uc3Qgc2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzXyB9XG4gIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IERJU0FCTEVfV09SRF9QT1BPVkVSXG4gIGNvbnN0IHJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5nc18ucmVzb3VyY2VJZFxuXG4gIGlmIChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpIHtcbiAgICAvLyBzZWxlY3Qgb3JpZ2luYWwgbGFuZ3VhZ2UgQmlibGUgYmFzZWQgb24gd2hpY2ggdGVzdGFtZW50IHRoZSBib29rIGJlbG9uZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gaXNOZXdUZXN0YW1lbnQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gaXNOZXdUZXN0YW1lbnRcbiAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuXG4gICAgaWYgKHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lcikge1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXJcbiAgICB9XG5cbiAgICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7IC8vIHVzZSB0aGlzIHVybCBpZiBkZWZpbmVkXG4gICAgICBjb25zdCB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH0gPSBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5zZXJ2ZXIgPSBzZXJ2ZXJcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IHJlc291cmNlTGlua1xuICAgIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byBhcHAgZGVmYXVsdHNcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gICAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gZmFsc2VcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfTElURVJBTCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndWx0JyA6ICdnbHQnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9TSU1QTElGSUVEKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1c3QnIDogJ2dzdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVNldHRpbmdzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICBsYWJlbCxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXRTY3JpcHR1cmUsXG4gIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxufSkge1xuICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgbGV0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICdyZXNvdXJjZUxpbmsnLCByZXNvdXJjZUxpbmspXG5cbiAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0b3JDb25maWcgPSB7XG4gICAgbGFiZWwsIC8vIGxhYmVsIGZvciBjb21ib2JveFxuICAgIG9wdGlvbnM6IGhpc3RvcnksXG4gICAgY3VycmVudDogaW5kZXgsXG4gICAgYWxsb3dVc2VySW5wdXQ6IHRydWUsXG4gICAgb25DaGFuZ2U6ICh0aXRsZSwgaW5kZXgsIHZhbGlkYXRpb25DQj1udWxsKSA9PiB7XG4gICAgICBsZXQgaXRlbVxuXG4gICAgICBpZiAoKGluZGV4IDwgMCkgJiYgdGl0bGUpIHtcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICB1cmw6IHRpdGxlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdJdGVtKVxuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpW2luZGV4XVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0SXRlbUJ5VGl0bGUodGl0bGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHNldFNjcmlwdHVyZShpdGVtLCB2YWxpZGF0aW9uQ0IpXG4gICAgICB9XG4gICAgfSxcbiAgICBkZWxldGVJdGVtOiB0aXRsZSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICd0aXRsZScsIHRpdGxlKVxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlSXRlbUJ5SW5kZXgoZGVsZXRlSW5kZXgpXG4gICAgfSxcbiAgfVxuXG4gIHJldHVybiBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb1VybChyZXNvdXJjZUxpbms6IHN0cmluZywgc2VydmVyOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcmVwb1VybFxuXG4gIHRyeSB7XG4gICAgbGV0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuXG4gICAgc3dpdGNoIChyZXNvdXJjZUlkKSB7XG4gICAgY2FzZSBPUklHSU5BTF9TT1VSQ0U6XG4gICAgICBsYW5ndWFnZUlkID0gaXNOVCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgICAgcmVzb3VyY2VJZCA9IGlzTlRcbiAgICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9MSVRFUkFMOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1bHQnIDogJ2dsdCdcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9TSU1QTElGSUVEOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1c3QnIDogJ2dzdCdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlcG9VcmwgPSBgJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Jlc291cmNlSWR9YFxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gcmVzb3VyY2VMaW5rIHdhcyBpbnZhbGlkXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBgJHtzZXJ2ZXIgfHwgJyd9LyR7cmVwb1VybH1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsoXG4gIHJlc291cmNlTGluazogc3RyaW5nLFxuICBzZXJ2ZXI6IHN0cmluZyxcbiAgZXJyb3JDb2RlOiBzdHJpbmcsXG4gIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmdcbntcbiAgY29uc3QgcmVwb1VybCA9IGdldFJlcG9VcmwocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIGlzTlQpXG4gIGNvbnN0IGVycm9yTXNnID0gZXJyb3JDb2RlICsgcmVwb1VybFxuICByZXR1cm4gZXJyb3JNc2dcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGNzVXJsKHVybCkge1xuICBsZXQgdmFsaWRSZXBvUGF0aCA9IGZhbHNlXG4gIGxldCB2YWxpZFVybCA9IGZhbHNlXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpXG4gICAgY29uc3QgW3Byb3RvY29sLCAsIGhvc3QsIHVzZXIsIHJlcG9dID0gcGFydHNcbiAgICB2YWxpZFVybCA9IChwcm90b2NvbCA9PT0gJ2h0dHBzOicpXG4gICAgY29uc3QgaG9zdFBhcnRzID0gaG9zdCA/IGhvc3Quc3BsaXQoJy4nKSA6IFtdXG5cbiAgICBpZiAoaG9zdFBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICBmb3IgKGxldCBwYXJ0IG9mIGhvc3RQYXJ0cykge1xuICAgICAgICBpZiAoIXBhcnQpIHtcbiAgICAgICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCBwcm90b2NvbCAmJiBob3N0ICYmIHVzZXIgJiYgcmVwbyApIHtcbiAgICAgIGNvbnN0IFtsYW5ndWFnZUlkLCBwcm9qZWN0SWRdID0gcmVwby5zcGxpdCgnXycpXG4gICAgICB2YWxpZFJlcG9QYXRoID0gbGFuZ3VhZ2VJZCAmJiBwcm9qZWN0SWRcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNvbnNvbGUubG9nKCdJbnZhbGlkIERDUyBVUkw6ICcgKyB1cmwpXG4gIH1cbiAgcmV0dXJuIHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tJTlZBTElEX01BTklGRVNUX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBCT09LX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGRlY29kZSByZXNvdXJjZSBzdGF0dXMgaW50byBzdHJpbmcuICBDdXJyZW50bHkgb25seSBFbmdsaXNoXG4gKiBAcGFyYW0gcmVzb3VyY2VTdGF0dXMgLSBvYmplY3QgdGhhdCBjb250YWlucyBzdGF0ZSBhbmQgZXJyb3JzIHRoYXQgYXJlIGRldGVjdGVkXG4gKiBAcGFyYW0gc2VydmVyIC0gY29udGFpbnMgdGhlIHNlcnZlciBiZWluZyB1c2VkXG4gKiBAcGFyYW0gcmVzb3VyY2VMaW5rIC0gcGF0aCB0byByZXBvIG9uIHNlcnZlclxuICogQHBhcmFtIGlzTlQgLSB0cnVlIGlmIE5UIGJvb2tcbiAqIEByZXR1cm4gZW1wdHkgc3RyaW5nIGlmIG5vIGVycm9yLCBlbHNlIHJldHVybnMgdXNlciBlcnJvciBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCwgc2VydmVyOiBzdHJpbmcsIHJlc291cmNlTGluazogc3RyaW5nLCBpc05UOiBib29sZWFuKSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTE9BRElOR19TVEFURV0pIHtcbiAgICBtZXNzYWdlID0gTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1cylcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaywgc2VydmVyLCBtZXNzYWdlLCBpc05UKVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGdlbmVyYXRlIHJlc291cmNlIHN0cmluZ1xuICogQHBhcmFtIG93bmVyXG4gKiBAcGFyYW0gbGFuZ3VhZ2VJZFxuICogQHBhcmFtIHByb2plY3RJZFxuICogQHBhcmFtIHJlZlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rU3BlY2lmaWMob3duZXI6IHN0cmluZywgbGFuZ3VhZ2VJZDogc3RyaW5nLCBwcm9qZWN0SWQ6IHN0cmluZywgcmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBhcGkvdjEvcmVwb3MvJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Byb2plY3RJZH0vY29udGVudHM/cmVmPSR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpeE9jY3VycmVuY2Uob2NjdXJyZW5jZSkge1xuICBpZiAodHlwZW9mIG9jY3VycmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KG9jY3VycmVuY2UpXG4gIH1cbiAgcmV0dXJuIG9jY3VycmVuY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0c18gPSBbLi4udmVyc2VPYmplY3RzXVxuXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB2ZXJzZU9iamVjdHNfLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3Qgdm8gPSB2ZXJzZU9iamVjdHNfW2ldXG5cbiAgICAgIGlmICh2by50eXBlID09PSAnd29yZCcpIHtcbiAgICAgICAgY29uc3Qgd29yZCA9IHtcbiAgICAgICAgICAuLi52byxcbiAgICAgICAgICBvY2N1cnJlbmNlOiBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2UpLFxuICAgICAgICAgIG9jY3VycmVuY2VzOiBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2VzKSxcbiAgICAgICAgfVxuICAgICAgICB2ZXJzZU9iamVjdHNfW2ldID0gd29yZFxuICAgICAgfSBlbHNlIGlmICh2by5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGNsZWFudXBWZXJzZU9iamVjdHModm8uY2hpbGRyZW4pXG4gICAgICAgIGNvbnN0IG5ld1ZvID0ge1xuICAgICAgICAgIC4uLnZvLFxuICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSBuZXdWb1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmVyc2VPYmplY3RzX1xuICB9XG4gIHJldHVybiBbXVxufVxuIl19
419
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImxhYmVsIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJoaXN0b3J5IiwiZ2V0TGF0ZXN0IiwiaW5kZXgiLCJmaW5kSXRlbUluZGV4QnlLZXkiLCJzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyIsIm9wdGlvbnMiLCJjdXJyZW50IiwiYWxsb3dVc2VySW5wdXQiLCJvbkNoYW5nZSIsInZhbGlkYXRpb25DQiIsIml0ZW0iLCJuZXdJdGVtIiwiYWRkSXRlbVRvSGlzdG9yeSIsImdldEl0ZW1CeVRpdGxlIiwiZGVsZXRlSXRlbSIsImRlbGV0ZUluZGV4IiwicmVtb3ZlSXRlbUJ5SW5kZXgiLCJnZXRSZXBvVXJsIiwiaXNOVCIsInJlcG9VcmwiLCJzcGxpdCIsImUiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsImxlbmd0aCIsInBhcnQiLCJwcm9qZWN0SWQiLCJjb25zb2xlIiwibG9nIiwiZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UiLCJyZXNvdXJjZVN0YXR1cyIsIm1lc3NhZ2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyIsImZpeE9jY3VycmVuY2UiLCJvY2N1cnJlbmNlIiwicGFyc2VJbnQiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsImkiLCJsIiwidm8iLCJ0eXBlIiwid29yZCIsIm9jY3VycmVu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YixHQUFtQk8sS0FBbkI7QUFDRDtBQUNGOztBQUNELFdBQU9SLGFBQVA7QUFDRDs7QUFDRCxTQUFPLEVBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHtcbiAgQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBMT0FESU5HX1JFU09VUkNFLFxuICBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TRyxcbiAgTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTlRfT1JJR19MQU5HLFxuICBOVF9PUklHX0xBTkdfQklCTEUsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxuICBPVF9PUklHX0xBTkdfQklCTEUsXG4gIFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBUQVJHRVRfTElURVJBTCxcbiAgVEFSR0VUX1NJTVBMSUZJRUQsXG59IGZyb20gJy4vY29tbW9uJ1xuXG5leHBvcnQgY29uc3QgRElTQUJMRV9XT1JEX1BPUE9WRVIgPSB0cnVlIC8vIGRpc2FibGUgd29yZCBwb3BvdmVyIGZvciBldmVyeSBzY3JpcHR1cmUgcGFuZSBidXQgb3JpZ2luYWwgbGFuZ3VhZ2VzXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlKSB7XG4gIGNvbnN0IHJlZiA9IHNjcmlwdHVyZS5yZWYgfHwgc2NyaXB0dXJlLmJyYW5jaFxuICByZXR1cm4gYCR7c2NyaXB0dXJlLm93bmVyfS8ke3NjcmlwdHVyZS5sYW5ndWFnZUlkfS8ke3NjcmlwdHVyZS5yZXNvdXJjZUlkfS8ke3JlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVPYmplY3Qoe1xuICB0aXRsZSxcbiAgc2VydmVyLFxuICBvd25lcixcbiAgcmVmLFxuICBsYW5ndWFnZUlkLFxuICByZXNvdXJjZUlkLFxuICByZXNvdXJjZUxpbmssXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxufSkge1xuICBjb25zdCBzY3JpcHR1cmUgPSB7XG4gICAgdGl0bGUsXG4gICAgc2VydmVyLFxuICAgIG93bmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICByZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICByZXNvdXJjZUxpbmssXG4gIH1cblxuICBpZiAoIXJlc291cmNlTGluaykge1xuICAgIHNjcmlwdHVyZS5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgb3duZXIsXG4gICAgICByZWYsXG4gICAgICBsYW5ndWFnZUlkLFxuICAgICAgcmVzb3VyY2VJZCxcbiAgICB9KVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVcbn1cblxuLyoqXG4gKiByZXR1cm4gdmVyc2UgZGF0YSBnaXZlbiBhIHNjcmlwdHVyZSBjb25maWcgYW5kIHZlcnNlIG51bWJlclxuICogQHBhcmFtIHNjcmlwdHVyZUNvbmZpZ1xuICogQHBhcmFtIHZlcnNlTnVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzZURhdGFGcm9tU2NyaXBDb25maWcoc2NyaXB0dXJlQ29uZmlnLCB2ZXJzZU51bSkge1xuICByZXR1cm4gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWY/LmZpbmQoXG4gICAgdmVyc2VSZWYgPT4gdmVyc2VSZWYudmVyc2UgPT09IHZlcnNlTnVtXG4gIClcbn1cblxuLyoqXG4gKiByZXR1cm4gdHJ1ZSBpZiByZXNvdXJjZSBpcyBhbiBvcmlnaW5hbCBsYW5ndWFnZSBiaWJsZVxuICogQHBhcmFtIHJlc291cmNlSWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3JpZ2luYWxCaWJsZShyZXNvdXJjZUlkKSB7XG4gIGNvbnN0IGlzT3JpZyA9ICgocmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSlcbiAgcmV0dXJuIGlzT3JpZ1xufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSBzY3JpcHR1cmVTZXR0aW5ncyBhcmUgdXAgdG8gZGF0ZSB3aXRoIGN1cnJlbnQgb3duZXIgYW5kIGxhbmd1YWdlXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3M6IGFueSwgY3VycmVudE93bmVyOiBhbnksIGN1cnJlbnRMYW5ndWFnZUlkOiBhbnkpIHtcbiAgaWYgKGN1cnJlbnRPd25lciAmJiAoY3VycmVudE93bmVyICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5vd25lcikpIHsgLy8gaWYgb3duZXIgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBjdXJyZW50T3duZXJcbiAgfVxuXG4gIGlmIChjdXJyZW50TGFuZ3VhZ2VJZCAmJiAoY3VycmVudExhbmd1YWdlSWQgIT09IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQpKSB7IC8vIGlmIGxhbmd1YWdlIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBjdXJyZW50TGFuZ3VhZ2VJZFxuICB9XG59XG5cbi8qKlxuICogc2VwYXJhdGUgVVJMIGludG8gc2VydmVyIGFuZCByZXNvdXJjZSBsaW5rXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgaWYgKG9yaWdpbmFsUmVwb1VybCkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwob3JpZ2luYWxSZXBvVXJsKVxuICAgIGNvbnN0IHNlcnZlciA9IHVybC5vcmlnaW5cbiAgICBjb25zdCByZXNvdXJjZUxpbmsgPSB1cmwucGF0aG5hbWUgKyAodXJsLnNlYXJjaCB8fCAnJylcbiAgICByZXR1cm4geyBzZXJ2ZXIsIHJlc291cmNlTGluayB9XG4gIH1cbiAgcmV0dXJuIHt9XG59XG5cbi8qKlxuICogZ2V0IHRoZSBzY3JpcHR1cmUgc2V0dGluZ3MgbmVlZGVkIGZvciBmZXRjaCAtIGZvciBPcmlnTGFuZywgVUxULCBHTFQgd2lsbCByZXBsYWNlIG93bmVyIGFuZCBsYW5ndWFnZUlkIHdpdGggY29ycmVjdCB2YWx1ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc19cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNOZXdUZXN0YW1lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmwgLSBvcHRpb25hbCBwYXRoIHRvIHJlcG8gZm9yIG9yaWdpbmFsIGxhbmd1YWdlXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzKFxuICBib29rSWQsIHNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsUmVwb1VybD1udWxsLFxuICBjdXJyZW50TGFuZ3VhZ2VJZD1udWxsLFxuICBjdXJyZW50T3duZXI9bnVsbCxcbikge1xuICBjb25zdCBzY3JpcHR1cmVTZXR0aW5ncyA9IHsgLi4uc2NyaXB0dXJlU2V0dGluZ3NfIH1cbiAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gRElTQUJMRV9XT1JEX1BPUE9WRVJcbiAgY29uc3QgcmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzXy5yZXNvdXJjZUlkXG5cbiAgaWYgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkge1xuICAgIC8vIHNlbGVjdCBvcmlnaW5hbCBsYW5ndWFnZSBCaWJsZSBiYXNlZCBvbiB3aGljaCB0ZXN0YW1lbnQgdGhlIGJvb2sgYmVsb25nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBpc05ld1Rlc3RhbWVudCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBpc05ld1Rlc3RhbWVudFxuICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG5cbiAgICBpZiAoc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyKSB7XG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lclxuICAgIH1cblxuICAgIGlmIChvcmlnaW5hbFJlcG9VcmwpIHsgLy8gdXNlIHRoaXMgdXJsIGlmIGRlZmluZWRcbiAgICAgIGNvbnN0IHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfSA9IHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybClcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnNlcnZlciA9IHNlcnZlclxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rXG4gICAgfSBlbHNlIHsgLy8gZmFsbCBiYWNrIHRvIGFwcCBkZWZhdWx0c1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICAgIH1cbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBmYWxzZVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9MSVRFUkFMKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1bHQnIDogJ2dsdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX1NJTVBMSUZJRUQpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VzdCcgOiAnZ3N0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfVxuICByZXR1cm4gc2NyaXB0dXJlU2V0dGluZ3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gIGxhYmVsLFxuICByZXNvdXJjZUxpbmssXG4gIHNldFNjcmlwdHVyZSxcbiAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG59KSB7XG4gIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICBsZXQgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3Jlc291cmNlTGluaycsIHJlc291cmNlTGluaylcblxuICBjb25zdCBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyA9IHtcbiAgICBsYWJlbCwgLy8gbGFiZWwgZm9yIGNvbWJvYm94XG4gICAgb3B0aW9uczogaGlzdG9yeSxcbiAgICBjdXJyZW50OiBpbmRleCxcbiAgICBhbGxvd1VzZXJJbnB1dDogdHJ1ZSxcbiAgICBvbkNoYW5nZTogKHRpdGxlLCBpbmRleCwgdmFsaWRhdGlvbkNCPW51bGwpID0+IHtcbiAgICAgIGxldCBpdGVtXG5cbiAgICAgIGlmICgoaW5kZXggPCAwKSAmJiB0aXRsZSkge1xuICAgICAgICBjb25zdCBuZXdJdGVtID0ge1xuICAgICAgICAgIHVybDogdGl0bGUsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5hZGRJdGVtVG9IaXN0b3J5KG5ld0l0ZW0pXG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClbaW5kZXhdXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRJdGVtQnlUaXRsZSh0aXRsZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgc2V0U2NyaXB0dXJlKGl0ZW0sIHZhbGlkYXRpb25DQilcbiAgICAgIH1cbiAgICB9LFxuICAgIGRlbGV0ZUl0ZW06IHRpdGxlID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICAgICAgY29uc3QgZGVsZXRlSW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3RpdGxlJywgdGl0bGUpXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC5yZW1vdmVJdGVtQnlJbmRleChkZWxldGVJbmRleClcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvVXJsKHJlc291cmNlTGluazogc3RyaW5nLCBzZXJ2ZXI6IHN0cmluZywgaXNOVDogYm9vbGVhbik6IHN0cmluZyB7XG4gIGxldCByZXBvVXJsXG5cbiAgdHJ5IHtcbiAgICBsZXQgW293bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkXSA9IHJlc291cmNlTGluay5zcGxpdCgnLycpXG5cbiAgICBzd2l0Y2ggKHJlc291cmNlSWQpIHtcbiAgICBjYXNlIE9SSUdJTkFMX1NPVVJDRTpcbiAgICAgIGxhbmd1YWdlSWQgPSBpc05UID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgICByZXNvdXJjZUlkID0gaXNOVFxuICAgICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX0xJVEVSQUw6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VsdCcgOiAnZ2x0J1xuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX1NJTVBMSUZJRUQ6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VzdCcgOiAnZ3N0J1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgcmVwb1VybCA9IGAke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cmVzb3VyY2VJZH1gXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyByZXNvdXJjZUxpbmsgd2FzIGludmFsaWRcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGAke3NlcnZlciB8fCAnJ30vJHtyZXBvVXJsfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhcbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmcsXG4gIHNlcnZlcjogc3RyaW5nLFxuICBlcnJvckNvZGU6IHN0cmluZyxcbiAgaXNOVDogYm9vbGVhbik6IHN0cmluZ1xue1xuICBjb25zdCByZXBvVXJsID0gZ2V0UmVwb1VybChyZXNvdXJjZUxpbmssIHNlcnZlciwgaXNOVClcbiAgY29uc3QgZXJyb3JNc2cgPSBlcnJvckNvZGUgKyByZXBvVXJsXG4gIHJldHVybiBlcnJvck1zZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEY3NVcmwodXJsKSB7XG4gIGxldCB2YWxpZFJlcG9QYXRoID0gZmFsc2VcbiAgbGV0IHZhbGlkVXJsID0gZmFsc2VcblxuICB0cnkge1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJylcbiAgICBjb25zdCBbcHJvdG9jb2wsICwgaG9zdCwgdXNlciwgcmVwb10gPSBwYXJ0c1xuICAgIHZhbGlkVXJsID0gKHByb3RvY29sID09PSAnaHR0cHM6JylcbiAgICBjb25zdCBob3N0UGFydHMgPSBob3N0ID8gaG9zdC5zcGxpdCgnLicpIDogW11cblxuICAgIGlmIChob3N0UGFydHMubGVuZ3RoID49IDIpIHtcbiAgICAgIGZvciAobGV0IHBhcnQgb2YgaG9zdFBhcnRzKSB7XG4gICAgICAgIGlmICghcGFydCkge1xuICAgICAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoIHByb3RvY29sICYmIGhvc3QgJiYgdXNlciAmJiByZXBvICkge1xuICAgICAgY29uc3QgW2xhbmd1YWdlSWQsIHByb2plY3RJZF0gPSByZXBvLnNwbGl0KCdfJylcbiAgICAgIHZhbGlkUmVwb1BhdGggPSBsYW5ndWFnZUlkICYmIHByb2plY3RJZFxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS5sb2coJ0ludmFsaWQgRENTIFVSTDogJyArIHVybClcbiAgfVxuICByZXR1cm4geyB2YWxpZFVybCwgdmFsaWRSZXBvUGF0aCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0KSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbQ09OVEVOVF9OT1RfRk9VTkRfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZGVjb2RlIHJlc291cmNlIHN0YXR1cyBpbnRvIHN0cmluZy4gIEN1cnJlbnRseSBvbmx5IEVuZ2xpc2hcbiAqIEBwYXJhbSByZXNvdXJjZVN0YXR1cyAtIG9iamVjdCB0aGF0IGNvbnRhaW5zIHN0YXRlIGFuZCBlcnJvcnMgdGhhdCBhcmUgZGV0ZWN0ZWRcbiAqIEBwYXJhbSBzZXJ2ZXIgLSBjb250YWlucyB0aGUgc2VydmVyIGJlaW5nIHVzZWRcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmsgLSBwYXRoIHRvIHJlcG8gb24gc2VydmVyXG4gKiBAcGFyYW0gaXNOVCAtIHRydWUgaWYgTlQgYm9va1xuICogQHJldHVybiBlbXB0eSBzdHJpbmcgaWYgbm8gZXJyb3IsIGVsc2UgcmV0dXJucyB1c2VyIGVycm9yIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0LCBzZXJ2ZXI6IHN0cmluZywgcmVzb3VyY2VMaW5rOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tMT0FESU5HX1NUQVRFXSkge1xuICAgIG1lc3NhZ2UgPSBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9IGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzKVxuXG4gICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgIG1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIG1lc3NhZ2UsIGlzTlQpXG4gICAgfVxuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZ2VuZXJhdGUgcmVzb3VyY2Ugc3RyaW5nXG4gKiBAcGFyYW0gb3duZXJcbiAqIEBwYXJhbSBsYW5ndWFnZUlkXG4gKiBAcGFyYW0gcHJvamVjdElkXG4gKiBAcGFyYW0gcmVmXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyhvd25lcjogc3RyaW5nLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHByb2plY3RJZDogc3RyaW5nLCByZWY6IHN0cmluZykge1xuICByZXR1cm4gYGFwaS92MS9yZXBvcy8ke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cHJvamVjdElkfS9jb250ZW50cz9yZWY9JHtyZWZ9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZml4T2NjdXJyZW5jZShvY2N1cnJlbmNlKSB7XG4gIGlmICh0eXBlb2Ygb2NjdXJyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQob2NjdXJyZW5jZSlcbiAgfVxuICByZXR1cm4gb2NjdXJyZW5jZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cFZlcnNlT2JqZWN0cyh2ZXJzZU9iamVjdHMpIHtcbiAgaWYgKHZlcnNlT2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgdmVyc2VPYmplY3RzXyA9IFsuLi52ZXJzZU9iamVjdHNdXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHZlcnNlT2JqZWN0c18ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB2byA9IHZlcnNlT2JqZWN0c19baV1cblxuICAgICAgaWYgKHZvLnR5cGUgPT09ICd3b3JkJykge1xuICAgICAgICBjb25zdCB3b3JkID0ge1xuICAgICAgICAgIC4uLnZvLFxuICAgICAgICAgIG9jY3VycmVuY2U6IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZSksXG4gICAgICAgICAgb2NjdXJyZW5jZXM6IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZXMpLFxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSB3b3JkXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2by5jaGlsZHJlbilcbiAgICAgICAgY29uc3QgbmV3Vm8gPSB7XG4gICAgICAgICAgLi4udm8sXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IG5ld1ZvXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNfXG4gIH1cbiAgcmV0dXJuIFtdXG59XG4iXX0=
package/package.json CHANGED
@@ -1,8 +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.1-beta.2",
5
-
4
+ "version": "3.3.1",
6
5
  "repository": {
7
6
  "type": "git",
8
7
  "url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
@@ -27,12 +26,10 @@
27
26
  "prop-types": "^15.x",
28
27
  "react": "^17.x",
29
28
  "react-dom": "^17.x",
30
- "react-icons": "^4.8.0",
31
29
  "scripture-resources-rcl": "^5.2.0",
32
30
  "tc-ui-toolkit": "^5.3.3",
33
31
  "translation-helps-rcl": "^3.3.5",
34
- "word-aligner": "^1.0.0",
35
- "word-aligner-rcl": "^0.9.2"
32
+ "word-aligner": "^1.0.0"
36
33
  },
37
34
  "devDependencies": {
38
35
  "@babel/cli": "^7.12.1",
@@ -76,7 +73,6 @@
76
73
  "prop-types": "^15.7.2",
77
74
  "react": "^17.0.1",
78
75
  "react-dom": "^17.0.1",
79
- "react-icons": "^4.8.0",
80
76
  "react-styleguidist": "^11.1.5",
81
77
  "scripture-resources-rcl": "^5.2.0",
82
78
  "style-loader": "^2.0.0",
@@ -86,8 +82,7 @@
86
82
  "use-deep-compare-effect": "1.8.1",
87
83
  "usfm-js": "3.4.2",
88
84
  "webpack": "^4.44.2",
89
- "word-aligner": "^1.0.0",
90
- "word-aligner-rcl": "0.9.2"
85
+ "word-aligner": "^1.0.0"
91
86
  },
92
87
  "dependencies": {
93
88
  "@types/react": "^17.0.0",
@@ -95,9 +90,11 @@
95
90
  "deep-equal": "^2.0.5",
96
91
  "lodash": "^4.17.21",
97
92
  "react-docgen-typescript": "^1.20.5",
93
+ "react-icons": "^4.8.0",
98
94
  "source-map-loader": "^1.1.3",
99
95
  "styled-components": "^5.2.1",
100
96
  "ts-loader": "^8.0.12",
101
- "typescript": "^4.1.3"
97
+ "typescript": "^4.1.3",
98
+ "word-aligner-rcl": "0.9.2"
102
99
  }
103
100
  }