cdk-common 2.0.752 → 2.0.753

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,6 +1,8 @@
1
1
  function Diff() {}
2
2
  Diff.prototype = {
3
3
  diff: function diff(oldString, newString) {
4
+ var _options$timeout;
5
+
4
6
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5
7
  var callback = options.callback;
6
8
 
@@ -37,64 +39,96 @@ Diff.prototype = {
37
39
  maxEditLength = Math.min(maxEditLength, options.maxEditLength);
38
40
  }
39
41
 
42
+ var maxExecutionTime = (_options$timeout = options.timeout) !== null && _options$timeout !== void 0 ? _options$timeout : Infinity;
43
+ var abortAfterTimestamp = Date.now() + maxExecutionTime;
40
44
  var bestPath = [{
41
- newPos: -1,
42
- components: []
45
+ oldPos: -1,
46
+ lastComponent: undefined
43
47
  }]; // Seed editLength = 0, i.e. the content starts with the same values
44
48
 
45
- var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
49
+ var newPos = this.extractCommon(bestPath[0], newString, oldString, 0);
46
50
 
47
- if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
51
+ if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {
48
52
  // Identity per the equality and tokenizer
49
53
  return done([{
50
54
  value: this.join(newString),
51
55
  count: newString.length
52
56
  }]);
53
- } // Main worker method. checks all permutations of a given edit length for acceptance.
54
-
57
+ } // Once we hit the right edge of the edit graph on some diagonal k, we can
58
+ // definitely reach the end of the edit graph in no more than k edits, so
59
+ // there's no point in considering any moves to diagonal k+1 any more (from
60
+ // which we're guaranteed to need at least k+1 more edits).
61
+ // Similarly, once we've reached the bottom of the edit graph, there's no
62
+ // point considering moves to lower diagonals.
63
+ // We record this fact by setting minDiagonalToConsider and
64
+ // maxDiagonalToConsider to some finite value once we've hit the edge of
65
+ // the edit graph.
66
+ // This optimization is not faithful to the original algorithm presented in
67
+ // Myers's paper, which instead pointlessly extends D-paths off the end of
68
+ // the edit graph - see page 7 of Myers's paper which notes this point
69
+ // explicitly and illustrates it with a diagram. This has major performance
70
+ // implications for some common scenarios. For instance, to compute a diff
71
+ // where the new text simply appends d characters on the end of the
72
+ // original text of length n, the true Myers algorithm will take O(n+d^2)
73
+ // time while this optimization needs only O(n+d) time.
74
+
75
+
76
+ var minDiagonalToConsider = -Infinity,
77
+ maxDiagonalToConsider = Infinity; // Main worker method. checks all permutations of a given edit length for acceptance.
55
78
 
56
79
  function execEditLength() {
57
- for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
80
+ for (var diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {
58
81
  var basePath = void 0;
82
+ var removePath = bestPath[diagonalPath - 1],
83
+ addPath = bestPath[diagonalPath + 1];
59
84
 
60
- var addPath = bestPath[diagonalPath - 1],
61
- removePath = bestPath[diagonalPath + 1],
62
- _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
63
-
64
- if (addPath) {
85
+ if (removePath) {
65
86
  // No one else is going to attempt to use this value, clear it
66
87
  bestPath[diagonalPath - 1] = undefined;
67
88
  }
68
89
 
69
- var canAdd = addPath && addPath.newPos + 1 < newLen,
70
- canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
90
+ var canAdd = false;
91
+
92
+ if (addPath) {
93
+ // what newPos will be after we do an insertion:
94
+ var addPathNewPos = addPath.oldPos - diagonalPath;
95
+ canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;
96
+ }
97
+
98
+ var canRemove = removePath && removePath.oldPos + 1 < oldLen;
71
99
 
72
100
  if (!canAdd && !canRemove) {
73
101
  // If this path is a terminal then prune
74
102
  bestPath[diagonalPath] = undefined;
75
103
  continue;
76
104
  } // Select the diagonal that we want to branch from. We select the prior
77
- // path whose position in the new string is the farthest from the origin
105
+ // path whose position in the old string is the farthest from the origin
78
106
  // and does not pass the bounds of the diff graph
107
+ // TODO: Remove the `+ 1` here to make behavior match Myers algorithm
108
+ // and prefer to order removals before insertions.
79
109
 
80
110
 
81
- if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
82
- basePath = clonePath(removePath);
83
- self.pushComponent(basePath.components, undefined, true);
111
+ if (!canRemove || canAdd && removePath.oldPos + 1 < addPath.oldPos) {
112
+ basePath = self.addToPath(addPath, true, undefined, 0);
84
113
  } else {
85
- basePath = addPath; // No need to clone, we've pulled it from the list
86
-
87
- basePath.newPos++;
88
- self.pushComponent(basePath.components, true, undefined);
114
+ basePath = self.addToPath(removePath, undefined, true, 1);
89
115
  }
90
116
 
91
- _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done
117
+ newPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
92
118
 
93
- if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
94
- return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
119
+ if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {
120
+ // If we have hit the end of both strings, then we are done
121
+ return done(buildValues(self, basePath.lastComponent, newString, oldString, self.useLongestToken));
95
122
  } else {
96
- // Otherwise track this path as a potential candidate and continue.
97
123
  bestPath[diagonalPath] = basePath;
124
+
125
+ if (basePath.oldPos + 1 >= oldLen) {
126
+ maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);
127
+ }
128
+
129
+ if (newPos + 1 >= newLen) {
130
+ minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);
131
+ }
98
132
  }
99
133
  }
100
134
 
@@ -108,7 +142,7 @@ Diff.prototype = {
108
142
  if (callback) {
109
143
  (function exec() {
110
144
  setTimeout(function () {
111
- if (editLength > maxEditLength) {
145
+ if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {
112
146
  return callback();
113
147
  }
114
148
 
@@ -118,7 +152,7 @@ Diff.prototype = {
118
152
  }, 0);
119
153
  })();
120
154
  } else {
121
- while (editLength <= maxEditLength) {
155
+ while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {
122
156
  var ret = execEditLength();
123
157
 
124
158
  if (ret) {
@@ -127,30 +161,36 @@ Diff.prototype = {
127
161
  }
128
162
  }
129
163
  },
130
- pushComponent: function pushComponent(components, added, removed) {
131
- var last = components[components.length - 1];
164
+ addToPath: function addToPath(path, added, removed, oldPosInc) {
165
+ var last = path.lastComponent;
132
166
 
133
167
  if (last && last.added === added && last.removed === removed) {
134
- // We need to clone here as the component clone operation is just
135
- // as shallow array clone
136
- components[components.length - 1] = {
137
- count: last.count + 1,
138
- added: added,
139
- removed: removed
168
+ return {
169
+ oldPos: path.oldPos + oldPosInc,
170
+ lastComponent: {
171
+ count: last.count + 1,
172
+ added: added,
173
+ removed: removed,
174
+ previousComponent: last.previousComponent
175
+ }
140
176
  };
141
177
  } else {
142
- components.push({
143
- count: 1,
144
- added: added,
145
- removed: removed
146
- });
178
+ return {
179
+ oldPos: path.oldPos + oldPosInc,
180
+ lastComponent: {
181
+ count: 1,
182
+ added: added,
183
+ removed: removed,
184
+ previousComponent: last
185
+ }
186
+ };
147
187
  }
148
188
  },
149
189
  extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
150
190
  var newLen = newString.length,
151
191
  oldLen = oldString.length,
152
- newPos = basePath.newPos,
153
- oldPos = newPos - diagonalPath,
192
+ oldPos = basePath.oldPos,
193
+ newPos = oldPos - diagonalPath,
154
194
  commonCount = 0;
155
195
 
156
196
  while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
@@ -160,13 +200,14 @@ Diff.prototype = {
160
200
  }
161
201
 
162
202
  if (commonCount) {
163
- basePath.components.push({
164
- count: commonCount
165
- });
203
+ basePath.lastComponent = {
204
+ count: commonCount,
205
+ previousComponent: basePath.lastComponent
206
+ };
166
207
  }
167
208
 
168
- basePath.newPos = newPos;
169
- return oldPos;
209
+ basePath.oldPos = oldPos;
210
+ return newPos;
170
211
  },
171
212
  equals: function equals(left, right) {
172
213
  if (this.options.comparator) {
@@ -197,7 +238,20 @@ Diff.prototype = {
197
238
  }
198
239
  };
199
240
 
200
- function buildValues(diff, components, newString, oldString, useLongestToken) {
241
+ function buildValues(diff, lastComponent, newString, oldString, useLongestToken) {
242
+ // First we convert our linked list of components in reverse order to an
243
+ // array in the right order:
244
+ var components = [];
245
+ var nextComponent;
246
+
247
+ while (lastComponent) {
248
+ components.push(lastComponent);
249
+ nextComponent = lastComponent.previousComponent;
250
+ delete lastComponent.previousComponent;
251
+ lastComponent = nextComponent;
252
+ }
253
+
254
+ components.reverse();
201
255
  var componentPos = 0,
202
256
  componentLen = components.length,
203
257
  newPos = 0,
@@ -240,23 +294,16 @@ function buildValues(diff, components, newString, oldString, useLongestToken) {
240
294
  // This is only available for string mode.
241
295
 
242
296
 
243
- var lastComponent = components[componentLen - 1];
297
+ var finalComponent = components[componentLen - 1];
244
298
 
245
- if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
246
- components[componentLen - 2].value += lastComponent.value;
299
+ if (componentLen > 1 && typeof finalComponent.value === 'string' && (finalComponent.added || finalComponent.removed) && diff.equals('', finalComponent.value)) {
300
+ components[componentLen - 2].value += finalComponent.value;
247
301
  components.pop();
248
302
  }
249
303
 
250
304
  return components;
251
305
  }
252
306
 
253
- function clonePath(path) {
254
- return {
255
- newPos: path.newPos,
256
- components: path.components.slice(0)
257
- };
258
- }
259
-
260
307
  var characterDiff = new Diff();
261
308
  function diffChars(oldStr, newStr, options) {
262
309
  return characterDiff.diff(oldStr, newStr, options);
@@ -337,6 +384,11 @@ function diffWordsWithSpace(oldStr, newStr, options) {
337
384
  var lineDiff = new Diff();
338
385
 
339
386
  lineDiff.tokenize = function (value) {
387
+ if (this.options.stripTrailingCr) {
388
+ // remove one \r before \n to match GNU diff's --strip-trailing-cr behavior
389
+ value = value.replace(/\r\n/g, '\n');
390
+ }
391
+
340
392
  var retLines = [],
341
393
  linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line
342
394
 
@@ -408,6 +460,55 @@ function _typeof(obj) {
408
460
  return _typeof(obj);
409
461
  }
410
462
 
463
+ function _defineProperty(obj, key, value) {
464
+ if (key in obj) {
465
+ Object.defineProperty(obj, key, {
466
+ value: value,
467
+ enumerable: true,
468
+ configurable: true,
469
+ writable: true
470
+ });
471
+ } else {
472
+ obj[key] = value;
473
+ }
474
+
475
+ return obj;
476
+ }
477
+
478
+ function ownKeys(object, enumerableOnly) {
479
+ var keys = Object.keys(object);
480
+
481
+ if (Object.getOwnPropertySymbols) {
482
+ var symbols = Object.getOwnPropertySymbols(object);
483
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
484
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
485
+ });
486
+ keys.push.apply(keys, symbols);
487
+ }
488
+
489
+ return keys;
490
+ }
491
+
492
+ function _objectSpread2(target) {
493
+ for (var i = 1; i < arguments.length; i++) {
494
+ var source = arguments[i] != null ? arguments[i] : {};
495
+
496
+ if (i % 2) {
497
+ ownKeys(Object(source), true).forEach(function (key) {
498
+ _defineProperty(target, key, source[key]);
499
+ });
500
+ } else if (Object.getOwnPropertyDescriptors) {
501
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
502
+ } else {
503
+ ownKeys(Object(source)).forEach(function (key) {
504
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
505
+ });
506
+ }
507
+ }
508
+
509
+ return target;
510
+ }
511
+
411
512
  function _toConsumableArray(arr) {
412
513
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
413
514
  }
@@ -840,7 +941,7 @@ function applyPatch(source, uniDiff) {
840
941
  var line = _hunk.lines[j],
841
942
  operation = line.length > 0 ? line[0] : ' ',
842
943
  content = line.length > 0 ? line.substr(1) : line,
843
- delimiter = _hunk.linedelimiters[j];
944
+ delimiter = _hunk.linedelimiters && _hunk.linedelimiters[j] || '\n';
844
945
 
845
946
  if (operation === ' ') {
846
947
  _toPos++;
@@ -1047,6 +1148,10 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne
1047
1148
  };
1048
1149
  }
1049
1150
  function formatPatch(diff) {
1151
+ if (Array.isArray(diff)) {
1152
+ return diff.map(formatPatch).join('\n');
1153
+ }
1154
+
1050
1155
  var ret = [];
1051
1156
 
1052
1157
  if (diff.oldFileName == diff.newFileName) {
@@ -1502,6 +1607,39 @@ function calcOldNewLineCount(lines) {
1502
1607
  };
1503
1608
  }
1504
1609
 
1610
+ function reversePatch(structuredPatch) {
1611
+ if (Array.isArray(structuredPatch)) {
1612
+ return structuredPatch.map(reversePatch).reverse();
1613
+ }
1614
+
1615
+ return _objectSpread2(_objectSpread2({}, structuredPatch), {}, {
1616
+ oldFileName: structuredPatch.newFileName,
1617
+ oldHeader: structuredPatch.newHeader,
1618
+ newFileName: structuredPatch.oldFileName,
1619
+ newHeader: structuredPatch.oldHeader,
1620
+ hunks: structuredPatch.hunks.map(function (hunk) {
1621
+ return {
1622
+ oldLines: hunk.newLines,
1623
+ oldStart: hunk.newStart,
1624
+ newLines: hunk.oldLines,
1625
+ newStart: hunk.oldStart,
1626
+ linedelimiters: hunk.linedelimiters,
1627
+ lines: hunk.lines.map(function (l) {
1628
+ if (l.startsWith('-')) {
1629
+ return "+".concat(l.slice(1));
1630
+ }
1631
+
1632
+ if (l.startsWith('+')) {
1633
+ return "-".concat(l.slice(1));
1634
+ }
1635
+
1636
+ return l;
1637
+ })
1638
+ };
1639
+ })
1640
+ });
1641
+ }
1642
+
1505
1643
  // See: http://code.google.com/p/google-diff-match-patch/wiki/API
1506
1644
  function convertChangesToDMP(changes) {
1507
1645
  var ret = [],
@@ -1558,4 +1696,4 @@ function escapeHTML(s) {
1558
1696
  return n;
1559
1697
  }
1560
1698
 
1561
- export { Diff, applyPatch, applyPatches, canonicalize, convertChangesToDMP, convertChangesToXML, createPatch, createTwoFilesPatch, diffArrays, diffChars, diffCss, diffJson, diffLines, diffSentences, diffTrimmedLines, diffWords, diffWordsWithSpace, merge, parsePatch, structuredPatch };
1699
+ export { Diff, applyPatch, applyPatches, canonicalize, convertChangesToDMP, convertChangesToXML, createPatch, createTwoFilesPatch, diffArrays, diffChars, diffCss, diffJson, diffLines, diffSentences, diffTrimmedLines, diffWords, diffWordsWithSpace, formatPatch, merge, parsePatch, reversePatch, structuredPatch };
@@ -94,6 +94,12 @@ Object.defineProperty(exports, "merge", {
94
94
  return _merge.merge;
95
95
  }
96
96
  });
97
+ Object.defineProperty(exports, "reversePatch", {
98
+ enumerable: true,
99
+ get: function get() {
100
+ return _reverse.reversePatch;
101
+ }
102
+ });
97
103
  Object.defineProperty(exports, "structuredPatch", {
98
104
  enumerable: true,
99
105
  get: function get() {
@@ -112,6 +118,12 @@ Object.defineProperty(exports, "createPatch", {
112
118
  return _create.createPatch;
113
119
  }
114
120
  });
121
+ Object.defineProperty(exports, "formatPatch", {
122
+ enumerable: true,
123
+ get: function get() {
124
+ return _create.formatPatch;
125
+ }
126
+ });
115
127
  Object.defineProperty(exports, "convertChangesToDMP", {
116
128
  enumerable: true,
117
129
  get: function get() {
@@ -192,6 +204,12 @@ _merge = require("./patch/merge")
192
204
  /*istanbul ignore end*/
193
205
  ;
194
206
 
207
+ var
208
+ /*istanbul ignore start*/
209
+ _reverse = require("./patch/reverse")
210
+ /*istanbul ignore end*/
211
+ ;
212
+
195
213
  var
196
214
  /*istanbul ignore start*/
197
215
  _create = require("./patch/create")
@@ -213,4 +231,4 @@ _xml = require("./convert/xml")
213
231
  /*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
214
232
 
215
233
  /*istanbul ignore end*/
216
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBTZWUgTElDRU5TRSBmaWxlIGZvciB0ZXJtcyBvZiB1c2UgKi9cblxuLypcbiAqIFRleHQgZGlmZiBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBUaGlzIGxpYnJhcnkgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBBUElTOlxuICogSnNEaWZmLmRpZmZDaGFyczogQ2hhcmFjdGVyIGJ5IGNoYXJhY3RlciBkaWZmXG4gKiBKc0RpZmYuZGlmZldvcmRzOiBXb3JkIChhcyBkZWZpbmVkIGJ5IFxcYiByZWdleCkgZGlmZiB3aGljaCBpZ25vcmVzIHdoaXRlc3BhY2VcbiAqIEpzRGlmZi5kaWZmTGluZXM6IExpbmUgYmFzZWQgZGlmZlxuICpcbiAqIEpzRGlmZi5kaWZmQ3NzOiBEaWZmIHRhcmdldGVkIGF0IENTUyBjb250ZW50XG4gKlxuICogVGhlc2UgbWV0aG9kcyBhcmUgYmFzZWQgb24gdGhlIGltcGxlbWVudGF0aW9uIHByb3Bvc2VkIGluXG4gKiBcIkFuIE8oTkQpIERpZmZlcmVuY2UgQWxnb3JpdGhtIGFuZCBpdHMgVmFyaWF0aW9uc1wiIChNeWVycywgMTk4NikuXG4gKiBodHRwOi8vY2l0ZXNlZXJ4LmlzdC5wc3UuZWR1L3ZpZXdkb2Mvc3VtbWFyeT9kb2k9MTAuMS4xLjQuNjkyN1xuICovXG5pbXBvcnQgRGlmZiBmcm9tICcuL2RpZmYvYmFzZSc7XG5pbXBvcnQge2RpZmZDaGFyc30gZnJvbSAnLi9kaWZmL2NoYXJhY3Rlcic7XG5pbXBvcnQge2RpZmZXb3JkcywgZGlmZldvcmRzV2l0aFNwYWNlfSBmcm9tICcuL2RpZmYvd29yZCc7XG5pbXBvcnQge2RpZmZMaW5lcywgZGlmZlRyaW1tZWRMaW5lc30gZnJvbSAnLi9kaWZmL2xpbmUnO1xuaW1wb3J0IHtkaWZmU2VudGVuY2VzfSBmcm9tICcuL2RpZmYvc2VudGVuY2UnO1xuXG5pbXBvcnQge2RpZmZDc3N9IGZyb20gJy4vZGlmZi9jc3MnO1xuaW1wb3J0IHtkaWZmSnNvbiwgY2Fub25pY2FsaXplfSBmcm9tICcuL2RpZmYvanNvbic7XG5cbmltcG9ydCB7ZGlmZkFycmF5c30gZnJvbSAnLi9kaWZmL2FycmF5JztcblxuaW1wb3J0IHthcHBseVBhdGNoLCBhcHBseVBhdGNoZXN9IGZyb20gJy4vcGF0Y2gvYXBwbHknO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhdGNoL3BhcnNlJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJy4vcGF0Y2gvbWVyZ2UnO1xuaW1wb3J0IHtzdHJ1Y3R1cmVkUGF0Y2gsIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gsIGNyZWF0ZVBhdGNofSBmcm9tICcuL3BhdGNoL2NyZWF0ZSc7XG5cbmltcG9ydCB7Y29udmVydENoYW5nZXNUb0RNUH0gZnJvbSAnLi9jb252ZXJ0L2RtcCc7XG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9YTUx9IGZyb20gJy4vY29udmVydC94bWwnO1xuXG5leHBvcnQge1xuICBEaWZmLFxuXG4gIGRpZmZDaGFycyxcbiAgZGlmZldvcmRzLFxuICBkaWZmV29yZHNXaXRoU3BhY2UsXG4gIGRpZmZMaW5lcyxcbiAgZGlmZlRyaW1tZWRMaW5lcyxcbiAgZGlmZlNlbnRlbmNlcyxcblxuICBkaWZmQ3NzLFxuICBkaWZmSnNvbixcblxuICBkaWZmQXJyYXlzLFxuXG4gIHN0cnVjdHVyZWRQYXRjaCxcbiAgY3JlYXRlVHdvRmlsZXNQYXRjaCxcbiAgY3JlYXRlUGF0Y2gsXG4gIGFwcGx5UGF0Y2gsXG4gIGFwcGx5UGF0Y2hlcyxcbiAgcGFyc2VQYXRjaCxcbiAgbWVyZ2UsXG4gIGNvbnZlcnRDaGFuZ2VzVG9ETVAsXG4gIGNvbnZlcnRDaGFuZ2VzVG9YTUwsXG4gIGNhbm9uaWNhbGl6ZVxufTtcbiJdfQ==
234
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIFNlZSBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zIG9mIHVzZSAqL1xuXG4vKlxuICogVGV4dCBkaWZmIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFRoaXMgbGlicmFyeSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEFQSXM6XG4gKiBEaWZmLmRpZmZDaGFyczogQ2hhcmFjdGVyIGJ5IGNoYXJhY3RlciBkaWZmXG4gKiBEaWZmLmRpZmZXb3JkczogV29yZCAoYXMgZGVmaW5lZCBieSBcXGIgcmVnZXgpIGRpZmYgd2hpY2ggaWdub3JlcyB3aGl0ZXNwYWNlXG4gKiBEaWZmLmRpZmZMaW5lczogTGluZSBiYXNlZCBkaWZmXG4gKlxuICogRGlmZi5kaWZmQ3NzOiBEaWZmIHRhcmdldGVkIGF0IENTUyBjb250ZW50XG4gKlxuICogVGhlc2UgbWV0aG9kcyBhcmUgYmFzZWQgb24gdGhlIGltcGxlbWVudGF0aW9uIHByb3Bvc2VkIGluXG4gKiBcIkFuIE8oTkQpIERpZmZlcmVuY2UgQWxnb3JpdGhtIGFuZCBpdHMgVmFyaWF0aW9uc1wiIChNeWVycywgMTk4NikuXG4gKiBodHRwOi8vY2l0ZXNlZXJ4LmlzdC5wc3UuZWR1L3ZpZXdkb2Mvc3VtbWFyeT9kb2k9MTAuMS4xLjQuNjkyN1xuICovXG5pbXBvcnQgRGlmZiBmcm9tICcuL2RpZmYvYmFzZSc7XG5pbXBvcnQge2RpZmZDaGFyc30gZnJvbSAnLi9kaWZmL2NoYXJhY3Rlcic7XG5pbXBvcnQge2RpZmZXb3JkcywgZGlmZldvcmRzV2l0aFNwYWNlfSBmcm9tICcuL2RpZmYvd29yZCc7XG5pbXBvcnQge2RpZmZMaW5lcywgZGlmZlRyaW1tZWRMaW5lc30gZnJvbSAnLi9kaWZmL2xpbmUnO1xuaW1wb3J0IHtkaWZmU2VudGVuY2VzfSBmcm9tICcuL2RpZmYvc2VudGVuY2UnO1xuXG5pbXBvcnQge2RpZmZDc3N9IGZyb20gJy4vZGlmZi9jc3MnO1xuaW1wb3J0IHtkaWZmSnNvbiwgY2Fub25pY2FsaXplfSBmcm9tICcuL2RpZmYvanNvbic7XG5cbmltcG9ydCB7ZGlmZkFycmF5c30gZnJvbSAnLi9kaWZmL2FycmF5JztcblxuaW1wb3J0IHthcHBseVBhdGNoLCBhcHBseVBhdGNoZXN9IGZyb20gJy4vcGF0Y2gvYXBwbHknO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhdGNoL3BhcnNlJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJy4vcGF0Y2gvbWVyZ2UnO1xuaW1wb3J0IHtyZXZlcnNlUGF0Y2h9IGZyb20gJy4vcGF0Y2gvcmV2ZXJzZSc7XG5pbXBvcnQge3N0cnVjdHVyZWRQYXRjaCwgY3JlYXRlVHdvRmlsZXNQYXRjaCwgY3JlYXRlUGF0Y2gsIGZvcm1hdFBhdGNofSBmcm9tICcuL3BhdGNoL2NyZWF0ZSc7XG5cbmltcG9ydCB7Y29udmVydENoYW5nZXNUb0RNUH0gZnJvbSAnLi9jb252ZXJ0L2RtcCc7XG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9YTUx9IGZyb20gJy4vY29udmVydC94bWwnO1xuXG5leHBvcnQge1xuICBEaWZmLFxuXG4gIGRpZmZDaGFycyxcbiAgZGlmZldvcmRzLFxuICBkaWZmV29yZHNXaXRoU3BhY2UsXG4gIGRpZmZMaW5lcyxcbiAgZGlmZlRyaW1tZWRMaW5lcyxcbiAgZGlmZlNlbnRlbmNlcyxcblxuICBkaWZmQ3NzLFxuICBkaWZmSnNvbixcblxuICBkaWZmQXJyYXlzLFxuXG4gIHN0cnVjdHVyZWRQYXRjaCxcbiAgY3JlYXRlVHdvRmlsZXNQYXRjaCxcbiAgY3JlYXRlUGF0Y2gsXG4gIGZvcm1hdFBhdGNoLFxuICBhcHBseVBhdGNoLFxuICBhcHBseVBhdGNoZXMsXG4gIHBhcnNlUGF0Y2gsXG4gIG1lcmdlLFxuICByZXZlcnNlUGF0Y2gsXG4gIGNvbnZlcnRDaGFuZ2VzVG9ETVAsXG4gIGNvbnZlcnRDaGFuZ2VzVG9YTUwsXG4gIGNhbm9uaWNhbGl6ZVxufTtcbiJdfQ==