occam-verify-cli 1.0.521 → 1.0.524
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/action/verify.js +2 -2
- package/lib/context/release.js +3 -3
- package/lib/element/combinator.js +4 -4
- package/lib/element/conclusion.js +5 -5
- package/lib/element/declaration/combinator.js +5 -5
- package/lib/element/declaration/complexType.js +17 -17
- package/lib/element/declaration/constructor.js +13 -13
- package/lib/element/declaration/metavariable.js +14 -14
- package/lib/element/declaration/simpleType.js +14 -14
- package/lib/element/declaration/typePrefix.js +12 -12
- package/lib/element/declaration/variable.js +10 -10
- package/lib/element/deduction.js +5 -5
- package/lib/element/hypothesis.js +4 -4
- package/lib/element/proofAssertion/premise.js +7 -7
- package/lib/element/proofAssertion/step.js +5 -5
- package/lib/element/proofAssertion/supposition.js +11 -11
- package/lib/element/rule.js +5 -5
- package/lib/element/topLevelAssertion/axiom.js +9 -9
- package/lib/element/topLevelAssertion/conjecture.js +5 -5
- package/lib/element/topLevelAssertion/lemma.js +5 -5
- package/lib/element/topLevelAssertion/theorem.js +5 -5
- package/lib/element/topLevelMetaAssertion/metaLemma.js +5 -5
- package/lib/element/topLevelMetaAssertion/metatheorem.js +5 -5
- package/lib/utilities/customGrammar.js +5 -5
- package/lib/utilities/nominal.js +3 -3
- package/package.json +3 -3
- package/src/action/verify.js +1 -1
- package/src/context/release.js +1 -1
- package/src/element/combinator.js +3 -4
- package/src/element/conclusion.js +4 -5
- package/src/element/declaration/combinator.js +3 -4
- package/src/element/declaration/complexType.js +16 -20
- package/src/element/declaration/constructor.js +12 -15
- package/src/element/declaration/metavariable.js +12 -15
- package/src/element/declaration/simpleType.js +13 -16
- package/src/element/declaration/typePrefix.js +10 -12
- package/src/element/declaration/variable.js +10 -12
- package/src/element/deduction.js +4 -5
- package/src/element/hypothesis.js +3 -4
- package/src/element/proofAssertion/premise.js +6 -7
- package/src/element/proofAssertion/step.js +4 -5
- package/src/element/proofAssertion/supposition.js +10 -13
- package/src/element/rule.js +3 -4
- package/src/element/topLevelAssertion/axiom.js +8 -10
- package/src/element/topLevelAssertion/conjecture.js +3 -4
- package/src/element/topLevelAssertion/lemma.js +5 -6
- package/src/element/topLevelAssertion/theorem.js +3 -4
- package/src/element/topLevelMetaAssertion/metaLemma.js +3 -4
- package/src/element/topLevelMetaAssertion/metatheorem.js +3 -4
- package/src/utilities/customGrammar.js +1 -1
- package/src/utilities/nominal.js +1 -1
|
@@ -253,21 +253,21 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
253
253
|
key: "verifyType",
|
|
254
254
|
value: function verifyType() {
|
|
255
255
|
var typeVerifies = false;
|
|
256
|
-
var
|
|
257
|
-
context.trace("Verifying the '".concat(typeString, "' complex type...")
|
|
256
|
+
var context = this.getContext(), typeString = this.type.getString();
|
|
257
|
+
context.trace("Verifying the '".concat(typeString, "' complex type..."));
|
|
258
258
|
var typeName = this.type.getName(), includeRelease = true, includeDependencies = false, typePresent = context.isTypePresentByTypeName(typeName, includeRelease, includeDependencies);
|
|
259
259
|
if (typePresent) {
|
|
260
|
-
context.trace("The '".concat(typeString, "' type is already present.")
|
|
260
|
+
context.trace("The '".concat(typeString, "' type is already present."));
|
|
261
261
|
} else {
|
|
262
262
|
var prefixedTypeName = typeName, typePresent1 = context.isTypePresentByPrefixedTypeName(prefixedTypeName);
|
|
263
263
|
if (typePresent1) {
|
|
264
|
-
context.trace("The '".concat(typeString, "' type is already present.")
|
|
264
|
+
context.trace("The '".concat(typeString, "' type is already present."));
|
|
265
265
|
} else {
|
|
266
266
|
typeVerifies = true;
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
if (typeVerifies) {
|
|
270
|
-
context.trace("...verified the '".concat(typeString, "' complex type.")
|
|
270
|
+
context.trace("...verified the '".concat(typeString, "' complex type."));
|
|
271
271
|
}
|
|
272
272
|
return typeVerifies;
|
|
273
273
|
}
|
|
@@ -276,11 +276,11 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
276
276
|
key: "verifySuperType",
|
|
277
277
|
value: function verifySuperType(superType) {
|
|
278
278
|
var superTypeVerifies = false;
|
|
279
|
-
var
|
|
280
|
-
context.trace("Verifying the '".concat(superTypeString, "' super-type...")
|
|
279
|
+
var context = this.getContext(), superTypeString = superType.getString();
|
|
280
|
+
context.trace("Verifying the '".concat(superTypeString, "' super-type..."));
|
|
281
281
|
var nominalTypeName = superType.getNominalTypeName(), typeName = nominalTypeName, typeComparesToTypeName = this.type.compareTypeName(typeName);
|
|
282
282
|
if (typeComparesToTypeName) {
|
|
283
|
-
context.trace("The super-type's name compares to the ".concat(typeName, "' complex type's name.")
|
|
283
|
+
context.trace("The super-type's name compares to the ".concat(typeName, "' complex type's name."));
|
|
284
284
|
} else {
|
|
285
285
|
var oldSuperType = superType;
|
|
286
286
|
superType = context.findTypeByNominalTypeName(nominalTypeName);
|
|
@@ -292,7 +292,7 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
if (superTypeVerifies) {
|
|
295
|
-
context.debug("...verified the '".concat(superTypeString, "' super-type.")
|
|
295
|
+
context.debug("...verified the '".concat(superTypeString, "' super-type."));
|
|
296
296
|
}
|
|
297
297
|
return superTypeVerifies;
|
|
298
298
|
}
|
|
@@ -302,12 +302,12 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
302
302
|
value: function verifySuperTypes() {
|
|
303
303
|
var _this = this;
|
|
304
304
|
var superTypesVerify;
|
|
305
|
-
var
|
|
306
|
-
context.trace("Verifying the '".concat(typeString, "' complex type's super-types...")
|
|
305
|
+
var context = this.getContext(), typeString = this.type.getString();
|
|
306
|
+
context.trace("Verifying the '".concat(typeString, "' complex type's super-types..."));
|
|
307
307
|
var typeBasic = this.type.isBasic();
|
|
308
308
|
if (typeBasic) {
|
|
309
309
|
superTypesVerify = true;
|
|
310
|
-
context.trace("The '".concat(typeString, "' complex type is basic.")
|
|
310
|
+
context.trace("The '".concat(typeString, "' complex type is basic."));
|
|
311
311
|
} else {
|
|
312
312
|
var superTypes = this.type.getSuperTypes();
|
|
313
313
|
superTypesVerify = superTypes.every(function(superType) {
|
|
@@ -318,7 +318,7 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
318
318
|
});
|
|
319
319
|
}
|
|
320
320
|
if (superTypesVerify) {
|
|
321
|
-
context.debug("...verified the '".concat(typeString, "' complex type's super-types.")
|
|
321
|
+
context.debug("...verified the '".concat(typeString, "' complex type's super-types."));
|
|
322
322
|
}
|
|
323
323
|
return superTypesVerify;
|
|
324
324
|
}
|
|
@@ -327,8 +327,8 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
327
327
|
key: "verifyProperty",
|
|
328
328
|
value: function verifyProperty(property, properties) {
|
|
329
329
|
var propertyVerifies = false;
|
|
330
|
-
var
|
|
331
|
-
context.trace("Verifying the '".concat(propertyString, "' property...")
|
|
330
|
+
var context = this.getContext(), propertyString = property.getString();
|
|
331
|
+
context.trace("Verifying the '".concat(propertyString, "' property..."));
|
|
332
332
|
var propertyNameVerifies = this.verifyPropertyName(property, properties);
|
|
333
333
|
if (propertyNameVerifies) {
|
|
334
334
|
var propertyNominalTypeNameVerifies = this.verifyPropertyNominalTypeName(property, properties);
|
|
@@ -337,7 +337,7 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
337
337
|
}
|
|
338
338
|
}
|
|
339
339
|
if (propertyVerifies) {
|
|
340
|
-
context.debug("...verified the '".concat(propertyString, "' property.")
|
|
340
|
+
context.debug("...verified the '".concat(propertyString, "' property."));
|
|
341
341
|
}
|
|
342
342
|
return propertyVerifies;
|
|
343
343
|
}
|
|
@@ -468,4 +468,4 @@ var _default = (0, _elements.define)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
|
|
|
468
468
|
return ComplexTypeDeclaration;
|
|
469
469
|
}(_declaration.default), _define_property(_ComplexTypeDeclaration, "name", "ComplexTypeDeclaration"), _ComplexTypeDeclaration));
|
|
470
470
|
|
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbXBsZXhUeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRGVjbGFyYXRpb24gZnJvbSBcIi4uL2RlY2xhcmF0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQ29tcGxleFR5cGVEZWNsYXJhdGlvbiBleHRlbmRzIERlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCBwcmVmaXhlZCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucHJlZml4ZWQgPSBwcmVmaXhlZDtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGlzUHJlZml4ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZml4ZWQ7XG4gIH1cblxuICB2ZXJpZnlUeXBlKCkge1xuICAgIGxldCB0eXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIGNvbXBsZXggdHlwZS4uLmAsIG5vZGUpO1xuXG4gICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSxcbiAgICAgICAgICBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSwgaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByZWZpeGVkVHlwZU5hbWUgPSB0eXBlTmFtZSwgLy8vXG4gICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5UHJlZml4ZWRUeXBlTmFtZShwcmVmaXhlZFR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgY29tcGxleCB0eXBlLmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlTdXBlclR5cGUoc3VwZXJUeXBlKSB7XG4gICAgbGV0IHN1cGVyVHlwZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHN1cGVyVHlwZVN0cmluZyA9IHN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZS4uLmAsIG5vZGUpO1xuXG4gICAgY29uc3Qgbm9taW5hbFR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgIHR5cGVOYW1lID0gbm9taW5hbFR5cGVOYW1lLCAvLy9cbiAgICAgICAgICB0eXBlQ29tcGFyZXNUb1R5cGVOYW1lID0gdGhpcy50eXBlLmNvbXBhcmVUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICBpZiAodHlwZUNvbXBhcmVzVG9UeXBlTmFtZSkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlIHN1cGVyLXR5cGUncyBuYW1lIGNvbXBhcmVzIHRvIHRoZSAke3R5cGVOYW1lfScgY29tcGxleCB0eXBlJ3MgbmFtZS5gLCBub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb2xkU3VwZXJUeXBlID0gc3VwZXJUeXBlO1xuXG4gICAgICBzdXBlclR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgY29uc3Qgc3VwZXJUeXBlUHJlc2VudCA9IChzdXBlclR5cGUgIT09IG51bGwpO1xuXG4gICAgICBpZiAoc3VwZXJUeXBlUHJlc2VudCkge1xuICAgICAgICBjb25zdCBuZXdTdXBlclR5cGUgPSBzdXBlclR5cGU7IC8vL1xuXG4gICAgICAgIHRoaXMudHlwZS5yZXBsYWNlU3VwZXJUeXBlKG9sZFN1cGVyVHlwZSwgbmV3U3VwZXJUeXBlKTtcblxuICAgICAgICBzdXBlclR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN1cGVyVHlwZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZS5gLCBub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXJUeXBlVmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlTdXBlclR5cGVzKCkge1xuICAgIGxldCBzdXBlclR5cGVzVmVyaWZ5O1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfScgY29tcGxleCB0eXBlJ3Mgc3VwZXItdHlwZXMuLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IHR5cGVCYXNpYyA9IHRoaXMudHlwZS5pc0Jhc2ljKCk7XG5cbiAgICBpZiAodHlwZUJhc2ljKSB7XG4gICAgICBzdXBlclR5cGVzVmVyaWZ5ID0gdHJ1ZTtcblxuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyBjb21wbGV4IHR5cGUgaXMgYmFzaWMuYCwgbm9kZSlcbiAgICB9IGVsc2UgIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZXMgPSB0aGlzLnR5cGUuZ2V0U3VwZXJUeXBlcygpO1xuXG4gICAgICBzdXBlclR5cGVzVmVyaWZ5ID0gc3VwZXJUeXBlcy5ldmVyeSgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlTdXBlclR5cGUoc3VwZXJUeXBlKTtcblxuICAgICAgICBpZiAoc3VwZXJUeXBlVmVyaWZpZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHN1cGVyVHlwZXNWZXJpZnkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgY29tcGxleCB0eXBlJ3Mgc3VwZXItdHlwZXMuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZXNWZXJpZnk7XG4gIH1cblxuICB2ZXJpZnlQcm9wZXJ0eShwcm9wZXJ0eSwgcHJvcGVydGllcykge1xuICAgIGxldCBwcm9wZXJ0eVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkuLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IHByb3BlcnR5TmFtZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlQcm9wZXJ0eU5hbWUocHJvcGVydHksIHByb3BlcnRpZXMpO1xuXG4gICAgaWYgKHByb3BlcnR5TmFtZVZlcmlmaWVzKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5vbWluYWxUeXBlTmFtZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlQcm9wZXJ0eU5vbWluYWxUeXBlTmFtZShwcm9wZXJ0eSwgcHJvcGVydGllcyk7XG5cbiAgICAgIGlmIChwcm9wZXJ0eU5vbWluYWxUeXBlTmFtZVZlcmlmaWVzKSB7XG4gICAgICAgIHByb3BlcnR5VmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0eVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eS5gLCBub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcGVydHlWZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeVByb3BlcnRpZXMoKSB7XG4gICAgbGV0IHByb3BlcnRpZXNWZXJpZnk7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVTdHJpbmd9JyBjb21wbGV4IHR5cGUncyBwcm9wZXJ0aWVzLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCBpbmNsdWRlU3VwZXJUeXBlcyA9IGZhbHNlLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSB0aGlzLnR5cGUuZ2V0UHJvcGVydGllcyhpbmNsdWRlU3VwZXJUeXBlcyk7XG5cbiAgICBwcm9wZXJ0aWVzVmVyaWZ5ID0gcHJvcGVydGllcy5ldmVyeSgocHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IHByb3BlcnR5VmVyaWZpZXMgPSB0aGlzLnZlcmlmeVByb3BlcnR5KHByb3BlcnR5LCBwcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKHByb3BlcnR5VmVyaWZpZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocHJvcGVydGllc1ZlcmlmeSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyBjb21wbGV4IHR5cGUncyBwcm9wZXJ0aWVzLmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0aWVzVmVyaWZ5O1xuICB9XG5cbiAgdmVyaWZ5UHJvcGVydHlOYW1lKHByb3BlcnR5LCBwcm9wZXJ0aWVzKSB7XG4gICAgbGV0IHByb3BlcnR5TmFtZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkncyBuYW1lLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eS5nZXROYW1lKCksXG4gICAgICAgICAgY291bnQgPSBwcm9wZXJ0aWVzLnJlZHVjZSgoY291bnQsIHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eUNvbXBhcmVzVG9Qcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eS5jb21wYXJlUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eUNvbXBhcmVzVG9Qcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvdW50O1xuICAgICAgICAgIH0sIDApO1xuXG4gICAgaWYgKGNvdW50ID4gMSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkgYXBwZWFycyBtb3JlIHRoYW4gb25jZS5gLCBub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlcyA9IHRoaXMudHlwZS5nZXRTdXBlclR5cGVzKCksXG4gICAgICAgICAgICBzdXBlclR5cGUgPSBzdXBlclR5cGVzLmZpbmQoKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzdXBlclR5cGVQcm9wZXJ0aWVzID0gc3VwZXJUeXBlLmdldFByb3BlcnRpZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgc3VwZXJUeXBlUHJvcGVydHlDb21wYXJlc1RvUHJvcGVydHlOYW1lID0gc3VwZXJUeXBlUHJvcGVydGllcy5zb21lKChzdXBlclR5cGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3BlcnR5Q29tcGFyZXNUb1Byb3BlcnR5TmFtZSA9IHN1cGVyVHlwZVByb3BlcnR5LmNvbXBhcmVQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICAgIGlmIChzdXBlclR5cGVQcm9wZXJ0eUNvbXBhcmVzVG9Qcm9wZXJ0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgaWYgKHN1cGVyVHlwZVByb3BlcnR5Q29tcGFyZXNUb1Byb3BlcnR5TmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgICBpZiAoc3VwZXJUeXBlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZVN0cmluZyA9IHN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZSBoYXMgdGhlIHNhbWUgcHJvcGVydHkuYCwgbm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wZXJ0eU5hbWVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnR5TmFtZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSdzIG5hbWUuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5TmFtZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5UHJvcGVydHlOb21pbmFsVHlwZU5hbWUocHJvcGVydHkpIHtcbiAgICBsZXQgcHJvcGVydHlOb21pbmFsVHlwZU5hbWVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9wZXJ0eVN0cmluZyA9IHByb3BlcnR5LmdldFN0cmluZygpLFxuICAgICAgICAgIG5vbWluYWxUeXBlTmFtZSA9IHByb3BlcnR5LmdldE5vbWluYWxUeXBlTmFtZSgpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5J3MgJyR7bm9taW5hbFR5cGVOYW1lfScgbm9taW5hbCB0eXBlIG5hbWUuLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IHR5cGVDb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lID0gdGhpcy50eXBlLmNvbXBhcmVOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgIGlmICh0eXBlQ29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSkge1xuICAgICAgcHJvcGVydHlOb21pbmFsVHlwZU5hbWVWZXJpZmllcyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVQcmVzZW50ID0gY29udGV4dC5pc1R5cGVQcmVzZW50QnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICAgIHByb3BlcnR5Tm9taW5hbFR5cGVOYW1lVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0eU5vbWluYWxUeXBlTmFtZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllcyB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSdzICcke25vbWluYWxUeXBlTmFtZX0nIG5vbWluYWwgdHlwZSBuYW1lLmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0eU5vbWluYWxUeXBlTmFtZVZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbXBsZXhUeXBlRGVjbGFyYXRpb25TdHJpbmd9JyBjb21wbGV4IHR5cGUgZGVjbGFyYXRpb24uLi5gLCBub2RlKTtcblxuICAgIGlmICh0aGlzLnByZWZpeGVkKSB7XG4gICAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgcHJlZml4ZWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5VHlwZSgpO1xuXG4gICAgICBpZiAodHlwZVZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZXNWZXJpZnkgPSB0aGlzLnZlcmlmeVN1cGVyVHlwZXMoKTtcblxuICAgICAgICBpZiAoc3VwZXJUeXBlc1ZlcmlmeSkge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXNWZXJpZnkgPSB0aGlzLnZlcmlmeVByb3BlcnRpZXMoKTtcblxuICAgICAgICAgIGlmIChwcm9wZXJ0aWVzVmVyaWZ5KSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlUHJlZml4ID0gY29udGV4dC5nZXRUeXBlUHJlZml4KCk7XG5cbiAgICAgICAgICAgIGlmICh0eXBlUHJlZml4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHR5cGVQcmVmaXhOYW1lID0gdHlwZVByZWZpeC5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgICAgIHByZWZpeE5hbWUgPSB0eXBlUHJlZml4TmFtZTsgIC8vL1xuXG4gICAgICAgICAgICAgIHRoaXMudHlwZS5zZXRQcmVmaXhOYW1lKHByZWZpeE5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250ZXh0LmFkZFR5cGUodGhpcy50eXBlKTtcblxuICAgICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbXBsZXhUeXBlRGVjbGFyYXRpb25TdHJpbmd9JyBjb21wbGV4IHR5cGUgZGVjbGFyYXRpb24uYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbXBsZXhUeXBlRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkNvbXBsZXhUeXBlRGVjbGFyYXRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsInR5cGUiLCJwcmVmaXhlZCIsImdldFR5cGUiLCJpc1ByZWZpeGVkIiwidmVyaWZ5VHlwZSIsInR5cGVWZXJpZmllcyIsImdldE5vZGUiLCJnZXRDb250ZXh0IiwidHlwZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidHlwZU5hbWUiLCJnZXROYW1lIiwiaW5jbHVkZVJlbGVhc2UiLCJpbmNsdWRlRGVwZW5kZW5jaWVzIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsInByZWZpeGVkVHlwZU5hbWUiLCJpc1R5cGVQcmVzZW50QnlQcmVmaXhlZFR5cGVOYW1lIiwidmVyaWZ5U3VwZXJUeXBlIiwic3VwZXJUeXBlIiwic3VwZXJUeXBlVmVyaWZpZXMiLCJzdXBlclR5cGVTdHJpbmciLCJub21pbmFsVHlwZU5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJ0eXBlQ29tcGFyZXNUb1R5cGVOYW1lIiwiY29tcGFyZVR5cGVOYW1lIiwib2xkU3VwZXJUeXBlIiwiZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZSIsInN1cGVyVHlwZVByZXNlbnQiLCJuZXdTdXBlclR5cGUiLCJyZXBsYWNlU3VwZXJUeXBlIiwiZGVidWciLCJ2ZXJpZnlTdXBlclR5cGVzIiwic3VwZXJUeXBlc1ZlcmlmeSIsInR5cGVCYXNpYyIsImlzQmFzaWMiLCJzdXBlclR5cGVzIiwiZ2V0U3VwZXJUeXBlcyIsImV2ZXJ5IiwidmVyaWZ5UHJvcGVydHkiLCJwcm9wZXJ0eSIsInByb3BlcnRpZXMiLCJwcm9wZXJ0eVZlcmlmaWVzIiwicHJvcGVydHlTdHJpbmciLCJwcm9wZXJ0eU5hbWVWZXJpZmllcyIsInZlcmlmeVByb3BlcnR5TmFtZSIsInByb3BlcnR5Tm9taW5hbFR5cGVOYW1lVmVyaWZpZXMiLCJ2ZXJpZnlQcm9wZXJ0eU5vbWluYWxUeXBlTmFtZSIsInZlcmlmeVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzVmVyaWZ5IiwiaW5jbHVkZVN1cGVyVHlwZXMiLCJnZXRQcm9wZXJ0aWVzIiwicHJvcGVydHlOYW1lIiwiY291bnQiLCJyZWR1Y2UiLCJwcm9wZXJ0eUNvbXBhcmVzVG9Qcm9wZXJ0eU5hbWUiLCJjb21wYXJlUHJvcGVydHlOYW1lIiwiZmluZCIsInN1cGVyVHlwZVByb3BlcnRpZXMiLCJzdXBlclR5cGVQcm9wZXJ0eUNvbXBhcmVzVG9Qcm9wZXJ0eU5hbWUiLCJzb21lIiwic3VwZXJUeXBlUHJvcGVydHkiLCJ0eXBlQ29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSIsImNvbXBhcmVOb21pbmFsVHlwZU5hbWUiLCJpc1R5cGVQcmVzZW50QnlOb21pbmFsVHlwZU5hbWUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25TdHJpbmciLCJ0eXBlUHJlZml4IiwidHlwZVByZWZpeE5hbWUiLCJwcmVmaXhOYW1lIiwiZ2V0VHlwZVByZWZpeCIsInNldFByZWZpeE5hbWUiLCJhZGRUeXBlIiwiRGVjbGFyYXRpb24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztrRUFKd0I7d0JBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
471
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbXBsZXhUeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRGVjbGFyYXRpb24gZnJvbSBcIi4uL2RlY2xhcmF0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQ29tcGxleFR5cGVEZWNsYXJhdGlvbiBleHRlbmRzIERlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCB0eXBlLCBwcmVmaXhlZCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucHJlZml4ZWQgPSBwcmVmaXhlZDtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGlzUHJlZml4ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZml4ZWQ7XG4gIH1cblxuICB2ZXJpZnlUeXBlKCkge1xuICAgIGxldCB0eXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfScgY29tcGxleCB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgaW5jbHVkZVJlbGVhc2UgPSB0cnVlLFxuICAgICAgICAgIGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUsIGluY2x1ZGVSZWxlYXNlLCBpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgIGlmICh0eXBlUHJlc2VudCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJlZml4ZWRUeXBlTmFtZSA9IHR5cGVOYW1lLCAvLy9cbiAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gY29udGV4dC5pc1R5cGVQcmVzZW50QnlQcmVmaXhlZFR5cGVOYW1lKHByZWZpeGVkVHlwZU5hbWUpO1xuXG4gICAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC50cmFjZShgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyBjb21wbGV4IHR5cGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeVN1cGVyVHlwZShzdXBlclR5cGUpIHtcbiAgICBsZXQgc3VwZXJUeXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzdXBlclR5cGVTdHJpbmcgPSBzdXBlclR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUuLi5gKTtcblxuICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICB0eXBlTmFtZSA9IG5vbWluYWxUeXBlTmFtZSwgLy8vXG4gICAgICAgICAgdHlwZUNvbXBhcmVzVG9UeXBlTmFtZSA9IHRoaXMudHlwZS5jb21wYXJlVHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgaWYgKHR5cGVDb21wYXJlc1RvVHlwZU5hbWUpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSBzdXBlci10eXBlJ3MgbmFtZSBjb21wYXJlcyB0byB0aGUgJHt0eXBlTmFtZX0nIGNvbXBsZXggdHlwZSdzIG5hbWUuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9sZFN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcblxuICAgICAgc3VwZXJUeXBlID0gY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgIGNvbnN0IHN1cGVyVHlwZVByZXNlbnQgPSAoc3VwZXJUeXBlICE9PSBudWxsKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZVByZXNlbnQpIHtcbiAgICAgICAgY29uc3QgbmV3U3VwZXJUeXBlID0gc3VwZXJUeXBlOyAvLy9cblxuICAgICAgICB0aGlzLnR5cGUucmVwbGFjZVN1cGVyVHlwZShvbGRTdXBlclR5cGUsIG5ld1N1cGVyVHlwZSk7XG5cbiAgICAgICAgc3VwZXJUeXBlVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdXBlclR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5U3VwZXJUeXBlcygpIHtcbiAgICBsZXQgc3VwZXJUeXBlc1ZlcmlmeTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfScgY29tcGxleCB0eXBlJ3Mgc3VwZXItdHlwZXMuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCYXNpYyA9IHRoaXMudHlwZS5pc0Jhc2ljKCk7XG5cbiAgICBpZiAodHlwZUJhc2ljKSB7XG4gICAgICBzdXBlclR5cGVzVmVyaWZ5ID0gdHJ1ZTtcblxuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyBjb21wbGV4IHR5cGUgaXMgYmFzaWMuYClcbiAgICB9IGVsc2UgIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZXMgPSB0aGlzLnR5cGUuZ2V0U3VwZXJUeXBlcygpO1xuXG4gICAgICBzdXBlclR5cGVzVmVyaWZ5ID0gc3VwZXJUeXBlcy5ldmVyeSgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlTdXBlclR5cGUoc3VwZXJUeXBlKTtcblxuICAgICAgICBpZiAoc3VwZXJUeXBlVmVyaWZpZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHN1cGVyVHlwZXNWZXJpZnkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgY29tcGxleCB0eXBlJ3Mgc3VwZXItdHlwZXMuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZXNWZXJpZnk7XG4gIH1cblxuICB2ZXJpZnlQcm9wZXJ0eShwcm9wZXJ0eSwgcHJvcGVydGllcykge1xuICAgIGxldCBwcm9wZXJ0eVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eS4uLmApO1xuXG4gICAgY29uc3QgcHJvcGVydHlOYW1lVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVByb3BlcnR5TmFtZShwcm9wZXJ0eSwgcHJvcGVydGllcyk7XG5cbiAgICBpZiAocHJvcGVydHlOYW1lVmVyaWZpZXMpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5Tm9taW5hbFR5cGVOYW1lVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVByb3BlcnR5Tm9taW5hbFR5cGVOYW1lKHByb3BlcnR5LCBwcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKHByb3BlcnR5Tm9taW5hbFR5cGVOYW1lVmVyaWZpZXMpIHtcbiAgICAgICAgcHJvcGVydHlWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnR5VmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5LmApO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0eVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5UHJvcGVydGllcygpIHtcbiAgICBsZXQgcHJvcGVydGllc1ZlcmlmeTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIGNvbXBsZXggdHlwZSdzIHByb3BlcnRpZXMuLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IGluY2x1ZGVTdXBlclR5cGVzID0gZmFsc2UsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHRoaXMudHlwZS5nZXRQcm9wZXJ0aWVzKGluY2x1ZGVTdXBlclR5cGVzKTtcblxuICAgIHByb3BlcnRpZXNWZXJpZnkgPSBwcm9wZXJ0aWVzLmV2ZXJ5KChwcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydHlWZXJpZmllcyA9IHRoaXMudmVyaWZ5UHJvcGVydHkocHJvcGVydHksIHByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAocHJvcGVydHlWZXJpZmllcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChwcm9wZXJ0aWVzVmVyaWZ5KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ30nIGNvbXBsZXggdHlwZSdzIHByb3BlcnRpZXMuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnRpZXNWZXJpZnk7XG4gIH1cblxuICB2ZXJpZnlQcm9wZXJ0eU5hbWUocHJvcGVydHksIHByb3BlcnRpZXMpIHtcbiAgICBsZXQgcHJvcGVydHlOYW1lVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSdzIG5hbWUuLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5LmdldE5hbWUoKSxcbiAgICAgICAgICBjb3VudCA9IHByb3BlcnRpZXMucmVkdWNlKChjb3VudCwgcHJvcGVydHkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5Q29tcGFyZXNUb1Byb3BlcnR5TmFtZSA9IHByb3BlcnR5LmNvbXBhcmVQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKTtcblxuICAgICAgICAgICAgaWYgKHByb3BlcnR5Q29tcGFyZXNUb1Byb3BlcnR5TmFtZSkge1xuICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgICAgICAgfSwgMCk7XG5cbiAgICBpZiAoY291bnQgPiAxKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eSBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlLmAsIG5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdXBlclR5cGVzID0gdGhpcy50eXBlLmdldFN1cGVyVHlwZXMoKSxcbiAgICAgICAgICAgIHN1cGVyVHlwZSA9IHN1cGVyVHlwZXMuZmluZCgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3BlcnRpZXMgPSBzdXBlclR5cGUuZ2V0UHJvcGVydGllcygpLFxuICAgICAgICAgICAgICAgICAgICBzdXBlclR5cGVQcm9wZXJ0eUNvbXBhcmVzVG9Qcm9wZXJ0eU5hbWUgPSBzdXBlclR5cGVQcm9wZXJ0aWVzLnNvbWUoKHN1cGVyVHlwZVByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VwZXJUeXBlUHJvcGVydHlDb21wYXJlc1RvUHJvcGVydHlOYW1lID0gc3VwZXJUeXBlUHJvcGVydHkuY29tcGFyZVByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHN1cGVyVHlwZVByb3BlcnR5Q29tcGFyZXNUb1Byb3BlcnR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBpZiAoc3VwZXJUeXBlUHJvcGVydHlDb21wYXJlc1RvUHJvcGVydHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICAgIGlmIChzdXBlclR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlU3RyaW5nID0gc3VwZXJUeXBlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHtzdXBlclR5cGVTdHJpbmd9JyBzdXBlci10eXBlIGhhcyB0aGUgc2FtZSBwcm9wZXJ0eS5gLCBub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BlcnR5TmFtZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcGVydHlOYW1lVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5J3MgbmFtZS5gLCBub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcGVydHlOYW1lVmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlQcm9wZXJ0eU5vbWluYWxUeXBlTmFtZShwcm9wZXJ0eSkge1xuICAgIGxldCBwcm9wZXJ0eU5vbWluYWxUeXBlTmFtZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbm9taW5hbFR5cGVOYW1lID0gcHJvcGVydHkuZ2V0Tm9taW5hbFR5cGVOYW1lKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkncyAnJHtub21pbmFsVHlwZU5hbWV9JyBub21pbmFsIHR5cGUgbmFtZS4uLmAsIG5vZGUpO1xuXG4gICAgY29uc3QgdHlwZUNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUgPSB0aGlzLnR5cGUuY29tcGFyZU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgaWYgKHR5cGVDb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lKSB7XG4gICAgICBwcm9wZXJ0eU5vbWluYWxUeXBlTmFtZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgICAgcHJvcGVydHlOb21pbmFsVHlwZU5hbWVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnR5Tm9taW5hbFR5cGVOYW1lVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVzIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5J3MgJyR7bm9taW5hbFR5cGVOYW1lfScgbm9taW5hbCB0eXBlIG5hbWUuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5Tm9taW5hbFR5cGVOYW1lVmVyaWZpZXM7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGNvbXBsZXhUeXBlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29tcGxleFR5cGVEZWNsYXJhdGlvblN0cmluZ30nIGNvbXBsZXggdHlwZSBkZWNsYXJhdGlvbi4uLmAsIG5vZGUpO1xuXG4gICAgaWYgKHRoaXMucHJlZml4ZWQpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVmaXhlZC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlUeXBlKCk7XG5cbiAgICAgIGlmICh0eXBlVmVyaWZpZXMpIHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlc1ZlcmlmeSA9IHRoaXMudmVyaWZ5U3VwZXJUeXBlcygpO1xuXG4gICAgICAgIGlmIChzdXBlclR5cGVzVmVyaWZ5KSB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydGllc1ZlcmlmeSA9IHRoaXMudmVyaWZ5UHJvcGVydGllcygpO1xuXG4gICAgICAgICAgaWYgKHByb3BlcnRpZXNWZXJpZnkpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVQcmVmaXggPSBjb250ZXh0LmdldFR5cGVQcmVmaXgoKTtcblxuICAgICAgICAgICAgaWYgKHR5cGVQcmVmaXggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgdHlwZVByZWZpeE5hbWUgPSB0eXBlUHJlZml4LmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4TmFtZSA9IHR5cGVQcmVmaXhOYW1lOyAgLy8vXG5cbiAgICAgICAgICAgICAgdGhpcy50eXBlLnNldFByZWZpeE5hbWUocHJlZml4TmFtZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRleHQuYWRkVHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tcGxleFR5cGVEZWNsYXJhdGlvblN0cmluZ30nIGNvbXBsZXggdHlwZSBkZWNsYXJhdGlvbi5gLCBub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29tcGxleFR5cGVEZWNsYXJhdGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQ29tcGxleFR5cGVEZWNsYXJhdGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwidHlwZSIsInByZWZpeGVkIiwiZ2V0VHlwZSIsImlzUHJlZml4ZWQiLCJ2ZXJpZnlUeXBlIiwidHlwZVZlcmlmaWVzIiwiZ2V0Q29udGV4dCIsInR5cGVTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsImluY2x1ZGVSZWxlYXNlIiwiaW5jbHVkZURlcGVuZGVuY2llcyIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lIiwiaXNUeXBlUHJlc2VudEJ5UHJlZml4ZWRUeXBlTmFtZSIsInZlcmlmeVN1cGVyVHlwZSIsInN1cGVyVHlwZSIsInN1cGVyVHlwZVZlcmlmaWVzIiwic3VwZXJUeXBlU3RyaW5nIiwibm9taW5hbFR5cGVOYW1lIiwiZ2V0Tm9taW5hbFR5cGVOYW1lIiwidHlwZUNvbXBhcmVzVG9UeXBlTmFtZSIsImNvbXBhcmVUeXBlTmFtZSIsIm9sZFN1cGVyVHlwZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJzdXBlclR5cGVQcmVzZW50IiwibmV3U3VwZXJUeXBlIiwicmVwbGFjZVN1cGVyVHlwZSIsImRlYnVnIiwidmVyaWZ5U3VwZXJUeXBlcyIsInN1cGVyVHlwZXNWZXJpZnkiLCJ0eXBlQmFzaWMiLCJpc0Jhc2ljIiwic3VwZXJUeXBlcyIsImdldFN1cGVyVHlwZXMiLCJldmVyeSIsInZlcmlmeVByb3BlcnR5IiwicHJvcGVydHkiLCJwcm9wZXJ0aWVzIiwicHJvcGVydHlWZXJpZmllcyIsInByb3BlcnR5U3RyaW5nIiwicHJvcGVydHlOYW1lVmVyaWZpZXMiLCJ2ZXJpZnlQcm9wZXJ0eU5hbWUiLCJwcm9wZXJ0eU5vbWluYWxUeXBlTmFtZVZlcmlmaWVzIiwidmVyaWZ5UHJvcGVydHlOb21pbmFsVHlwZU5hbWUiLCJ2ZXJpZnlQcm9wZXJ0aWVzIiwicHJvcGVydGllc1ZlcmlmeSIsImdldE5vZGUiLCJpbmNsdWRlU3VwZXJUeXBlcyIsImdldFByb3BlcnRpZXMiLCJwcm9wZXJ0eU5hbWUiLCJjb3VudCIsInJlZHVjZSIsInByb3BlcnR5Q29tcGFyZXNUb1Byb3BlcnR5TmFtZSIsImNvbXBhcmVQcm9wZXJ0eU5hbWUiLCJmaW5kIiwic3VwZXJUeXBlUHJvcGVydGllcyIsInN1cGVyVHlwZVByb3BlcnR5Q29tcGFyZXNUb1Byb3BlcnR5TmFtZSIsInNvbWUiLCJzdXBlclR5cGVQcm9wZXJ0eSIsInR5cGVDb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lIiwiY29tcGFyZU5vbWluYWxUeXBlTmFtZSIsImlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZSIsInZlcmlmeSIsInZlcmlmaWVzIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvblN0cmluZyIsInR5cGVQcmVmaXgiLCJ0eXBlUHJlZml4TmFtZSIsInByZWZpeE5hbWUiLCJnZXRUeXBlUHJlZml4Iiwic2V0UHJlZml4TmFtZSIsImFkZFR5cGUiLCJEZWNsYXJhdGlvbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O2tFQUp3Qjt3QkFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRXZCLFdBQWVBLElBQUFB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
|
|
@@ -247,10 +247,10 @@ var _default = (0, _elements.define)((_ConstructorDeclaration = /*#__PURE__*/ fu
|
|
|
247
247
|
key: "verify",
|
|
248
248
|
value: function verify() {
|
|
249
249
|
return _async_to_generator(function() {
|
|
250
|
-
var verifies,
|
|
250
|
+
var verifies, context, constructorDeclarationString, constructorTypeVerifies, constructorValidates;
|
|
251
251
|
return _ts_generator(this, function(_state) {
|
|
252
|
-
|
|
253
|
-
context.trace("Verifying the '".concat(constructorDeclarationString, "' constructor declaration...")
|
|
252
|
+
context = this.getContext(), constructorDeclarationString = this.getString(); ///
|
|
253
|
+
context.trace("Verifying the '".concat(constructorDeclarationString, "' constructor declaration..."));
|
|
254
254
|
constructorTypeVerifies = this.verifyConstructorType();
|
|
255
255
|
if (constructorTypeVerifies) {
|
|
256
256
|
constructorValidates = this.verifyConstructor();
|
|
@@ -260,7 +260,7 @@ var _default = (0, _elements.define)((_ConstructorDeclaration = /*#__PURE__*/ fu
|
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
262
|
if (verifies) {
|
|
263
|
-
context.debug("...verified the '".concat(constructorDeclarationString, "' constructor declaration.")
|
|
263
|
+
context.debug("...verified the '".concat(constructorDeclarationString, "' constructor declaration."));
|
|
264
264
|
}
|
|
265
265
|
return [
|
|
266
266
|
2,
|
|
@@ -274,14 +274,14 @@ var _default = (0, _elements.define)((_ConstructorDeclaration = /*#__PURE__*/ fu
|
|
|
274
274
|
key: "verifyConstructor",
|
|
275
275
|
value: function verifyConstructor() {
|
|
276
276
|
var constructorValidates = false;
|
|
277
|
-
var
|
|
278
|
-
context.trace("Verifying the '".concat(constructorString, "' constructor...")
|
|
277
|
+
var context = this.getContext(), constructorString = this.constructor.getString();
|
|
278
|
+
context.trace("Verifying the '".concat(constructorString, "' constructor..."));
|
|
279
279
|
var term = this.constructor.getTerm(), termNode = term.getNode(), termValidates = (0, _validate.validateTerm)(termNode, context);
|
|
280
280
|
if (termValidates) {
|
|
281
281
|
constructorValidates = true;
|
|
282
282
|
}
|
|
283
283
|
if (constructorValidates) {
|
|
284
|
-
context.debug("...verified the '".concat(constructorString, "' constructor.")
|
|
284
|
+
context.debug("...verified the '".concat(constructorString, "' constructor."));
|
|
285
285
|
}
|
|
286
286
|
return constructorValidates;
|
|
287
287
|
}
|
|
@@ -290,27 +290,27 @@ var _default = (0, _elements.define)((_ConstructorDeclaration = /*#__PURE__*/ fu
|
|
|
290
290
|
key: "verifyConstructorType",
|
|
291
291
|
value: function verifyConstructorType() {
|
|
292
292
|
var constructorTypeVerifies = false;
|
|
293
|
-
var
|
|
293
|
+
var context = this.getContext();
|
|
294
294
|
var type;
|
|
295
295
|
type = this.constructor.getType();
|
|
296
296
|
var typeString = type.getString();
|
|
297
|
-
context.trace("Verifying the '".concat(typeString, "' type...")
|
|
297
|
+
context.trace("Verifying the '".concat(typeString, "' type..."));
|
|
298
298
|
var nominalTypeName = type.getNominalTypeName();
|
|
299
299
|
type = context.findTypeByNominalTypeName(nominalTypeName);
|
|
300
300
|
var typePresent = type !== null;
|
|
301
301
|
if (!typePresent) {
|
|
302
|
-
context.debug("The '".concat(typeString, "' type is not present.")
|
|
302
|
+
context.debug("The '".concat(typeString, "' type is not present."));
|
|
303
303
|
} else {
|
|
304
304
|
var includeSupertypes = false, provisional = type.isProvisional(includeSupertypes), typeComparesToProvisional = type.compareProvisional(provisional);
|
|
305
305
|
if (!typeComparesToProvisional) {
|
|
306
|
-
provisional ? context.debug("The '".concat(typeString, "' type is present but not provisional.")
|
|
306
|
+
provisional ? context.debug("The '".concat(typeString, "' type is present but not provisional.")) : context.debug("The '".concat(typeString, "' type is present but provisional."));
|
|
307
307
|
} else {
|
|
308
308
|
this.constructor.setType(type);
|
|
309
309
|
constructorTypeVerifies = true;
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
if (constructorTypeVerifies) {
|
|
313
|
-
context.debug("...verified the '".concat(typeString, "' type.")
|
|
313
|
+
context.debug("...verified the '".concat(typeString, "' type."));
|
|
314
314
|
}
|
|
315
315
|
return constructorTypeVerifies;
|
|
316
316
|
}
|
|
@@ -319,4 +319,4 @@ var _default = (0, _elements.define)((_ConstructorDeclaration = /*#__PURE__*/ fu
|
|
|
319
319
|
return ConstructorDeclaration;
|
|
320
320
|
}(_declaration.default), _define_property(_ConstructorDeclaration, "name", "ConstructorDeclaration"), _ConstructorDeclaration));
|
|
321
321
|
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRGVjbGFyYXRpb24gZnJvbSBcIi4uL2RlY2xhcmF0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVUZXJtIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvdmFsaWRhdGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbnN0cnVjdG9yRGVjbGFyYXRpb24gZXh0ZW5kcyBEZWNsYXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgY29uc3RydWN0b3IpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy5jb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3I7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZ30nIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvclR5cGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5Q29uc3RydWN0b3JUeXBlKCk7XG5cbiAgICBpZiAoY29uc3RydWN0b3JUeXBlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdG9yVmFsaWRhdGVzID0gdGhpcy52ZXJpZnlDb25zdHJ1Y3RvcigpO1xuXG4gICAgICBpZiAoY29uc3RydWN0b3JWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5hZGRDb25zdHJ1Y3Rvcih0aGlzLmNvbnN0cnVjdG9yKTtcblxuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZ30nIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeUNvbnN0cnVjdG9yKCkge1xuICAgIGxldCBjb25zdHJ1Y3RvclZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yU3RyaW5nID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci4uLmApO1xuXG4gICAgY29uc3QgdGVybSA9IHRoaXMuY29uc3RydWN0b3IuZ2V0VGVybSgpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgICAgdGVybVZhbGlkYXRlcyA9IHZhbGlkYXRlVGVybSh0ZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVZhbGlkYXRlcykge1xuICAgICAgY29uc3RydWN0b3JWYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChjb25zdHJ1Y3RvclZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yVmFsaWRhdGVzO1xuICB9XG5cbiAgdmVyaWZ5Q29uc3RydWN0b3JUeXBlKCkge1xuICAgIGxldCBjb25zdHJ1Y3RvclR5cGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgbGV0IHR5cGU7XG5cbiAgICB0eXBlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXRUeXBlKCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHR5cGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCk7XG5cbiAgICB0eXBlID0gY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICBjb25zdCB0eXBlUHJlc2VudCA9ICh0eXBlICE9PSBudWxsKVxuXG4gICAgaWYgKCF0eXBlUHJlc2VudCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmNsdWRlU3VwZXJ0eXBlcyA9IGZhbHNlLFxuICAgICAgICAgICAgcHJvdmlzaW9uYWwgPSB0eXBlLmlzUHJvdmlzaW9uYWwoaW5jbHVkZVN1cGVydHlwZXMpLFxuICAgICAgICAgICAgdHlwZUNvbXBhcmVzVG9Qcm92aXNpb25hbCA9IHR5cGUuY29tcGFyZVByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgaWYgKCF0eXBlQ29tcGFyZXNUb1Byb3Zpc2lvbmFsKSB7XG4gICAgICAgIHByb3Zpc2lvbmFsID9cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgcHJlc2VudCBidXQgbm90IHByb3Zpc2lvbmFsLmApIDpcbiAgICAgICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBwcm92aXNpb25hbC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uc3RydWN0b3Iuc2V0VHlwZSh0eXBlKTtcblxuICAgICAgICBjb25zdHJ1Y3RvclR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbnN0cnVjdG9yVHlwZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yVHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnN0cnVjdG9yRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkNvbnN0cnVjdG9yRGVjbGFyYXRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImNvbnN0cnVjdG9yIiwiZ2V0Q29uc3RydWN0b3IiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmciLCJjb25zdHJ1Y3RvclR5cGVWZXJpZmllcyIsImNvbnN0cnVjdG9yVmFsaWRhdGVzIiwiZ2V0Q29udGV4dCIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZ5Q29uc3RydWN0b3JUeXBlIiwidmVyaWZ5Q29uc3RydWN0b3IiLCJhZGRDb25zdHJ1Y3RvciIsImRlYnVnIiwiY29uc3RydWN0b3JTdHJpbmciLCJ0ZXJtIiwiZ2V0VGVybSIsInRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInRlcm1WYWxpZGF0ZXMiLCJ2YWxpZGF0ZVRlcm0iLCJ0eXBlIiwiZ2V0VHlwZSIsInR5cGVTdHJpbmciLCJub21pbmFsVHlwZU5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJmaW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lIiwidHlwZVByZXNlbnQiLCJpbmNsdWRlU3VwZXJ0eXBlcyIsInByb3Zpc2lvbmFsIiwiaXNQcm92aXNpb25hbCIsInR5cGVDb21wYXJlc1RvUHJvdmlzaW9uYWwiLCJjb21wYXJlUHJvdmlzaW9uYWwiLCJzZXRUeXBlIiwiRGVjbGFyYXRpb24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQUE7OztrRUFMd0I7d0JBRUQ7d0JBQ007Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUU3QixXQUFlQSxJQUFBQSxnQkFBTSwyQ0FBQzs7YUFBTUMsdUJBQ2RDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFdBQVc7Z0NBRHBCSjs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLLFdBQVcsR0FBR0M7Ozs7O1lBR3JCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVztZQUN6Qjs7O1lBRU1DLEtBQUFBO21CQUFOLFNBQU1BOzt3QkFDQUMsVUFFRU4sU0FDQU8sOEJBSUFDLHlCQUdFQzs7d0JBUkZULFVBQVUsSUFBSSxDQUFDVSxVQUFVLElBQ3pCSCwrQkFBK0IsSUFBSSxDQUFDSSxTQUFTLElBQUksR0FBRzt3QkFFMURYLFFBQVFZLEtBQUssQ0FBQyxBQUFDLGtCQUE4QyxPQUE3QkwsOEJBQTZCO3dCQUV2REMsMEJBQTBCLElBQUksQ0FBQ0sscUJBQXFCO3dCQUUxRCxJQUFJTCx5QkFBeUI7NEJBQ3JCQyx1QkFBdUIsSUFBSSxDQUFDSyxpQkFBaUI7NEJBRW5ELElBQUlMLHNCQUFzQjtnQ0FDeEJULFFBQVFlLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVztnQ0FFdkNULFdBQVc7NEJBQ2I7d0JBQ0Y7d0JBRUEsSUFBSUEsVUFBVTs0QkFDWk4sUUFBUWdCLEtBQUssQ0FBQyxBQUFDLG9CQUFnRCxPQUE3QlQsOEJBQTZCO3dCQUNqRTt3QkFFQTs7NEJBQU9EOzs7Z0JBQ1Q7Ozs7WUFFQVEsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlMLHVCQUF1QjtnQkFFM0IsSUFBTVQsVUFBVSxJQUFJLENBQUNVLFVBQVUsSUFDekJPLG9CQUFvQixJQUFJLENBQUMsV0FBVyxDQUFDTixTQUFTO2dCQUVwRFgsUUFBUVksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCSyxtQkFBa0I7Z0JBRWxELElBQU1DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQ0MsT0FBTyxJQUMvQkMsV0FBV0YsS0FBS0csT0FBTyxJQUN2QkMsZ0JBQWdCQyxJQUFBQSxzQkFBWSxFQUFDSCxVQUFVcEI7Z0JBRTdDLElBQUlzQixlQUFlO29CQUNqQmIsdUJBQXVCO2dCQUN6QjtnQkFFQSxJQUFJQSxzQkFBc0I7b0JBQ3hCVCxRQUFRZ0IsS0FBSyxDQUFDLEFBQUMsb0JBQXFDLE9BQWxCQyxtQkFBa0I7Z0JBQ3REO2dCQUVBLE9BQU9SO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUwsMEJBQTBCO2dCQUU5QixJQUFNUixVQUFVLElBQUksQ0FBQ1UsVUFBVTtnQkFFL0IsSUFBSWM7Z0JBRUpBLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQ0MsT0FBTztnQkFFL0IsSUFBTUMsYUFBYUYsS0FBS2IsU0FBUztnQkFFakNYLFFBQVFZLEtBQUssQ0FBQyxBQUFDLGtCQUE0QixPQUFYYyxZQUFXO2dCQUUzQyxJQUFNQyxrQkFBa0JILEtBQUtJLGtCQUFrQjtnQkFFL0NKLE9BQU94QixRQUFRNkIseUJBQXlCLENBQUNGO2dCQUV6QyxJQUFNRyxjQUFlTixTQUFTO2dCQUU5QixJQUFJLENBQUNNLGFBQWE7b0JBQ2hCOUIsUUFBUWdCLEtBQUssQ0FBQyxBQUFDLFFBQWtCLE9BQVhVLFlBQVc7Z0JBQ25DLE9BQU87b0JBQ0wsSUFBTUssb0JBQW9CLE9BQ3BCQyxjQUFjUixLQUFLUyxhQUFhLENBQUNGLG9CQUNqQ0csNEJBQTRCVixLQUFLVyxrQkFBa0IsQ0FBQ0g7b0JBRTFELElBQUksQ0FBQ0UsMkJBQTJCO3dCQUM5QkYsY0FDRWhDLFFBQVFnQixLQUFLLENBQUMsQUFBQyxRQUFrQixPQUFYVSxZQUFXLDZDQUMvQjFCLFFBQVFnQixLQUFLLENBQUMsQUFBQyxRQUFrQixPQUFYVSxZQUFXO29CQUN2QyxPQUFPO3dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUNVLE9BQU8sQ0FBQ1o7d0JBRXpCaEIsMEJBQTBCO29CQUM1QjtnQkFDRjtnQkFFQSxJQUFJQSx5QkFBeUI7b0JBQzNCUixRQUFRZ0IsS0FBSyxDQUFDLEFBQUMsb0JBQThCLE9BQVhVLFlBQVc7Z0JBQy9DO2dCQUVBLE9BQU9sQjtZQUNUOzs7O0VBdkd5RDZCLG9CQUFXLEdBeUdwRSwwQ0FBT0MsUUFBTyJ9
|
|
@@ -246,20 +246,20 @@ var _default = (0, _elements.define)((_MetavariableDeclaration = /*#__PURE__*/ f
|
|
|
246
246
|
key: "verifyType",
|
|
247
247
|
value: function verifyType(type) {
|
|
248
248
|
var typeVerifies;
|
|
249
|
-
var
|
|
249
|
+
var context = this.getContext();
|
|
250
250
|
if (type === null) {
|
|
251
251
|
typeVerifies = true;
|
|
252
252
|
} else {
|
|
253
253
|
var typeString = type.getString();
|
|
254
|
-
context.trace("Verifying the '".concat(typeString, "' type...")
|
|
254
|
+
context.trace("Verifying the '".concat(typeString, "' type..."));
|
|
255
255
|
var nominalTypeName = type.getNominalTypeName(), typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
256
256
|
if (!typePresent) {
|
|
257
|
-
context.debug("The '".concat(typeString, "' type is not present.")
|
|
257
|
+
context.debug("The '".concat(typeString, "' type is not present."));
|
|
258
258
|
} else {
|
|
259
259
|
typeVerifies = true;
|
|
260
260
|
}
|
|
261
261
|
if (typeVerifies) {
|
|
262
|
-
context.debug("...verified the '".concat(typeString, "' type.")
|
|
262
|
+
context.debug("...verified the '".concat(typeString, "' type."));
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
265
|
return typeVerifies;
|
|
@@ -269,22 +269,22 @@ var _default = (0, _elements.define)((_MetavariableDeclaration = /*#__PURE__*/ f
|
|
|
269
269
|
key: "verifyMetavariable",
|
|
270
270
|
value: function verifyMetavariable(metavariable) {
|
|
271
271
|
var metavariableVerifies = false;
|
|
272
|
-
var
|
|
273
|
-
context.trace("Verifying the '".concat(metavariableString, "' metavariable...")
|
|
272
|
+
var context = this.getContext(), metavariableString = metavariable.getString();
|
|
273
|
+
context.trace("Verifying the '".concat(metavariableString, "' metavariable..."));
|
|
274
274
|
var metavariableNode = metavariable.getNode(), termNode = metavariableNode.getTermNode();
|
|
275
275
|
if (termNode !== null) {
|
|
276
|
-
context.debug("A term was found in the '".concat(metavariableString, "' metavariable when a type should have been present.")
|
|
276
|
+
context.debug("A term was found in the '".concat(metavariableString, "' metavariable when a type should have been present."));
|
|
277
277
|
} else {
|
|
278
278
|
var metavariableName = metavariable.getName(), metavariablePresent = context.isMetavariablePresentByMetavariableName(metavariableName);
|
|
279
279
|
if (metavariablePresent) {
|
|
280
|
-
context.debug("The '".concat(metavariableName, "' metavariable is already present.")
|
|
280
|
+
context.debug("The '".concat(metavariableName, "' metavariable is already present."));
|
|
281
281
|
} else {
|
|
282
282
|
var type = metavariable.getType(), typeVerifies = this.verifyType(type);
|
|
283
283
|
metavariableVerifies = typeVerifies; ///
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
if (metavariableVerifies) {
|
|
287
|
-
context.debug("...verified the '".concat(metavariableString, "' metavariable.")
|
|
287
|
+
context.debug("...verified the '".concat(metavariableString, "' metavariable."));
|
|
288
288
|
}
|
|
289
289
|
return metavariableVerifies;
|
|
290
290
|
}
|
|
@@ -293,17 +293,17 @@ var _default = (0, _elements.define)((_MetavariableDeclaration = /*#__PURE__*/ f
|
|
|
293
293
|
key: "verify",
|
|
294
294
|
value: function verify() {
|
|
295
295
|
return _async_to_generator(function() {
|
|
296
|
-
var verifies,
|
|
296
|
+
var verifies, context, metavariableDeclarationString, metavariableVerifies;
|
|
297
297
|
return _ts_generator(this, function(_state) {
|
|
298
|
-
|
|
299
|
-
context.trace("Verifying the '".concat(metavariableDeclarationString, "' metavariable declaration...")
|
|
298
|
+
context = this.getContext(), metavariableDeclarationString = this.getString(); ///
|
|
299
|
+
context.trace("Verifying the '".concat(metavariableDeclarationString, "' metavariable declaration..."));
|
|
300
300
|
metavariableVerifies = this.verifyMetavariable(this.metavariable);
|
|
301
301
|
if (metavariableVerifies) {
|
|
302
302
|
context.addMetavariable(this.metavariable);
|
|
303
303
|
verifies = true;
|
|
304
304
|
}
|
|
305
305
|
if (verifies) {
|
|
306
|
-
context.debug("...verified the '".concat(metavariableDeclarationString, "' metavariable declaration.")
|
|
306
|
+
context.debug("...verified the '".concat(metavariableDeclarationString, "' metavariable declaration."));
|
|
307
307
|
}
|
|
308
308
|
return [
|
|
309
309
|
2,
|
|
@@ -317,4 +317,4 @@ var _default = (0, _elements.define)((_MetavariableDeclaration = /*#__PURE__*/ f
|
|
|
317
317
|
return MetavariableDeclaration;
|
|
318
318
|
}(_declaration.default), _define_property(_MetavariableDeclaration, "name", "MetavariableDeclaration"), _MetavariableDeclaration));
|
|
319
319
|
|
|
320
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL21ldGF2YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuLi9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIGV4dGVuZHMgRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIG1ldGF2YXJpYWJsZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGU7XG4gIH1cblxuICB2ZXJpZnlUeXBlKHR5cGUpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIHR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlLi4uYCk7XG5cbiAgICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHR5cGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCksXG4gICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBtZXRhdmFyaWFibGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZS5nZXROb2RlKCksIC8vL1xuICAgICAgICAgIHRlcm1Ob2RlID0gbWV0YXZhcmlhYmxlTm9kZS5nZXRUZXJtTm9kZSgpO1xuXG4gICAgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBBIHRlcm0gd2FzIGZvdW5kIGluIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUgd2hlbiBhIHR5cGUgc2hvdWxkIGhhdmUgYmVlbiBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlLmdldE5hbWUoKSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke21ldGF2YXJpYWJsZU5hbWV9JyBtZXRhdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IG1ldGF2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIHR5cGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5VHlwZSh0eXBlKTtcblxuICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllcyA9IHR5cGVWZXJpZmllczsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZXM7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgbWV0YXZhcmlhYmxlIGRlY2xhcmF0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5TWV0YXZhcmlhYmxlKHRoaXMubWV0YXZhcmlhYmxlKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5hZGRNZXRhdmFyaWFibGUodGhpcy5tZXRhdmFyaWFibGUpO1xuXG4gICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk1ldGF2YXJpYWJsZURlY2xhcmF0aW9uXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YXZhcmlhYmxlIiwidmVyaWZ5VHlwZSIsInR5cGUiLCJ0eXBlVmVyaWZpZXMiLCJnZXRDb250ZXh0IiwidHlwZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibm9taW5hbFR5cGVOYW1lIiwiZ2V0Tm9taW5hbFR5cGVOYW1lIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlOb21pbmFsVHlwZU5hbWUiLCJkZWJ1ZyIsInZlcmlmeU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVzIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibWV0YXZhcmlhYmxlTm9kZSIsImdldE5vZGUiLCJ0ZXJtTm9kZSIsImdldFRlcm1Ob2RlIiwibWV0YXZhcmlhYmxlTmFtZSIsImdldE5hbWUiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lIiwiZ2V0VHlwZSIsInZlcmlmeSIsInZlcmlmaWVzIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmciLCJhZGRNZXRhdmFyaWFibGUiLCJEZWNsYXJhdGlv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
|
|
@@ -253,21 +253,21 @@ var _default = (0, _elements.define)((_SimpleTypeDeclaration = /*#__PURE__*/ fun
|
|
|
253
253
|
key: "verifyType",
|
|
254
254
|
value: function verifyType() {
|
|
255
255
|
var typeVerifies = false;
|
|
256
|
-
var
|
|
257
|
-
context.trace("Verifying the '".concat(typeString, "' simple type...")
|
|
256
|
+
var context = this.getContext(), typeString = this.type.getString();
|
|
257
|
+
context.trace("Verifying the '".concat(typeString, "' simple type..."));
|
|
258
258
|
var typeName = this.type.getName(), includeRelease = true, includeDependencies = false, typePresent = context.isTypePresentByTypeName(typeName, includeRelease, includeDependencies);
|
|
259
259
|
if (typePresent) {
|
|
260
|
-
context.trace("The '".concat(typeString, "' type is already present.")
|
|
260
|
+
context.trace("The '".concat(typeString, "' type is already present."));
|
|
261
261
|
} else {
|
|
262
262
|
var prefixedTypeName = typeName, typePresent1 = context.isTypePresentByPrefixedTypeName(prefixedTypeName);
|
|
263
263
|
if (typePresent1) {
|
|
264
|
-
context.trace("The '".concat(typeString, "' type is already present.")
|
|
264
|
+
context.trace("The '".concat(typeString, "' type is already present."));
|
|
265
265
|
} else {
|
|
266
266
|
typeVerifies = true;
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
if (typeVerifies) {
|
|
270
|
-
context.trace("...verified the '".concat(typeString, "' simple type.")
|
|
270
|
+
context.trace("...verified the '".concat(typeString, "' simple type."));
|
|
271
271
|
}
|
|
272
272
|
return typeVerifies;
|
|
273
273
|
}
|
|
@@ -276,11 +276,11 @@ var _default = (0, _elements.define)((_SimpleTypeDeclaration = /*#__PURE__*/ fun
|
|
|
276
276
|
key: "verifySuperType",
|
|
277
277
|
value: function verifySuperType(superType) {
|
|
278
278
|
var superTypeVerifies = false;
|
|
279
|
-
var
|
|
280
|
-
context.trace("Verifying the '".concat(superTypeString, "' super-type...")
|
|
279
|
+
var context = this.getContext(), superTypeString = superType.getString();
|
|
280
|
+
context.trace("Verifying the '".concat(superTypeString, "' super-type..."));
|
|
281
281
|
var nominalTypeName = superType.getNominalTypeName(), typeName = nominalTypeName, typeComparesToTypeName = this.type.compareTypeName(typeName);
|
|
282
282
|
if (typeComparesToTypeName) {
|
|
283
|
-
context.trace("The super-type's name compares to the ".concat(typeName, "' simple type's name.")
|
|
283
|
+
context.trace("The super-type's name compares to the ".concat(typeName, "' simple type's name."));
|
|
284
284
|
} else {
|
|
285
285
|
var oldSuperType = superType;
|
|
286
286
|
superType = context.findTypeByNominalTypeName(nominalTypeName);
|
|
@@ -292,7 +292,7 @@ var _default = (0, _elements.define)((_SimpleTypeDeclaration = /*#__PURE__*/ fun
|
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
if (superTypeVerifies) {
|
|
295
|
-
context.debug("...verified the '".concat(superTypeString, "' super-type.")
|
|
295
|
+
context.debug("...verified the '".concat(superTypeString, "' super-type."));
|
|
296
296
|
}
|
|
297
297
|
return superTypeVerifies;
|
|
298
298
|
}
|
|
@@ -302,12 +302,12 @@ var _default = (0, _elements.define)((_SimpleTypeDeclaration = /*#__PURE__*/ fun
|
|
|
302
302
|
value: function verifySuperTypes() {
|
|
303
303
|
var _this = this;
|
|
304
304
|
var superTypesVerify;
|
|
305
|
-
var
|
|
306
|
-
context.trace("Verifying the '".concat(typeString, "' simple type's super-types...")
|
|
305
|
+
var context = this.getContext(), typeString = this.type.getString();
|
|
306
|
+
context.trace("Verifying the '".concat(typeString, "' simple type's super-types..."));
|
|
307
307
|
var typeBasic = this.type.isBasic();
|
|
308
308
|
if (typeBasic) {
|
|
309
309
|
superTypesVerify = true;
|
|
310
|
-
context.trace("The '".concat(typeString, "' simple type is basic.")
|
|
310
|
+
context.trace("The '".concat(typeString, "' simple type is basic."));
|
|
311
311
|
} else {
|
|
312
312
|
var superTypes = this.type.getSuperTypes();
|
|
313
313
|
superTypesVerify = superTypes.every(function(superType) {
|
|
@@ -318,7 +318,7 @@ var _default = (0, _elements.define)((_SimpleTypeDeclaration = /*#__PURE__*/ fun
|
|
|
318
318
|
});
|
|
319
319
|
}
|
|
320
320
|
if (superTypesVerify) {
|
|
321
|
-
context.debug("...verified the '".concat(typeString, "' simple type's super-types.")
|
|
321
|
+
context.debug("...verified the '".concat(typeString, "' simple type's super-types."));
|
|
322
322
|
}
|
|
323
323
|
return superTypesVerify;
|
|
324
324
|
}
|
|
@@ -365,4 +365,4 @@ var _default = (0, _elements.define)((_SimpleTypeDeclaration = /*#__PURE__*/ fun
|
|
|
365
365
|
return SimpleTypeDeclaration;
|
|
366
366
|
}(_declaration.default), _define_property(_SimpleTypeDeclaration, "name", "SimpleTypeDeclaration"), _SimpleTypeDeclaration));
|
|
367
367
|
|
|
368
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL3NpbXBsZVR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBEZWNsYXJhdGlvbiBmcm9tIFwiLi4vZGVjbGFyYXRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTaW1wbGVUeXBlRGVjbGFyYXRpb24gZXh0ZW5kcyBEZWNsYXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgdHlwZSwgcHJlZml4ZWQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnByZWZpeGVkID0gcHJlZml4ZWQ7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBpc1ByZWZpeGVkKCkge1xuICAgIHJldHVybiB0aGlzLnByZWZpeGVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZSgpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVTdHJpbmd9JyBzaW1wbGUgdHlwZS4uLmAsIG5vZGUpO1xuXG4gICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSxcbiAgICAgICAgICBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSwgaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByZWZpeGVkVHlwZU5hbWUgPSB0eXBlTmFtZSwgLy8vXG4gICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5UHJlZml4ZWRUeXBlTmFtZShwcmVmaXhlZFR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgc2ltcGxlIHR5cGUuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeVN1cGVyVHlwZShzdXBlclR5cGUpIHtcbiAgICBsZXQgc3VwZXJUeXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgc3VwZXJUeXBlU3RyaW5nID0gc3VwZXJUeXBlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdXBlclR5cGVTdHJpbmd9JyBzdXBlci10eXBlLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCBub21pbmFsVHlwZU5hbWUgPSBzdXBlclR5cGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCksXG4gICAgICAgICAgdHlwZU5hbWUgPSBub21pbmFsVHlwZU5hbWUsIC8vL1xuICAgICAgICAgIHR5cGVDb21wYXJlc1RvVHlwZU5hbWUgPSB0aGlzLnR5cGUuY29tcGFyZVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgIGlmICh0eXBlQ29tcGFyZXNUb1R5cGVOYW1lKSB7XG4gICAgICBjb250ZXh0LnRyYWNlKGBUaGUgc3VwZXItdHlwZSdzIG5hbWUgY29tcGFyZXMgdG8gdGhlICR7dHlwZU5hbWV9JyBzaW1wbGUgdHlwZSdzIG5hbWUuYCwgbm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9sZFN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcblxuICAgICAgc3VwZXJUeXBlID0gY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgIGNvbnN0IHN1cGVyVHlwZVByZXNlbnQgPSAoc3VwZXJUeXBlICE9PSBudWxsKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZVByZXNlbnQpIHtcbiAgICAgICAgY29uc3QgbmV3U3VwZXJUeXBlID0gc3VwZXJUeXBlOyAvLy9cblxuICAgICAgICB0aGlzLnR5cGUucmVwbGFjZVN1cGVyVHlwZShvbGRTdXBlclR5cGUsIG5ld1N1cGVyVHlwZSk7XG5cbiAgICAgICAgc3VwZXJUeXBlVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdXBlclR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5U3VwZXJUeXBlcygpIHtcbiAgICBsZXQgc3VwZXJUeXBlc1ZlcmlmeTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHNpbXBsZSB0eXBlJ3Mgc3VwZXItdHlwZXMuLi5gLCBub2RlKTtcblxuICAgIGNvbnN0IHR5cGVCYXNpYyA9IHRoaXMudHlwZS5pc0Jhc2ljKCk7XG5cbiAgICBpZiAodHlwZUJhc2ljKSB7XG4gICAgICBzdXBlclR5cGVzVmVyaWZ5ID0gdHJ1ZTtcblxuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyBzaW1wbGUgdHlwZSBpcyBiYXNpYy5gLCBub2RlKVxuICAgIH0gZWxzZSAge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlcyA9IHRoaXMudHlwZS5nZXRTdXBlclR5cGVzKCk7XG5cbiAgICAgIHN1cGVyVHlwZXNWZXJpZnkgPSBzdXBlclR5cGVzLmV2ZXJ5KChzdXBlclR5cGUpID0+IHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVN1cGVyVHlwZShzdXBlclR5cGUpO1xuXG4gICAgICAgIGlmIChzdXBlclR5cGVWZXJpZmllcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc3VwZXJUeXBlc1ZlcmlmeSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyBzaW1wbGUgdHlwZSdzIHN1cGVyLXR5cGVzLmAsIG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlclR5cGVzVmVyaWZ5O1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzaW1wbGVUeXBlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NpbXBsZVR5cGVEZWNsYXJhdGlvblN0cmluZ30nIHNpbXBsZSB0eXBlIGRlY2xhcmF0aW9uLi4uYCwgbm9kZSk7XG5cbiAgICBpZiAodGhpcy5wcmVmaXhlZCkge1xuICAgICAgY29uc3QgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIHByZWZpeGVkLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVR5cGUoKTtcblxuICAgICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVzVmVyaWZ5ID0gdGhpcy52ZXJpZnlTdXBlclR5cGVzKCk7XG5cbiAgICAgICAgaWYgKHN1cGVyVHlwZXNWZXJpZnkpIHtcbiAgICAgICAgICBjb25zdCB0eXBlUHJlZml4ID0gY29udGV4dC5nZXRUeXBlUHJlZml4KCk7XG5cbiAgICAgICAgICBpZiAodHlwZVByZWZpeCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgdHlwZVByZWZpeE5hbWUgPSB0eXBlUHJlZml4LmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgcHJlZml4TmFtZSA9IHR5cGVQcmVmaXhOYW1lOyAgLy8vXG5cbiAgICAgICAgICAgIHRoaXMudHlwZS5zZXRQcmVmaXhOYW1lKHByZWZpeE5hbWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuYWRkVHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c2ltcGxlVHlwZURlY2xhcmF0aW9uU3RyaW5nfScgc2ltcGxlIHR5cGUgZGVjbGFyYXRpb24uYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNpbXBsZVR5cGVEZWNsYXJhdGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiU2ltcGxlVHlwZURlY2xhcmF0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJ0eXBlIiwicHJlZml4ZWQiLCJnZXRUeXBlIiwiaXNQcmVmaXhlZCIsInZlcmlmeVR5cGUiLCJ0eXBlVmVyaWZpZXMiLCJnZXROb2RlIiwiZ2V0Q29udGV4dCIsInR5cGVTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsImluY2x1ZGVSZWxlYXNlIiwiaW5jbHVkZURlcGVuZGVuY2llcyIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lIiwiaXNUeXBlUHJlc2VudEJ5UHJlZml4ZWRUeXBlTmFtZSIsInZlcmlmeVN1cGVyVHlwZSIsInN1cGVyVHlwZSIsInN1cGVyVHlwZVZlcmlmaWVzIiwic3VwZXJUeXBlU3RyaW5nIiwibm9taW5hbFR5cGVOYW1lIiwiZ2V0Tm9taW5hbFR5cGVOYW1lIiwidHlwZUNvbXBhcmVzVG9UeXBlTmFtZSIsImNvbXBhcmVUeXBlTmFtZSIsIm9sZFN1cGVyVHlwZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJzdXBlclR5cGVQcmVzZW50IiwibmV3U3VwZXJUeXBlIiwicmVwbGFjZVN1cGVyVHlwZSIsImRlYnVnIiwidmVyaWZ5U3VwZXJUeXBlcyIsInN1cGVyVHlwZXNWZXJpZnkiLCJ0eXBlQmFzaWMiLCJpc0Jhc2ljIiwic3VwZXJUeXBlcyIsImdldFN1cGVyVHlwZXMiLCJldmVyeSIsInZlcmlmeSIsInZlcmlmaWVzIiwic2ltcGxlVHlwZURlY2xhcmF0aW9uU3RyaW5nIiwidHlwZVByZWZpeCIsInR5cGVQcmVmaXhOYW1lIiwicHJlZml4TmFtZSIsImdldFR5cGVQcmVmaXgiLCJzZXRQcmVmaXhOYW1lIiwiYWRkVHlwZSIsIkRlY2xhcmF0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7a0VBSndCO3dCQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sMENBQUM7O2FBQU1DLHNCQUNkQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVE7Z0NBRHZCTDs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLQyxJQUFJLEdBQUdBO1FBQ1osTUFBS0MsUUFBUSxHQUFHQTs7Ozs7WUFHbEJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsUUFBUTtZQUN0Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQyxlQUFlO2dCQUVuQixJQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQlQsVUFBVSxJ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
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL3NpbXBsZVR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBEZWNsYXJhdGlvbiBmcm9tIFwiLi4vZGVjbGFyYXRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBTaW1wbGVUeXBlRGVjbGFyYXRpb24gZXh0ZW5kcyBEZWNsYXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgdHlwZSwgcHJlZml4ZWQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnByZWZpeGVkID0gcHJlZml4ZWQ7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBpc1ByZWZpeGVkKCkge1xuICAgIHJldHVybiB0aGlzLnByZWZpeGVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZSgpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHNpbXBsZSB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgaW5jbHVkZVJlbGVhc2UgPSB0cnVlLFxuICAgICAgICAgIGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUsIGluY2x1ZGVSZWxlYXNlLCBpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgIGlmICh0eXBlUHJlc2VudCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJlZml4ZWRUeXBlTmFtZSA9IHR5cGVOYW1lLCAvLy9cbiAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gY29udGV4dC5pc1R5cGVQcmVzZW50QnlQcmVmaXhlZFR5cGVOYW1lKHByZWZpeGVkVHlwZU5hbWUpO1xuXG4gICAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC50cmFjZShgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyBzaW1wbGUgdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5U3VwZXJUeXBlKHN1cGVyVHlwZSkge1xuICAgIGxldCBzdXBlclR5cGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHN1cGVyVHlwZVN0cmluZyA9IHN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZS4uLmApO1xuXG4gICAgY29uc3Qgbm9taW5hbFR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgIHR5cGVOYW1lID0gbm9taW5hbFR5cGVOYW1lLCAvLy9cbiAgICAgICAgICB0eXBlQ29tcGFyZXNUb1R5cGVOYW1lID0gdGhpcy50eXBlLmNvbXBhcmVUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICBpZiAodHlwZUNvbXBhcmVzVG9UeXBlTmFtZSkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlIHN1cGVyLXR5cGUncyBuYW1lIGNvbXBhcmVzIHRvIHRoZSAke3R5cGVOYW1lfScgc2ltcGxlIHR5cGUncyBuYW1lLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvbGRTdXBlclR5cGUgPSBzdXBlclR5cGU7XG5cbiAgICAgIHN1cGVyVHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgICBjb25zdCBzdXBlclR5cGVQcmVzZW50ID0gKHN1cGVyVHlwZSAhPT0gbnVsbCk7XG5cbiAgICAgIGlmIChzdXBlclR5cGVQcmVzZW50KSB7XG4gICAgICAgIGNvbnN0IG5ld1N1cGVyVHlwZSA9IHN1cGVyVHlwZTsgLy8vXG5cbiAgICAgICAgdGhpcy50eXBlLnJlcGxhY2VTdXBlclR5cGUob2xkU3VwZXJUeXBlLCBuZXdTdXBlclR5cGUpO1xuXG4gICAgICAgIHN1cGVyVHlwZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3VwZXJUeXBlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdXBlclR5cGVTdHJpbmd9JyBzdXBlci10eXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlclR5cGVWZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeVN1cGVyVHlwZXMoKSB7XG4gICAgbGV0IHN1cGVyVHlwZXNWZXJpZnk7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHNpbXBsZSB0eXBlJ3Mgc3VwZXItdHlwZXMuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCYXNpYyA9IHRoaXMudHlwZS5pc0Jhc2ljKCk7XG5cbiAgICBpZiAodHlwZUJhc2ljKSB7XG4gICAgICBzdXBlclR5cGVzVmVyaWZ5ID0gdHJ1ZTtcblxuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyBzaW1wbGUgdHlwZSBpcyBiYXNpYy5gKVxuICAgIH0gZWxzZSAge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlcyA9IHRoaXMudHlwZS5nZXRTdXBlclR5cGVzKCk7XG5cbiAgICAgIHN1cGVyVHlwZXNWZXJpZnkgPSBzdXBlclR5cGVzLmV2ZXJ5KChzdXBlclR5cGUpID0+IHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVN1cGVyVHlwZShzdXBlclR5cGUpO1xuXG4gICAgICAgIGlmIChzdXBlclR5cGVWZXJpZmllcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc3VwZXJUeXBlc1ZlcmlmeSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyBzaW1wbGUgdHlwZSdzIHN1cGVyLXR5cGVzLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlclR5cGVzVmVyaWZ5O1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzaW1wbGVUeXBlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NpbXBsZVR5cGVEZWNsYXJhdGlvblN0cmluZ30nIHNpbXBsZSB0eXBlIGRlY2xhcmF0aW9uLi4uYCwgbm9kZSk7XG5cbiAgICBpZiAodGhpcy5wcmVmaXhlZCkge1xuICAgICAgY29uc3QgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIHByZWZpeGVkLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVR5cGUoKTtcblxuICAgICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVzVmVyaWZ5ID0gdGhpcy52ZXJpZnlTdXBlclR5cGVzKCk7XG5cbiAgICAgICAgaWYgKHN1cGVyVHlwZXNWZXJpZnkpIHtcbiAgICAgICAgICBjb25zdCB0eXBlUHJlZml4ID0gY29udGV4dC5nZXRUeXBlUHJlZml4KCk7XG5cbiAgICAgICAgICBpZiAodHlwZVByZWZpeCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgdHlwZVByZWZpeE5hbWUgPSB0eXBlUHJlZml4LmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgcHJlZml4TmFtZSA9IHR5cGVQcmVmaXhOYW1lOyAgLy8vXG5cbiAgICAgICAgICAgIHRoaXMudHlwZS5zZXRQcmVmaXhOYW1lKHByZWZpeE5hbWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuYWRkVHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c2ltcGxlVHlwZURlY2xhcmF0aW9uU3RyaW5nfScgc2ltcGxlIHR5cGUgZGVjbGFyYXRpb24uYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNpbXBsZVR5cGVEZWNsYXJhdGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiU2ltcGxlVHlwZURlY2xhcmF0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJ0eXBlIiwicHJlZml4ZWQiLCJnZXRUeXBlIiwiaXNQcmVmaXhlZCIsInZlcmlmeVR5cGUiLCJ0eXBlVmVyaWZpZXMiLCJnZXRDb250ZXh0IiwidHlwZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidHlwZU5hbWUiLCJnZXROYW1lIiwiaW5jbHVkZVJlbGVhc2UiLCJpbmNsdWRlRGVwZW5kZW5jaWVzIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsInByZWZpeGVkVHlwZU5hbWUiLCJpc1R5cGVQcmVzZW50QnlQcmVmaXhlZFR5cGVOYW1lIiwidmVyaWZ5U3VwZXJUeXBlIiwic3VwZXJUeXBlIiwic3VwZXJUeXBlVmVyaWZpZXMiLCJzdXBlclR5cGVTdHJpbmciLCJub21pbmFsVHlwZU5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJ0eXBlQ29tcGFyZXNUb1R5cGVOYW1lIiwiY29tcGFyZVR5cGVOYW1lIiwib2xkU3VwZXJUeXBlIiwiZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZSIsInN1cGVyVHlwZVByZXNlbnQiLCJuZXdTdXBlclR5cGUiLCJyZXBsYWNlU3VwZXJUeXBlIiwiZGVidWciLCJ2ZXJpZnlTdXBlclR5cGVzIiwic3VwZXJUeXBlc1ZlcmlmeSIsInR5cGVCYXNpYyIsImlzQmFzaWMiLCJzdXBlclR5cGVzIiwiZ2V0U3VwZXJUeXBlcyIsImV2ZXJ5IiwidmVyaWZ5IiwidmVyaWZpZXMiLCJzaW1wbGVUeXBlRGVjbGFyYXRpb25TdHJpbmciLCJ0eXBlUHJlZml4IiwidHlwZVByZWZpeE5hbWUiLCJwcmVmaXhOYW1lIiwiZ2V0Tm9kZSIsImdldFR5cGVQcmVmaXgiLCJzZXRQcmVmaXhOYW1lIiwiYWRkVHlwZSIsIkRlY2xhcmF0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7a0VBSndCO3dCQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sMENBQUM7O2FBQU1DLHNCQUNkQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVE7Z0NBRHZCTDs7Z0JBRXhCLGtCQUZ3QkE7WUFFbEJDO1lBQVNDO1lBQVFDOztRQUV2QixNQUFLQyxJQUFJLEdBQUdBO1FBQ1osTUFBS0MsUUFBUSxHQUFHQTs7Ozs7WUFHbEJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsUUFBUTtZQUN0Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQyxlQUFlO2dCQUVuQixJQUFNUixVQUFVLElBQUksQ0FBQ1MsVUFBVSxJQUN6QkMsYUFBYSxJQUFJLENBQUNQLElBQUksQ0FBQ1EsU0FBUztnQkFFdENYLFFBQVFZLEtBQUssQ0FBQyxBQUFDLGtCQUE0QixPQUFYRixZQUFXO2dCQUUzQyxJQUFNRyxXQUFXLElBQUksQ0FBQ1YsSUFBSSxDQUFDVyxPQUFPLElBQzVCQyxpQkFBaUIsTUFDakJDLHNCQUFzQixPQUN0QkMsY0FBY2pCLFFB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
|