occam-nominal 1.0.213 → 1.0.215

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.
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _declaration = /*#__PURE__*/ _interop_require_default(require("../declaration"));
12
+ const _elements = require("../../elements");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ const _default = (0, _elements.define)(class GeneratorDeclaration extends _declaration.default {
19
+ constructor(context, string, node, breakPoint, type, provisional, generator){
20
+ super(context, string, node, breakPoint);
21
+ this.type = type;
22
+ this.provisional = provisional;
23
+ this.generator = generator;
24
+ }
25
+ getType() {
26
+ return this.type;
27
+ }
28
+ isProvisional() {
29
+ return this.provisional;
30
+ }
31
+ getGenerator() {
32
+ return this.generator;
33
+ }
34
+ getGeneratorDeclarationNode() {
35
+ const node = this.getNode(), generatorDeclarationNode = node; ///
36
+ return generatorDeclarationNode;
37
+ }
38
+ async verify(context) {
39
+ let verifies = false;
40
+ await this.break(context);
41
+ const generatorDeclarationString = this.getString(); ///
42
+ context.trace(`Verifying the '${generatorDeclarationString}' generator declaration...`);
43
+ const typeVerified = this.verifyType(context);
44
+ if (typeVerified) {
45
+ const generatorValidates = this.validateGenerator(context);
46
+ if (generatorValidates) {
47
+ this.generator.setType(this.type);
48
+ context.addGenerator(this.generator);
49
+ verifies = true;
50
+ }
51
+ }
52
+ if (verifies) {
53
+ context.debug(`...verified the '${generatorDeclarationString}' generator declaration.`);
54
+ }
55
+ return verifies;
56
+ }
57
+ verifyType(context) {
58
+ let typeVerifies = false;
59
+ const generatorDeclarationString = this.getString(); ///
60
+ context.trace(`Verifying the '${generatorDeclarationString}' generator declaration's type...`);
61
+ const nominalTypeName = this.type.getNominalTypeName(), type = context.findTypeByNominalTypeName(nominalTypeName);
62
+ if (type !== null) {
63
+ const provisional = this.isProvisional(), typeComparesToProvisional = type.compareProvisional(provisional);
64
+ if (!typeComparesToProvisional) {
65
+ const typeString = this.type.getString();
66
+ provisional ? context.debug(`The '${typeString}' type is present but not provisional.`) : context.debug(`The '${typeString}' type is present but provisional.`);
67
+ } else {
68
+ this.type = type;
69
+ typeVerifies = true;
70
+ }
71
+ } else {
72
+ const typeString = this.type.getString();
73
+ context.debug(`The '${typeString}' type is not present.`);
74
+ }
75
+ if (typeVerifies) {
76
+ context.debug(`...verified the '${generatorDeclarationString}' generator declaration's type.`);
77
+ }
78
+ return typeVerifies;
79
+ }
80
+ validateGenerator(context) {
81
+ let generatorValidates;
82
+ const includeType = false, generatorString = this.generator.getString(includeType), generatorDeclarationString = this.getString(); ///
83
+ context.trace(`Validating the '${generatorDeclarationString}' generator declaration's '${generatorString}' generator...`);
84
+ generatorValidates = this.generator.validate(context);
85
+ if (generatorValidates) {
86
+ context.debug(`...validated the '${generatorDeclarationString}' generator declaration's '${generatorString}' generator.`);
87
+ }
88
+ return generatorValidates;
89
+ }
90
+ static name = "GeneratorDeclaration";
91
+ });
92
+
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL2dlbmVyYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuLi9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEdlbmVyYXRvckRlY2xhcmF0aW9uIGV4dGVuZHMgRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHByb3Zpc2lvbmFsLCBnZW5lcmF0b3IpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gICAgdGhpcy5nZW5lcmF0b3IgPSBnZW5lcmF0b3I7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBpc1Byb3Zpc2lvbmFsKCkge1xuICAgIHJldHVybiB0aGlzLnByb3Zpc2lvbmFsO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9yKCkge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRvcjtcbiAgfVxuXG4gIGdldEdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGF3YWl0IHRoaXMuYnJlYWsoY29udGV4dCk7XG5cbiAgICBjb25zdCBnZW5lcmF0b3JEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Z2VuZXJhdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBnZW5lcmF0b3IgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZShjb250ZXh0KTtcblxuICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGdlbmVyYXRvclZhbGlkYXRlcyA9IHRoaXMudmFsaWRhdGVHZW5lcmF0b3IoY29udGV4dCk7XG5cbiAgICAgIGlmIChnZW5lcmF0b3JWYWxpZGF0ZXMpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0b3Iuc2V0VHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICAgIGNvbnRleHQuYWRkR2VuZXJhdG9yKHRoaXMuZ2VuZXJhdG9yKTtcblxuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Z2VuZXJhdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBnZW5lcmF0b3IgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5VHlwZShjb250ZXh0KSB7XG4gICAgbGV0IHR5cGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9yRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2dlbmVyYXRvckRlY2xhcmF0aW9uU3RyaW5nfScgZ2VuZXJhdG9yIGRlY2xhcmF0aW9uJ3MgdHlwZS4uLmApO1xuXG4gICAgY29uc3Qgbm9taW5hbFR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcm92aXNpb25hbCA9IHRoaXMuaXNQcm92aXNpb25hbCgpLFxuICAgICAgICAgICAgdHlwZUNvbXBhcmVzVG9Qcm92aXNpb25hbCA9IHR5cGUuY29tcGFyZVByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgaWYgKCF0eXBlQ29tcGFyZXNUb1Byb3Zpc2lvbmFsKSB7XG4gICAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgcHJvdmlzaW9uYWwgP1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBub3QgcHJvdmlzaW9uYWwuYCkgOlxuICAgICAgICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIHByZXNlbnQgYnV0IHByb3Zpc2lvbmFsLmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgICAgICB0eXBlVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2dlbmVyYXRvckRlY2xhcmF0aW9uU3RyaW5nfScgZ2VuZXJhdG9yIGRlY2xhcmF0aW9uJ3MgdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgdmFsaWRhdGVHZW5lcmF0b3IoY29udGV4dCkge1xuICAgIGxldCBnZW5lcmF0b3JWYWxpZGF0ZXM7XG5cbiAgICBjb25zdCBpbmNsdWRlVHlwZSA9IGZhbHNlLFxuICAgICAgICAgIGdlbmVyYXRvclN0cmluZyA9IHRoaXMuZ2VuZXJhdG9yLmdldFN0cmluZyhpbmNsdWRlVHlwZSksXG4gICAgICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtnZW5lcmF0b3JEZWNsYXJhdGlvblN0cmluZ30nIGdlbmVyYXRvciBkZWNsYXJhdGlvbidzICcke2dlbmVyYXRvclN0cmluZ30nIGdlbmVyYXRvci4uLmApO1xuXG4gICAgZ2VuZXJhdG9yVmFsaWRhdGVzID0gdGhpcy5nZW5lcmF0b3IudmFsaWRhdGUoY29udGV4dCk7XG5cbiAgICBpZiAoZ2VuZXJhdG9yVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2dlbmVyYXRvckRlY2xhcmF0aW9uU3RyaW5nfScgZ2VuZXJhdG9yIGRlY2xhcmF0aW9uJ3MgJyR7Z2VuZXJhdG9yU3RyaW5nfScgZ2VuZXJhdG9yLmApO1xuICAgIH1cblxuICAgIHJldHVybiBnZW5lcmF0b3JWYWxpZGF0ZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiR2VuZXJhdG9yRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkdlbmVyYXRvckRlY2xhcmF0aW9uIiwiRGVjbGFyYXRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwicHJvdmlzaW9uYWwiLCJnZW5lcmF0b3IiLCJnZXRUeXBlIiwiaXNQcm92aXNpb25hbCIsImdldEdlbmVyYXRvciIsImdldEdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSIsImdldE5vZGUiLCJnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImJyZWFrIiwiZ2VuZXJhdG9yRGVjbGFyYXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInR5cGVWZXJpZmllZCIsInZlcmlmeVR5cGUiLCJnZW5lcmF0b3JWYWxpZGF0ZXMiLCJ2YWxpZGF0ZUdlbmVyYXRvciIsInNldFR5cGUiLCJhZGRHZW5lcmF0b3IiLCJkZWJ1ZyIsInR5cGVWZXJpZmllcyIsIm5vbWluYWxUeXBlTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJ0eXBlQ29tcGFyZXNUb1Byb3Zpc2lvbmFsIiwiY29tcGFyZVByb3Zpc2lvbmFsIiwidHlwZVN0cmluZyIsImluY2x1ZGVUeXBlIiwiZ2VuZXJhdG9yU3RyaW5nIiwidmFsaWRhdGUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztvRUFKd0I7MEJBRUQ7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDZCQUE2QkMsb0JBQVc7SUFDbEUsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxDQUFFO1FBQzNFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUksZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDSCxTQUFTO0lBQ3ZCO0lBRUFJLDhCQUE4QjtR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
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _elements = require("../elements");
13
+ const _instantiate = require("../process/instantiate");
14
+ const _element = require("../utilities/element");
15
+ const _unify = require("../process/unify");
16
+ const _validate = require("../process/validate");
17
+ const _json = require("../utilities/json");
18
+ const _context = require("../utilities/context");
19
+ const _breakPoint = require("../utilities/breakPoint");
20
+ const _default = (0, _elements.define)(class Generator extends _occamlanguages.Element {
21
+ constructor(context, string, node, breakPoint, term, type){
22
+ super(context, string, node, breakPoint);
23
+ this.term = term;
24
+ this.type = type;
25
+ }
26
+ getTerm() {
27
+ return this.term;
28
+ }
29
+ getType() {
30
+ return this.type;
31
+ }
32
+ getConclusionNode() {
33
+ const node = this.getNode(), generatorNode = node; ///
34
+ return generatorNode;
35
+ }
36
+ getString(includeType = true) {
37
+ let string;
38
+ if (includeType) {
39
+ const termString = this.term.getString(), typeString = this.type.getString();
40
+ string = `${termString}.${typeString}`;
41
+ } else {
42
+ string = super.getString();
43
+ }
44
+ return string;
45
+ }
46
+ setType(type) {
47
+ this.type = type;
48
+ }
49
+ validate(context) {
50
+ let validates = false;
51
+ const includeType = false, generatorString = this.getString(includeType);
52
+ context.trace(`Validating the '${generatorString}' generator...`);
53
+ (0, _context.attempt)((context)=>{
54
+ const termValidates = this.validateTerm(context);
55
+ if (termValidates) {
56
+ validates = true;
57
+ }
58
+ if (validates) {
59
+ this.commit(context);
60
+ }
61
+ }, context);
62
+ if (validates) {
63
+ context.debug(`...validated the '${generatorString}' generator.`);
64
+ }
65
+ return validates;
66
+ }
67
+ validateTerm(context) {
68
+ let termValidates = false;
69
+ const includeType = false, generatorString = this.getString(includeType);
70
+ context.trace(`Validating the '${generatorString}' generator's term...`);
71
+ const termValidatesAsGenerator = (0, _validate.validateTermAsGenerator)(this.term, context);
72
+ if (termValidatesAsGenerator) {
73
+ termValidates = true;
74
+ }
75
+ if (termValidates) {
76
+ context.debug(`...validated the '${generatorString}' generator's term.`);
77
+ }
78
+ return termValidates;
79
+ }
80
+ unifyTerm(term, context, validateForwards) {
81
+ let termUnifies = false;
82
+ const termString = term.getString(), includeType = false, generatorString = this.getString(includeType); ///
83
+ context.trace(`Unifying the '${termString}' term with the '${generatorString}' generator...`);
84
+ const generator = this, generatorContext = generator.getContext(), generalContext = generatorContext, specifiContext = context, termUnifiesWithGenerator = (0, _unify.unifyTermWithGenerator)(term, generator, generalContext, specifiContext);
85
+ if (termUnifiesWithGenerator) {
86
+ const provisional = this.type.isProvisional();
87
+ term.setType(this.type);
88
+ term.setProvisional(provisional);
89
+ const validatesForwards = validateForwards(term, context);
90
+ if (validatesForwards) {
91
+ termUnifies = true;
92
+ }
93
+ }
94
+ if (termUnifies) {
95
+ context.debug(`...unified the '${termString}' term with the '${generatorString}' generator.`);
96
+ }
97
+ return termUnifies;
98
+ }
99
+ toJSON() {
100
+ const context = this.getContext();
101
+ return (0, _context.serialise)((context)=>{
102
+ const includeType = false, typeJSON = (0, _json.typeToTypeJSON)(this.type), string = this.getString(includeType);
103
+ let breakPoint;
104
+ breakPoint = this.getBreakPoint();
105
+ const breakPointJSON = (0, _breakPoint.breakPointToBreakPointJSON)(breakPoint);
106
+ breakPoint = breakPointJSON; ///
107
+ const type = typeJSON, json = {
108
+ context,
109
+ string,
110
+ breakPoint,
111
+ type
112
+ };
113
+ return json;
114
+ }, context);
115
+ }
116
+ static name = "Generator";
117
+ static fromJSON(json, context) {
118
+ let generator;
119
+ (0, _context.instantiate)((context)=>{
120
+ (0, _context.unserialise)((json, context)=>{
121
+ const { string } = json, generatorNode = (0, _instantiate.instantiateGenerator)(string, context), node = generatorNode, breakPoint = (0, _breakPoint.breakPointFromJSON)(json), term = (0, _element.termFromGeneratorNode)(generatorNode, context), type = (0, _json.typeFromJSON)(json, context);
122
+ generator = new Generator(context, string, node, breakPoint, term, type);
123
+ }, json, context);
124
+ }, context);
125
+ return generator;
126
+ }
127
+ });
128
+
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2dlbmVyYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUdlbmVyYXRvciB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyB0ZXJtRnJvbUdlbmVyYXRvck5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhHZW5lcmF0b3IgfSBmcm9tIFwiLi4vcHJvY2Vzcy91bmlmeVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVUZXJtQXNHZW5lcmF0b3IgfSBmcm9tIFwiLi4vcHJvY2Vzcy92YWxpZGF0ZVwiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OLCB0eXBlVG9UeXBlSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuaW1wb3J0IHsgYXR0ZW1wdCwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEdlbmVyYXRvciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHR5cGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgZ2V0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0Q29uY2x1c2lvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGdlbmVyYXRvck5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yTm9kZTtcbiAgfVxuXG4gIGdldFN0cmluZyhpbmNsdWRlVHlwZSA9IHRydWUpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgaWYgKGluY2x1ZGVUeXBlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGhpcy50ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgc3RyaW5nID0gYCR7dGVybVN0cmluZ30uJHt0eXBlU3RyaW5nfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cmluZyA9IHN1cGVyLmdldFN0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzZXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgZ2VuZXJhdG9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoaW5jbHVkZVR5cGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7Z2VuZXJhdG9yU3RyaW5nfScgZ2VuZXJhdG9yLi4uYCk7XG5cbiAgICBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB0ZXJtVmFsaWRhdGVzID0gdGhpcy52YWxpZGF0ZVRlcm0oY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtVmFsaWRhdGVzKSB7XG4gICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2dlbmVyYXRvclN0cmluZ30nIGdlbmVyYXRvci5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVUZXJtKGNvbnRleHQpIHtcbiAgICBsZXQgdGVybVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBnZW5lcmF0b3JTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IncyB0ZXJtLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtVmFsaWRhdGVzQXNHZW5lcmF0b3IgPSB2YWxpZGF0ZVRlcm1Bc0dlbmVyYXRvcih0aGlzLnRlcm0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHRlcm1WYWxpZGF0ZXNBc0dlbmVyYXRvcikge1xuICAgICAgdGVybVZhbGlkYXRlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRlcm1WYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7Z2VuZXJhdG9yU3RyaW5nfScgZ2VuZXJhdG9yJ3MgdGVybS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVZhbGlkYXRlcztcbiAgfVxuXG4gIHVuaWZ5VGVybSh0ZXJtLCBjb250ZXh0LCB2YWxpZGF0ZUZvcndhcmRzKSB7XG4gICAgbGV0IHRlcm1VbmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBpbmNsdWRlVHlwZSA9IGZhbHNlLFxuICAgICAgICAgIGdlbmVyYXRvclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKGluY2x1ZGVUeXBlKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke2dlbmVyYXRvclN0cmluZ30nIGdlbmVyYXRvci4uLmApO1xuXG4gICAgY29uc3QgZ2VuZXJhdG9yID0gdGhpcywgLy8vXG4gICAgICAgICAgZ2VuZXJhdG9yQ29udGV4dCA9IGdlbmVyYXRvci5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBnZW5lcmF0b3JDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3BlY2lmaUNvbnRleHQgPSBjb250ZXh0LCAvLy9cbiAgICAgICAgICB0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3IgPSB1bmlmeVRlcm1XaXRoR2VuZXJhdG9yKHRlcm0sIGdlbmVyYXRvciwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmlDb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3IpIHtcbiAgICAgIGNvbnN0IHByb3Zpc2lvbmFsID0gdGhpcy50eXBlLmlzUHJvdmlzaW9uYWwoKTtcblxuICAgICAgdGVybS5zZXRUeXBlKHRoaXMudHlwZSk7XG5cbiAgICAgIHRlcm0uc2V0UHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpO1xuXG4gICAgICBjb25zdCB2YWxpZGF0ZXNGb3J3YXJkcyA9IHZhbGlkYXRlRm9yd2FyZHModGVybSwgY29udGV4dCk7XG5cbiAgICAgIGlmICh2YWxpZGF0ZXNGb3J3YXJkcykge1xuICAgICAgICB0ZXJtVW5pZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1VbmlmaWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgICB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCB0eXBlID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiR2VuZXJhdG9yXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgZ2VuZXJhdG9yO1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHVuc2VyaWFsaXNlKChqc29uLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgICBnZW5lcmF0b3JOb2RlID0gaW5zdGFudGlhdGVHZW5lcmF0b3Ioc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGdlbmVyYXRvck5vZGUsIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICB0ZXJtID0gdGVybUZyb21HZW5lcmF0b3JOb2RlKGdlbmVyYXRvck5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgICAgIGdlbmVyYXRvciA9IG5ldyBHZW5lcmF0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0ZXJtLCB0eXBlKTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiR2VuZXJhdG9yIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInRlcm0iLCJ0eXBlIiwiZ2V0VGVybSIsImdldFR5cGUiLCJnZXRDb25jbHVzaW9uTm9kZSIsImdldE5vZGUiLCJnZW5lcmF0b3JOb2RlIiwiZ2V0U3RyaW5nIiwiaW5jbHVkZVR5cGUiLCJ0ZXJtU3RyaW5nIiwidHlwZVN0cmluZyIsInNldFR5cGUiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlcyIsImdlbmVyYXRvclN0cmluZyIsInRyYWNlIiwiYXR0ZW1wdCIsInRlcm1WYWxpZGF0ZXMiLCJ2YWxpZGF0ZVRlcm0iLCJjb21taXQiLCJkZWJ1ZyIsInRlcm1WYWxpZGF0ZXNBc0dlbmVyYXRvciIsInZhbGlkYXRlVGVybUFzR2VuZXJhdG9yIiwidW5pZnlUZXJtIiwidmFsaWRhdGVGb3J3YXJkcyIsInRlcm1VbmlmaWVzIiwiZ2VuZXJhdG9yIiwiZ2VuZXJhdG9yQ29udGV4dCIsImdldENvbnRleHQiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmlDb250ZXh0IiwidGVybVVuaWZpZXNXaXRoR2VuZXJhdG9yIiwidW5pZnlUZXJtV2l0aEdlbmVyYXRvciIsInByb3Zpc2lvbmFsIiwiaXNQcm92aXNpb25hbCIsInNldFByb3Zpc2lvbmFsIiwidmFsaWRhdGVzRm9yd2FyZHMiLCJ0b0pTT04iLCJzZXJpYWxpc2UiLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlR2VuZXJhdG9yIiwiYnJlYWtQb2ludEZyb21KU09OIiwidGVybUZyb21HZW5lcmF0b3JOb2RlIiwidHlwZUZyb21KU09OIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQUE7OztnQ0FYd0I7MEJBRUQ7NkJBQ2M7eUJBQ0M7dUJBQ0M7MEJBQ0M7c0JBQ0s7eUJBQ2dCOzRCQUNFO01BRS9ELFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsSUFBSSxDQUFFO1FBQ3pELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxJQUFJLEdBQUdBO0lBQ2Q7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRixJQUFJO0lBQ2xCO0lBRUFHLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxvQkFBb0I7UUFDbEIs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
@@ -85,7 +85,7 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
85
85
  return established;
86
86
  }
87
87
  isCotype() {
88
- const propertiesLength = this.properties.length, cotype = propertiesLength > 0;
88
+ const properties = this.getProperties(), propertiesLength = properties.length, cotype = propertiesLength > 0;
89
89
  return cotype;
90
90
  }
91
91
  isPrefixed() {
@@ -241,4 +241,4 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
241
241
  }
242
242
  });
243
243
 
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVUeXBlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IG5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3R5cGVcIjtcbmltcG9ydCB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmltcG9ydCB7IHByb3BlcnRpZXNGcm9tSlNPTixcbiAgICAgICAgIHByZWZpeE5hbWVGcm9tSlNPTixcbiAgICAgICAgIHN1cGVyVHlwZXNGcm9tSlNPTixcbiAgICAgICAgIHByb3Zpc2lvbmFsRnJvbUpTT04sXG4gICAgICAgICBwcmVmaXhuYW1lVG9QcmV2aXhOYW1lSlNPTixcbiAgICAgICAgIHN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OLFxuICAgICAgICAgcHJvcGVydGllc1RvUHJvcGVydGllc0pTT04sXG4gICAgICAgICBwcm92aXNpb25hbFRvUHJvdmlzaW9uYWxKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgcHVzaCwgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVHlwZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIHByZWZpeE5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5wcmVmaXhOYW1lID0gcHJlZml4TmFtZTtcbiAgICB0aGlzLnN1cGVyVHlwZXMgPSBzdXBlclR5cGVzO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy5wcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0UHJlZml4TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmaXhOYW1lO1xuICB9XG5cbiAgZ2V0U3VwZXJUeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBlclR5cGVzO1xuICB9XG5cbiAgZ2V0VHlwZU5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHR5cGVOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHR5cGVOb2RlO1xuICB9XG5cbiAgZ2V0UHJvcGVydGllcyhpbmNsdWRlU3VwZXJUeXBlcyA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gW107XG5cbiAgICBwdXNoKHByb3BlcnRpZXMsIHRoaXMucHJvcGVydGllcyk7XG5cbiAgICBpZiAoaW5jbHVkZVN1cGVyVHlwZXMpIHtcbiAgICAgIHRoaXMuc3VwZXJUeXBlcy5mb3JFYWNoKChzdXBlclR5cGUpID0+IHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlUHJvcGVydGllcyA9IHN1cGVyVHlwZS5nZXRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgcHVzaChwcm9wZXJ0aWVzLCBzdXBlclR5cGVQcm9wZXJ0aWVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xuICB9XG5cbiAgaXNQcm92aXNpb25hbChpbmNsdWRlU3VwZXJUeXBlcyA9IHRydWUpIHtcbiAgICBsZXQgcHJvdmlzaW9uYWwgPSB0aGlzLnByb3Zpc2lvbmFsO1xuXG4gICAgaWYgKGluY2x1ZGVTdXBlclR5cGVzKSB7XG4gICAgICBpZiAoIXByb3Zpc2lvbmFsKSB7XG4gICAgICAgIHByb3Zpc2lvbmFsID0gdGhpcy5zdXBlclR5cGVzLnNvbWUoKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3Zpc2lvbmFsID0gc3VwZXJUeXBlLmlzUHJvdmlzaW9uYWwoKTtcblxuICAgICAgICAgIGlmIChzdXBlclR5cGVQcm92aXNpb25hbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBzZXROYW1lKG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgc2V0UHJlZml4TmFtZShwcmVmaXhOYW1lKSB7XG4gICAgdGhpcy5wcmVmaXhOYW1lID0gcHJlZml4TmFtZTtcbiAgfVxuXG4gIHNldFN1cGVyVHlwZXMoc3VwZXJUeXBlcykge1xuICAgIHRoaXMuc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXM7XG4gIH1cblxuICBzZXRQcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICB9XG5cbiAgc2V0UHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpIHtcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBpc0VzdGFibGlzaGVkKGluY2x1ZGVTdXBlclR5cGVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHByb3Zpc2lvbmFsID0gdGhpcy5pc1Byb3Zpc2lvbmFsKGluY2x1ZGVTdXBlclR5cGVzKSxcbiAgICAgICAgICBlc3RhYmxpc2hlZCA9ICFwcm92aXNpb25hbDtcblxuICAgIHJldHVybiBlc3RhYmxpc2hlZDtcbiAgfVxuXG4gIGlzQ290eXBlKCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXNMZW5ndGggPSB0aGlzLnByb3BlcnRpZXMubGVuZ3RoLFxuICAgICAgICAgIGNvdHlwZSA9IChwcm9wZXJ0aWVzTGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gY290eXBlO1xuICB9XG5cbiAgaXNQcmVmaXhlZCgpIHtcbiAgICBjb25zdCBwcmVmaXhlZCA9ICh0aGlzLnByZWZpeE5hbWUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHByZWZpeGVkO1xuICB9XG5cbiAgZ2V0UHJlZml4ZWROYW1lKCkge1xuICAgIGxldCBwcmVmaXhlZE5hbWUgPSBudWxsO1xuXG4gICAgY29uc3QgcHJlZml4ZWQgPSB0aGlzLmlzUHJlZml4ZWQoKTtcblxuICAgIGlmIChwcmVmaXhlZCkge1xuICAgICAgcHJlZml4ZWROYW1lID0gYCR7dGhpcy5wcmVmaXhOYW1lfSR7dGhpcy5uYW1lfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZWZpeGVkTmFtZTtcbiAgfVxuXG4gIGdldE5vbWluYWxUeXBlTmFtZSgpIHtcbiAgICBjb25zdCBwcmVmaXhlZCA9IHRoaXMuaXNQcmVmaXhlZCgpLFxuICAgICAgICAgIG5vbWluYWxUeXBlTmFtZSA9IHByZWZpeGVkID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5wcmVmaXhOYW1lfSR7dGhpcy5uYW1lfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWU7XG5cbiAgICByZXR1cm4gbm9taW5hbFR5cGVOYW1lO1xuICB9XG5cbiAgaXNCYXNpYygpIHtcbiAgICBsZXQgYmFzaWMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1cGVyVHlwZXNMZW5ndGggPSB0aGlzLnN1cGVyVHlwZXMubGVuZ3RoO1xuXG4gICAgaWYgKHN1cGVyVHlwZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0U3VwZXJUeXBlID0gZmlyc3QodGhpcy5zdXBlclR5cGVzKSxcbiAgICAgICAgICAgIHN1cGVyVHlwZSA9IGZpcnN0U3VwZXJUeXBlLCAvLy9cbiAgICAgICAgICAgIGJhc2VUeXBlID0gYmFzZVR5cGVGcm9tTm90aGluZygpO1xuXG4gICAgICBpZiAoc3VwZXJUeXBlID09PSBiYXNlVHlwZSkge1xuICAgICAgICBiYXNpYyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2ljO1xuICB9XG5cbiAgaXNSZWZpbmVkKCkge1xuICAgIGxldCByZWZpbmVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBlclR5cGVzTGVuZ3RoID0gdGhpcy5zdXBlclR5cGVzLmxlbmd0aDtcblxuICAgIGlmIChzdXBlclR5cGVzTGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdFN1cGVyVHlwZSA9IGZpcnN0KHRoaXMuc3VwZXJUeXBlcyksXG4gICAgICAgICAgICBzdXBlclR5cGUgPSBmaXJzdFN1cGVyVHlwZSwgLy8vXG4gICAgICAgICAgICBzdXBlclR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5hbWUoKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZU5hbWUgPT09IHRoaXMubmFtZSkge1xuICAgICAgICByZWZpbmVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVmaW5lZDtcbiAgfVxuXG4gIGlzRXF1YWxUbyh0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9ICh0aGlzID09PSB0eXBlKTtcblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNTdWJUeXBlT2YodHlwZSkge1xuICAgIGxldCBzdWJUeXBlT2Y7XG5cbiAgICBjb25zdCBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKTtcblxuICAgIGlmICh0aGlzID09PSBiYXNlVHlwZSkge1xuICAgICAgc3ViVHlwZU9mID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1YlR5cGVPZiA9IHRoaXMuc3VwZXJUeXBlcy5zb21lKChzdXBlclR5cGUpID0+IHsgLy8vXG4gICAgICAgIGlmIChzdXBlclR5cGUgPT09IHR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZVN1YlR5cGVPZlR5cGUgPSBzdXBlclR5cGUuaXNTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgICAgaWYgKHN1cGVyVHlwZVN1YlR5cGVPZlR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gc3ViVHlwZU9mO1xuICB9XG5cbiAgaXNTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3Qgc3ViVHlwZU9mID0gdHlwZS5pc1N1YlR5cGVPZih0aGlzKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHN1YlR5cGVPZjsgIC8vL1xuXG4gICAgcmV0dXJuIHN1cGVyVHlwZU9mO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1YlR5cGVPZiA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZik7XG5cbiAgICByZXR1cm4gZXF1YWxUb09yU3ViVHlwZU9mO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1cGVyVHlwZU9mID0gKGVxdWFsVG8gfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1cGVyVHlwZU9mO1xuICB9XG5cbiAgaXNFcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9TdWJUeXBlT3JTdXBlclR5cGVPZiA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZiB8fCBzdXBlclR5cGVPZik7XG5cbiAgICByZXR1cm4gZXF1YWxUb1N1YlR5cGVPclN1cGVyVHlwZU9mO1xuICB9XG5cbiAgY29tcGFyZVR5cGVOYW1lKHR5cGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZVR5cGVOYW1lID0gKHRoaXMubmFtZSA9PT0gdHlwZU5hbWUpLFxuICAgICAgICAgIGNvbXBhcmVzVG9UeXBlTmFtZSA9IG5hbWVUeXBlTmFtZTsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9UeXBlTmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVQcm92aXNpb25hbChwcm92aXNpb25hbCwgaW5jbHVkZVN1cGVydHlwZXMgPSB0cnVlKSB7XG4gICAgbGV0IGNvbXBhcmVzVG9Qcm92aXNpb25hbDtcblxuICAgIGNvbnN0IHByb3Zpc2lvbmFsQSA9IHByb3Zpc2lvbmFsOyAvLy9cblxuICAgIHByb3Zpc2lvbmFsID0gdGhpcy5pc1Byb3Zpc2lvbmFsKGluY2x1ZGVTdXBlcnR5cGVzKTtcblxuICAgIGNvbnN0IHByb3Zpc2lvbmFsQiA9IHByb3Zpc2lvbmFsOyAvLy9cblxuICAgIGNvbXBhcmVzVG9Qcm92aXNpb25hbCA9IChwcm92aXNpb25hbEEgPT09IHByb3Zpc2lvbmFsQik7XG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1Byb3Zpc2lvbmFsO1xuICB9XG5cbiAgY29tcGFyZU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgICBsZXQgY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgbmFtZU5vbWluYWxUeXBlTmFtZSA9ICh0aGlzLm5hbWUgPT09IG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICBpZiAobmFtZU5vbWluYWxUeXBlTmFtZSkge1xuICAgICAgY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByZWZpeGVkID0gdGhpcy5pc1ByZWZpeGVkKCk7XG5cbiAgICAgIGlmIChwcmVmaXhlZCkge1xuICAgICAgICBjb25zdCBwcmVmaXhlZE5hbWUgPSB0aGlzLmdldFByZWZpeGVkTmFtZSgpLFxuICAgICAgICAgICAgICBwcmVmaXhlZE5hbWVOb21pbmFsVHlwZU5hbWUgPSAocHJlZml4ZWROYW1lID09PSBub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgICAgIGlmIChwcmVmaXhlZE5hbWVOb21pbmFsVHlwZU5hbWUpIHtcbiAgICAgICAgICBjb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lO1xuICB9XG5cbiAgY29tcGFyZVByZWZpeGVkVHlwZU5hbWUocHJlZml4ZWRUeXBlTmFtZSkge1xuICAgIGxldCBjb21wYXJlc1RvUHJlZml4ZWRUeXBlTmFtZSA9IGZhbHNlO1xuXG4gICAgY29uc3QgcHJlZml4ZWQgPSB0aGlzLmlzUHJlZml4ZWQoKTtcblxuICAgIGlmIChwcmVmaXhlZCkge1xuICAgICAgY29uc3QgcHJlZml4ZWROYW1lID0gdGhpcy5nZXRQcmVmaXhlZE5hbWUoKSxcbiAgICAgICAgICAgIHByZWZpeGVkVHlwZU5hbWVQcmVmaXhlZE5hbWUgPSAocHJlZml4ZWRUeXBlTmFtZSA9PT0gcHJlZml4ZWROYW1lKTtcblxuICAgICAgaWYgKHByZWZpeGVkVHlwZU5hbWVQcmVmaXhlZE5hbWUpIHtcbiAgICAgICAgY29tcGFyZXNUb1ByZWZpeGVkVHlwZU5hbWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJlc1RvUHJlZml4ZWRUeXBlTmFtZTtcbiAgfVxuXG4gIHRvSlNPTihhYnJpZGdlZCA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgaWYgKCFhYnJpZGdlZCkge1xuICAgICAgY29uc3QgcHJlZml4TmFtZUpTT04gPSBwcmVmaXhuYW1lVG9QcmV2aXhOYW1lSlNPTih0aGlzLnByZWZpeE5hbWUpLFxuICAgICAgICAgICAgc3VwZXJUeXBlc0pTT04gPSBzdXBlclR5cGVzVG9TdXBlclR5cGVzSlNPTih0aGlzLnN1cGVyVHlwZXMpLFxuICAgICAgICAgICAgcHJvcGVydGllc0pTT04gPSBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTih0aGlzLnByb3BlcnRpZXMpLFxuICAgICAgICAgICAgcHJvdmlzaW5vYWxKU09NID0gcHJvdmlzaW9uYWxUb1Byb3Zpc2lvbmFsSlNPTih0aGlzLnByb3Zpc2lvbmFsKSxcbiAgICAgICAgICAgIHByZWZpeE5hbWUgPSBwcmVmaXhOYW1lSlNPTiwgIC8vL1xuICAgICAgICAgICAgc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXNKU09OLCAgLy8vXG4gICAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0pTT04sICAvLy9cbiAgICAgICAgICAgIHByb3Zpc2lvbmFsID0gcHJvdmlzaW5vYWxKU09NOyAgLy8vXG5cbiAgICAgIE9iamVjdC5hc3NpZ24oanNvbiwge1xuICAgICAgICBwcmVmaXhOYW1lLFxuICAgICAgICBzdXBlclR5cGVzLFxuICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICBwcm92aXNpb25hbFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHR5cGVOb2RlID0gaW5zdGFudGlhdGVUeXBlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gdHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHByZWZpeE5hbWUgPSBwcmVmaXhOYW1lRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICBzdXBlclR5cGVzID0gc3VwZXJUeXBlc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWxGcm9tSlNPTihqc29uKTtcblxuICAgICAgY29udGV4dCA9IG51bGw7IC8vL1xuXG4gICAgICBjb25zdCB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBwcmVmaXhOYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7XG5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lKG5hbWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgcHJlZml4TmFtZSA9IG51bGwsXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IFtdLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSBbXSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IGZhbHNlO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBwcmVmaXhOYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsicHVzaCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJkZWZpbmUiLCJUeXBlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJwcmVmaXhOYW1lIiwic3VwZXJUeXBlcyIsInByb3BlcnRpZXMiLCJwcm92aXNpb25hbCIsImdldE5hbWUiLCJnZXRQcmVmaXhOYW1lIiwiZ2V0U3VwZXJUeXBlcyIsImdldFR5cGVOb2RlIiwiZ2V0Tm9kZSIsInR5cGVOb2RlIiwiZ2V0UHJvcGVydGllcyIsImluY2x1ZGVTdXBlclR5cGVzIiwiZm9yRWFjaCIsInN1cGVyVHlwZSIsInN1cGVyVHlwZVByb3BlcnRpZXMiLCJpc1Byb3Zpc2lvbmFsIiwic29tZSIsInN1cGVyVHlwZVByb3Zpc2lvbmFsIiwic2V0TmFtZSIsInNldFByZWZpeE5hbWUiLCJzZXRTdXBlclR5cGVzIiwic2V0UHJvcGVydGllcyIsInNldFByb3Zpc2lvbmFsIiwiaXNFc3RhYmxpc2hlZCIsImVzdGFibGlzaGVkIiwiaXNDb3R5cGUiLCJwcm9wZXJ0aWVzTGVuZ3RoIiwibGVuZ3RoIiwiY290eXBlIiwiaXNQcmVmaXhlZCIsInByZWZpeGVkIiwiZ2V0UHJlZml4ZWROYW1lIiwicHJlZml4ZWROYW1lIiwiZ2V0Tm9taW5hbFR5cGVOYW1lIiwibm9taW5hbFR5cGVOYW1lIiwiaXNCYXNpYyIsImJhc2ljIiwic3VwZXJUeXBlc0xlbmd0aCIsImZpcnN0U3VwZXJUeXBlIiwiYmFzZVR5cGUiLCJiYXNlVHlwZUZyb21Ob3RoaW5nIiwiaXNSZWZpbmVkIiwicmVmaW5lZCIsInN1cGVyVHlwZU5hbWUiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsImlzU3ViVHlwZU9mIiwic3ViVHlwZU9mIiwic3VwZXJUeXBlU3ViVHlwZU9mVHlwZSIsImlzU3VwZXJUeXBlT2YiLCJzdXBlclR5cGVPZiIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwiZXF1YWxUb09yU3ViVHlwZU9mIiwiaXNFcXVhbFRvT3JTdXBlclR5cGVPZiIsImVxdWFsVG9PclN1cGVyVHlwZU9mIiwiaXNFcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2YiLCJlcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2YiLCJjb21wYXJlVHlwZU5hbWUiLCJ0eXBlTmFtZSIsIm5hbWVUeXBlTmFtZSIsImNvbXBhcmVzVG9UeXBlTmFtZSIsImNvbXBhcmVQcm92aXNpb25hbCIsImluY2x1ZGVTdXBlcnR5cGVzIiwiY29tcGFyZXNUb1Byb3Zpc2lvbmFsIiwicHJvdmlzaW9uYWxBIiwicHJvdmlzaW9uYWxCIiwiY29tcGFyZU5vbWluYWxUeXBlTmFtZSIsImNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUiLCJuYW1lTm9taW5hbFR5cGVOYW1lIiwicHJlZml4ZWROYW1lTm9taW5hbFR5cGVOYW1lIiwiY29tcGFyZVByZWZpeGVkVHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lIiwiY29tcGFyZXNUb1ByZWZpeGVkVHlwZU5hbWUiLCJwcmVmaXhlZFR5cGVOYW1lUHJlZml4ZWROYW1lIiwidG9KU09OIiwiYWJyaWRnZWQiLCJnZXRTdHJpbmciLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImpzb24iLCJwcmVmaXhOYW1lSlNPTiIsInByZWZpeG5hbWVUb1ByZXZpeE5hbWVKU09OIiwic3VwZXJUeXBlc0pTT04iLCJzdXBlclR5cGVzVG9TdXBlclR5cGVzSlNPTiIsInByb3BlcnRpZXNKU09OIiwicHJvcGVydGllc1RvUHJvcGVydGllc0pTT04iLCJwcm92aXNpbm9hbEpTT00iLCJwcm92aXNpb25hbFRvUHJvdmlzaW9uYWxKU09OIiwiT2JqZWN0IiwiYXNzaWduIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsImluc3RhbnRpYXRlVHlwZSIsImJyZWFrUG9pbnRGcm9tSlNPTiIsIm5hbWVGcm9tVHlwZU5vZGUiLCJwcmVmaXhOYW1lRnJvbUpTT04iLCJzdXBlclR5cGVzRnJvbUpTT04iLCJwcm9wZXJ0aWVzRnJvbUpTT04iLCJwcm92aXNpb25hbEZyb21KU09OIiwiZnJvbU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNCQTs7O2VBQUE7OztnQ0FwQndCOzJCQUNPOzBCQUVSO3lCQUNLOzZCQUNJO3lCQUNDO3NCQUNHOzRCQUMyQjtzQkFRbEI7QUFFN0MsTUFBTSxFQUFFQSxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYztNQUV0QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGFBQWFDLHVCQUFPO0lBQzlDLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxXQUFXLENBQUU7UUFDcEcsS0FBSyxDQUFDUixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDTCxJQUFJO0lBQ2xCO0lBRUFNLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDTCxVQUFVO0lBQ3hCO0lBRUFNLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDTCxVQUFVO0lBQ3hCO0lBRUFNLGNBQWM7UUFDWixNQUFNVixPQUFPLElBQUksQ0FBQ1csT0FBTyxJQUNuQkMsV0FBV1osTUFBTyxHQUFHO1FBRTNCLE9BQU9ZO0lBQ1Q7SUFFQUMsY0FBY0Msb0JBQW9CLElBQUksRUFBRTtRQUN0QyxNQUFNVCxhQUFhLEVBQUU7UUFFckJiLEtBQUthLFlBQVksSUFBSSxDQUFDQSxVQUFVO1FBRWhDLElBQUlTLG1CQUFtQjtZQUNyQixJQUFJLENBQUNWLFVBQVUsQ0FBQ1csT0FBTyxDQUFDLENBQUNDO2dCQUN2QixNQUFNQyxzQkFBc0JELFVBQVVILGFBQWE7Z0JBRW5EckIsS0FBS2EsWUFBWVk7WUFDbkI7UUFDRjtRQUVBLE9BQU9aO0lBQ1Q7SUFFQWEsY0FBY0osb0JBQW9CLElBQUksRUFBRTtRQUN0QyxJQUFJUixjQUFjLElBQUksQ0FBQ0EsV0FBVztRQUVsQyxJQUFJUSxtQkFBbUI7WUFDckIsSUFBSSxDQUFDUixhQUFhO2dCQUNoQkEsY0FBYyxJQUFJLENBQUNGLFVBQVUsQ0FBQ2UsSUFBSSxDQUFDLENBQUNIO29CQUNsQyxNQUFNSSx1QkFBdUJKLFVBQVVFLGFBQWE7b0JBRXBELElBQUlFLHNCQUFzQjt3QkFDeEIsT0FBTztvQkFDVDtnQkFDRjtZQUNGO1FBQ0Y7UUFFQSxPQUFPZDtJQUNUO0lBRUFlLFFBQVFuQixJQUFJLEVBQUU7UUFDWixJQUFJLENBQUNBLElBQUksR0FBR0E7SUFDZDtJQUVBb0IsY0FBY25CLFVBQVUsRUFBRTtRQUN4QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7SUFDcEI7SUFFQW9CLGNBQWNuQixVQUFVLEVBQUU7UUFDeEIsSUFBSSxDQUFDQSxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFvQixjQUFjbkIsVUFBVSxFQUFFO1FBQ3hCLElBQUksQ0FBQ0EsVUFBVSxHQUFHQTtJQUNwQjtJQUVBb0IsZUFBZW5CLFdBQVcsRUFBRTtRQUMxQixJQUFJLENBQUNBLFdBQVcsR0FBR0E7SUFDckI7SUFFQW9CLGNBQWNaLG9CQUFvQixJQUFJLEVBQUU7UUFDdEMsTUFBTVIsY0FBYyxJQUFJLENBQUNZLGFBQWEsQ0FBQ0osb0JBQ2pDYSxjQUFjLENBQUNyQjtRQUVyQixPQUFPcUI7SUFDVDtJQUVBQyxXQUFXO1FBQ1QsTUFBTUMsbUJBQW1CLElBQUksQ0FBQ3hCLFVBQVUsQ0FBQ3lCLE1BQU0sRUFDekNDLFNBQVVGLG1CQUFtQjtRQUVuQyxPQUFPRTtJQUNUO0lBRUFDLGFBQWE7UUFDWCxNQUFNQyxXQUFZLElBQUksQ0FBQzlCLFVBQVUsS0FBSztRQUV0QyxPQUFPOEI7SUFDVDtJQUVBQyxrQkFBa0I7UUFDaEIsSUFBSUMsZUFBZTtRQUVuQixNQUFNRixXQUFXLElBQUksQ0FBQ0QsVUFBVTtRQUVoQyxJQUFJQyxVQUFVO1lBQ1pFLGVBQWUsR0FBRyxJQUFJLENBQUNoQyxVQUFVLEdBQUcsSUFBSSxDQUFDRCxJQUFJLEVBQUU7UUFDakQ7UUFFQSxPQUFPaUM7SUFDVDtJQUVBQyxxQkFBcUI7UUFDbkIsTUFBTUgsV0FBVyxJQUFJLENBQUNELFVBQVUsSUFDMUJLLGtCQUFrQkosV0FDQyxHQUFHLElBQUksQ0FBQzlCLFVBQVUsR0FBRyxJQUFJLENBQUNELElBQUksRUFBRSxHQUM3QixJQUFJLENBQUNBLElBQUk7UUFFckMsT0FBT21DO0lBQ1Q7SUFFQUMsVUFBVTtRQUNSLElBQUlDLFFBQVE7UUFFWixNQUFNQyxtQkFBbUIsSUFBSSxDQUFDcEMsVUFBVSxDQUFDMEIsTUFBTTtRQUUvQyxJQUFJVSxxQkFBcUIsR0FBRztZQUMxQixNQUFNQyxpQkFBaUJoRCxNQUFNLElBQUksQ0FBQ1csVUFBVSxHQUN0Q1ksWUFBWXlCLGdCQUNaQyxXQUFXQyxJQUFBQSx5QkFBbUI7WUFFcEMsSUFBSTNCLGNBQWMwQixVQUFVO2dCQUMxQkgsUUFBUTtZQUNWO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFLLFlBQVk7UUFDVixJQUFJQyxVQUFVO1FBRWQsTUFBTUwsbUJBQW1CLElBQUksQ0FBQ3BDLFVBQVUsQ0FBQzBCLE1BQU07UUFFL0MsSUFBSVUscUJBQXFCLEdBQUc7WUFDMUIsTUFBTUMsaUJBQWlCaEQsTUFBTSxJQUFJLENBQUNXLFVBQVUsR0FDdENZLFlBQVl5QixnQkFDWkssZ0JBQWdCOUIsVUFBVVQsT0FBTztZQUV2QyxJQUFJdUMsa0JBQWtCLElBQUksQ0FBQzVDLElBQUksRUFBRTtnQkFDL0IyQyxVQUFVO1lBQ1o7UUFDRjtRQUVBLE9BQU9BO0lBQ1Q7SUFFQUUsVUFBVUMsSUFBSSxFQUFFO1FBQ2QsTUFBTUMsVUFBVyxJQUFJLEtBQUtEO1FBRTFCLE9BQU9DO0lBQ1Q7SUFFQUMsWUFBWUYsSUFBSSxFQUFFO1FBQ2hCLElBQUlHO1FBRUosTUFBTVQsV0FBV0MsSUFBQUEseUJBQW1CO1FBRXBDLElBQUksSUFBSSxLQUFLRCxVQUFVO1lBQ3JCUyxZQUFZO1FBQ2QsT0FBTztZQUNMQSxZQUFZLElBQUksQ0FBQy9DLFVBQVUsQ0FBQ2UsSUFBSSxDQUFDLENBQUNIO2dCQUNoQyxJQUFJQSxjQUFjZ0MsTUFBTTtvQkFDdEIsT0FBTztnQkFDVDtnQkFFQSxNQUFNSSx5QkFBeUJwQyxVQUFVa0MsV0FBVyxDQUFDRjtnQkFFckQsSUFBSUksd0JBQXdCO29CQUMxQixPQUFPO2dCQUNUO1lBQ0Y7UUFDRjtRQUVBLE9BQU9EO0lBQ1Q7SUFFQUUsY0FBY0wsSUFBSSxFQUFFO1FBQ2xCLE1BQU1HLFlBQVlILEtBQUtFLFdBQVcsQ0FBQyxJQUFJLEdBQ2pDSSxjQUFjSCxXQUFZLEdBQUc7UUFFbkMsT0FBT0c7SUFDVDtJQUVBQyxxQkFBcUJQLElBQUksRUFBRTtRQUN6QixNQUFNQyxVQUFVLElBQUksQ0FBQ0YsU0FBUyxDQUFDQyxPQUN6QkcsWUFBWSxJQUFJLENBQUNELFdBQVcsQ0FBQ0YsT0FDN0JRLHFCQUFzQlAsV0FBV0U7UUFFdkMsT0FBT0s7SUFDVDtJQUVBQyx1QkFBdUJULElBQUksRUFBRTtRQUMzQixNQUFNQyxVQUFVLElBQUksQ0FBQ0YsU0FBUyxDQUFDQyxPQUN6Qk0sY0FBYyxJQUFJLENBQUNELGFBQWEsQ0FBQ0wsT0FDakNVLHVCQUF3QlQsV0FBV0s7UUFFekMsT0FBT0k7SUFDVDtJQUVBQyw4QkFBOEJYLElBQUksRUFBRTtRQUNsQyxNQUFNQyxVQUFVLElBQUksQ0FBQ0YsU0FBUyxDQUFDQyxPQUN6QkcsWUFBWSxJQUFJLENBQUNELFdBQVcsQ0FBQ0YsT0FDN0JNLGNBQWMsSUFBSSxDQUFDRCxhQUFhLENBQUNMLE9BQ2pDWSw4QkFBK0JYLFdBQVdFLGFBQWFHO1FBRTdELE9BQU9NO0lBQ1Q7SUFFQUMsZ0JBQWdCQyxRQUFRLEVBQUU7UUFDeEIsTUFBTUMsZUFBZ0IsSUFBSSxDQUFDN0QsSUFBSSxLQUFLNEQsVUFDOUJFLHFCQUFxQkQsY0FBZSxHQUFHO1FBRTdDLE9BQU9DO0lBQ1Q7SUFFQUMsbUJBQW1CM0QsV0FBVyxFQUFFNEQsb0JBQW9CLElBQUksRUFBRTtRQUN4RCxJQUFJQztRQUVKLE1BQU1DLGVBQWU5RCxhQUFhLEdBQUc7UUFFckNBLGNBQWMsSUFBSSxDQUFDWSxhQUFhLENBQUNnRDtRQUVqQyxNQUFNRyxlQUFlL0QsYUFBYSxHQUFHO1FBRXJDNkQsd0JBQXlCQyxpQkFBaUJDO1FBRTFDLE9BQU9GO0lBQ1Q7SUFFQUcsdUJBQXVCakMsZUFBZSxFQUFFO1FBQ3RDLElBQUlrQyw0QkFBNEI7UUFFaEMsTUFBTUMsc0JBQXVCLElBQUksQ0FBQ3RFLElBQUksS0FBS21DO1FBRTNDLElBQUltQyxxQkFBcUI7WUFDdkJELDRCQUE0QjtRQUM5QixPQUFPO1lBQ0wsTUFBTXRDLFdBQVcsSUFBSSxDQUFDRCxVQUFVO1lBRWhDLElBQUlDLFVBQVU7Z0JBQ1osTUFBTUUsZUFBZSxJQUFJLENBQUNELGVBQWUsSUFDbkN1Qyw4QkFBK0J0QyxpQkFBaUJFO2dCQUV0RCxJQUFJb0MsNkJBQTZCO29CQUMvQkYsNEJBQTRCO2dCQUM5QjtZQUNGO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFHLHdCQUF3QkMsZ0JBQWdCLEVBQUU7UUFDeEMsSUFBSUMsNkJBQTZCO1FBRWpDLE1BQU0zQyxXQUFXLElBQUksQ0FBQ0QsVUFBVTtRQUVoQyxJQUFJQyxVQUFVO1lBQ1osTUFBTUUsZUFBZSxJQUFJLENBQUNELGVBQWUsSUFDbkMyQywrQkFBZ0NGLHFCQUFxQnhDO1lBRTNELElBQUkwQyw4QkFBOEI7Z0JBQ2hDRCw2QkFBNkI7WUFDL0I7UUFDRjtRQUVBLE9BQU9BO0lBQ1Q7SUFFQUUsT0FBT0MsV0FBVyxLQUFLLEVBQUU7UUFDdkIsTUFBTWhGLFNBQVMsSUFBSSxDQUFDaUYsU0FBUztRQUU3QixJQUFJL0U7UUFFSkEsYUFBYSxJQUFJLENBQUNnRixhQUFhO1FBRS9CLE1BQU1DLGlCQUFpQkMsSUFBQUEsc0NBQTBCLEVBQUNsRjtRQUVsREEsYUFBYWlGLGdCQUFpQixHQUFHO1FBRWpDLE1BQU1FLE9BQU87WUFDWHJGO1lBQ0FFO1FBQ0Y7UUFFQSxJQUFJLENBQUM4RSxVQUFVO1lBQ2IsTUFBTU0saUJBQWlCQyxJQUFBQSxnQ0FBMEIsRUFBQyxJQUFJLENBQUNuRixVQUFVLEdBQzNEb0YsaUJBQWlCQyxJQUFBQSxnQ0FBMEIsRUFBQyxJQUFJLENBQUNwRixVQUFVLEdBQzNEcUYsaUJBQWlCQyxJQUFBQSxnQ0FBMEIsRUFBQyxJQUFJLENBQUNyRixVQUFVLEdBQzNEc0Ysa0JBQWtCQyxJQUFBQSxrQ0FBNEIsRUFBQyxJQUFJLENBQUN0RixXQUFXLEdBQy9ESCxhQUFha0YsZ0JBQ2JqRixhQUFhbUYsZ0JBQ2JsRixhQUFhb0YsZ0JBQ2JuRixjQUFjcUYsaUJBQWtCLEdBQUc7WUFFekNFLE9BQU9DLE1BQU0sQ0FBQ1YsTUFBTTtnQkFDbEJqRjtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztZQUNGO1FBQ0Y7UUFFQSxPQUFPOEU7SUFDVDtJQUVBLE9BQU9sRixPQUFPLE9BQU87SUFFckIsT0FBTzZGLFNBQVNYLElBQUksRUFBRXRGLE9BQU8sRUFBRTtRQUM3QixPQUFPa0csSUFBQUEsb0JBQVcsRUFBQyxDQUFDbEc7WUFDbEIsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR3FGLE1BQ2J4RSxXQUFXcUYsSUFBQUEsNEJBQWUsRUFBQ2xHLFFBQVFELFVBQ25DRSxPQUFPWSxVQUNQWCxhQUFhaUcsSUFBQUEsOEJBQWtCLEVBQUNkLE9BQ2hDbEYsT0FBT2lHLElBQUFBLHlCQUFnQixFQUFDdkYsVUFBVWQsVUFDbENLLGFBQWFpRyxJQUFBQSx3QkFBa0IsRUFBQ2hCLE1BQU10RixVQUN0Q00sYUFBYWlHLElBQUFBLHdCQUFrQixFQUFDakIsTUFBTXRGLFVBQ3RDTyxhQUFhaUcsSUFBQUEsd0JBQWtCLEVBQUNsQixNQUFNdEYsVUFDdENRLGNBQWNpRyxJQUFBQSx5QkFBbUIsRUFBQ25CO1lBRXhDdEYsVUFBVSxNQUFNLEdBQUc7WUFFbkIsTUFBTWtELE9BQU8sSUFBSXBELEtBQUtFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDLE1BQU1DLFlBQVlDLFlBQVlDLFlBQVlDO1lBRW5HLE9BQU8wQztRQUNULEdBQUdsRDtJQUNMO0lBRUEsT0FBTzBHLFNBQVN0RyxJQUFJLEVBQUVKLE9BQU8sRUFBRTtRQUM3QixNQUFNQyxTQUFTRyxNQUNURixPQUFPLE1BQ1BDLGFBQWEsTUFDYkUsYUFBYSxNQUNiQyxhQUFhLEVBQUUsRUFDZkMsYUFBYSxFQUFFLEVBQ2ZDLGNBQWM7UUFFcEJSLFVBQVU7UUFFVixNQUFNa0QsT0FBTyxJQUFJcEQsS0FBS0UsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUMsTUFBTUMsWUFBWUMsWUFBWUMsWUFBWUM7UUFFbkcsT0FBTzBDO0lBQ1Q7QUFDRiJ9
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVUeXBlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IG5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3R5cGVcIjtcbmltcG9ydCB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmltcG9ydCB7IHByb3BlcnRpZXNGcm9tSlNPTixcbiAgICAgICAgIHByZWZpeE5hbWVGcm9tSlNPTixcbiAgICAgICAgIHN1cGVyVHlwZXNGcm9tSlNPTixcbiAgICAgICAgIHByb3Zpc2lvbmFsRnJvbUpTT04sXG4gICAgICAgICBwcmVmaXhuYW1lVG9QcmV2aXhOYW1lSlNPTixcbiAgICAgICAgIHN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OLFxuICAgICAgICAgcHJvcGVydGllc1RvUHJvcGVydGllc0pTT04sXG4gICAgICAgICBwcm92aXNpb25hbFRvUHJvdmlzaW9uYWxKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgcHVzaCwgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVHlwZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIHByZWZpeE5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5wcmVmaXhOYW1lID0gcHJlZml4TmFtZTtcbiAgICB0aGlzLnN1cGVyVHlwZXMgPSBzdXBlclR5cGVzO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy5wcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0UHJlZml4TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmaXhOYW1lO1xuICB9XG5cbiAgZ2V0U3VwZXJUeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBlclR5cGVzO1xuICB9XG5cbiAgZ2V0VHlwZU5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHR5cGVOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHR5cGVOb2RlO1xuICB9XG5cbiAgZ2V0UHJvcGVydGllcyhpbmNsdWRlU3VwZXJUeXBlcyA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gW107XG5cbiAgICBwdXNoKHByb3BlcnRpZXMsIHRoaXMucHJvcGVydGllcyk7XG5cbiAgICBpZiAoaW5jbHVkZVN1cGVyVHlwZXMpIHtcbiAgICAgIHRoaXMuc3VwZXJUeXBlcy5mb3JFYWNoKChzdXBlclR5cGUpID0+IHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlUHJvcGVydGllcyA9IHN1cGVyVHlwZS5nZXRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgcHVzaChwcm9wZXJ0aWVzLCBzdXBlclR5cGVQcm9wZXJ0aWVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xuICB9XG5cbiAgaXNQcm92aXNpb25hbChpbmNsdWRlU3VwZXJUeXBlcyA9IHRydWUpIHtcbiAgICBsZXQgcHJvdmlzaW9uYWwgPSB0aGlzLnByb3Zpc2lvbmFsO1xuXG4gICAgaWYgKGluY2x1ZGVTdXBlclR5cGVzKSB7XG4gICAgICBpZiAoIXByb3Zpc2lvbmFsKSB7XG4gICAgICAgIHByb3Zpc2lvbmFsID0gdGhpcy5zdXBlclR5cGVzLnNvbWUoKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3Zpc2lvbmFsID0gc3VwZXJUeXBlLmlzUHJvdmlzaW9uYWwoKTtcblxuICAgICAgICAgIGlmIChzdXBlclR5cGVQcm92aXNpb25hbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBzZXROYW1lKG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgc2V0UHJlZml4TmFtZShwcmVmaXhOYW1lKSB7XG4gICAgdGhpcy5wcmVmaXhOYW1lID0gcHJlZml4TmFtZTtcbiAgfVxuXG4gIHNldFN1cGVyVHlwZXMoc3VwZXJUeXBlcykge1xuICAgIHRoaXMuc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXM7XG4gIH1cblxuICBzZXRQcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICB9XG5cbiAgc2V0UHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpIHtcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBpc0VzdGFibGlzaGVkKGluY2x1ZGVTdXBlclR5cGVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHByb3Zpc2lvbmFsID0gdGhpcy5pc1Byb3Zpc2lvbmFsKGluY2x1ZGVTdXBlclR5cGVzKSxcbiAgICAgICAgICBlc3RhYmxpc2hlZCA9ICFwcm92aXNpb25hbDtcblxuICAgIHJldHVybiBlc3RhYmxpc2hlZDtcbiAgfVxuXG4gIGlzQ290eXBlKCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmdldFByb3BlcnRpZXMoKSxcbiAgICAgICAgICBwcm9wZXJ0aWVzTGVuZ3RoID0gcHJvcGVydGllcy5sZW5ndGgsXG4gICAgICAgICAgY290eXBlID0gKHByb3BlcnRpZXNMZW5ndGggPiAwKTtcblxuICAgIHJldHVybiBjb3R5cGU7XG4gIH1cblxuICBpc1ByZWZpeGVkKCkge1xuICAgIGNvbnN0IHByZWZpeGVkID0gKHRoaXMucHJlZml4TmFtZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gcHJlZml4ZWQ7XG4gIH1cblxuICBnZXRQcmVmaXhlZE5hbWUoKSB7XG4gICAgbGV0IHByZWZpeGVkTmFtZSA9IG51bGw7XG5cbiAgICBjb25zdCBwcmVmaXhlZCA9IHRoaXMuaXNQcmVmaXhlZCgpO1xuXG4gICAgaWYgKHByZWZpeGVkKSB7XG4gICAgICBwcmVmaXhlZE5hbWUgPSBgJHt0aGlzLnByZWZpeE5hbWV9JHt0aGlzLm5hbWV9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJlZml4ZWROYW1lO1xuICB9XG5cbiAgZ2V0Tm9taW5hbFR5cGVOYW1lKCkge1xuICAgIGNvbnN0IHByZWZpeGVkID0gdGhpcy5pc1ByZWZpeGVkKCksXG4gICAgICAgICAgbm9taW5hbFR5cGVOYW1lID0gcHJlZml4ZWQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLnByZWZpeE5hbWV9JHt0aGlzLm5hbWV9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZTtcblxuICAgIHJldHVybiBub21pbmFsVHlwZU5hbWU7XG4gIH1cblxuICBpc0Jhc2ljKCkge1xuICAgIGxldCBiYXNpYyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VwZXJUeXBlc0xlbmd0aCA9IHRoaXMuc3VwZXJUeXBlcy5sZW5ndGg7XG5cbiAgICBpZiAoc3VwZXJUeXBlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RTdXBlclR5cGUgPSBmaXJzdCh0aGlzLnN1cGVyVHlwZXMpLFxuICAgICAgICAgICAgc3VwZXJUeXBlID0gZmlyc3RTdXBlclR5cGUsIC8vL1xuICAgICAgICAgICAgYmFzZVR5cGUgPSBiYXNlVHlwZUZyb21Ob3RoaW5nKCk7XG5cbiAgICAgIGlmIChzdXBlclR5cGUgPT09IGJhc2VUeXBlKSB7XG4gICAgICAgIGJhc2ljID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYmFzaWM7XG4gIH1cblxuICBpc1JlZmluZWQoKSB7XG4gICAgbGV0IHJlZmluZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1cGVyVHlwZXNMZW5ndGggPSB0aGlzLnN1cGVyVHlwZXMubGVuZ3RoO1xuXG4gICAgaWYgKHN1cGVyVHlwZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0U3VwZXJUeXBlID0gZmlyc3QodGhpcy5zdXBlclR5cGVzKSxcbiAgICAgICAgICAgIHN1cGVyVHlwZSA9IGZpcnN0U3VwZXJUeXBlLCAvLy9cbiAgICAgICAgICAgIHN1cGVyVHlwZU5hbWUgPSBzdXBlclR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBpZiAoc3VwZXJUeXBlTmFtZSA9PT0gdGhpcy5uYW1lKSB7XG4gICAgICAgIHJlZmluZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZWZpbmVkO1xuICB9XG5cbiAgaXNFcXVhbFRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gKHRoaXMgPT09IHR5cGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc1N1YlR5cGVPZih0eXBlKSB7XG4gICAgbGV0IHN1YlR5cGVPZjtcblxuICAgIGNvbnN0IGJhc2VUeXBlID0gYmFzZVR5cGVGcm9tTm90aGluZygpO1xuXG4gICAgaWYgKHRoaXMgPT09IGJhc2VUeXBlKSB7XG4gICAgICBzdWJUeXBlT2YgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3ViVHlwZU9mID0gdGhpcy5zdXBlclR5cGVzLnNvbWUoKHN1cGVyVHlwZSkgPT4geyAvLy9cbiAgICAgICAgaWYgKHN1cGVyVHlwZSA9PT0gdHlwZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlU3ViVHlwZU9mVHlwZSA9IHN1cGVyVHlwZS5pc1N1YlR5cGVPZih0eXBlKTtcblxuICAgICAgICBpZiAoc3VwZXJUeXBlU3ViVHlwZU9mVHlwZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBzdWJUeXBlT2Y7XG4gIH1cblxuICBpc1N1cGVyVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBzdWJUeXBlT2YgPSB0eXBlLmlzU3ViVHlwZU9mKHRoaXMpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gc3ViVHlwZU9mOyAgLy8vXG5cbiAgICByZXR1cm4gc3VwZXJUeXBlT2Y7XG4gIH1cblxuICBpc0VxdWFsVG9PclN1YlR5cGVPZih0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1YlR5cGVPZiA9IHRoaXMuaXNTdWJUeXBlT2YodHlwZSksXG4gICAgICAgICAgZXF1YWxUb09yU3ViVHlwZU9mID0gKGVxdWFsVG8gfHwgc3ViVHlwZU9mKTtcblxuICAgIHJldHVybiBlcXVhbFRvT3JTdWJUeXBlT2Y7XG4gIH1cblxuICBpc0VxdWFsVG9PclN1cGVyVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSB0aGlzLmlzU3VwZXJUeXBlT2YodHlwZSksXG4gICAgICAgICAgZXF1YWxUb09yU3VwZXJUeXBlT2YgPSAoZXF1YWxUbyB8fCBzdXBlclR5cGVPZik7XG5cbiAgICByZXR1cm4gZXF1YWxUb09yU3VwZXJUeXBlT2Y7XG4gIH1cblxuICBpc0VxdWFsVG9TdWJUeXBlT3JTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1YlR5cGVPZiA9IHRoaXMuaXNTdWJUeXBlT2YodHlwZSksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSB0aGlzLmlzU3VwZXJUeXBlT2YodHlwZSksXG4gICAgICAgICAgZXF1YWxUb1N1YlR5cGVPclN1cGVyVHlwZU9mID0gKGVxdWFsVG8gfHwgc3ViVHlwZU9mIHx8IHN1cGVyVHlwZU9mKTtcblxuICAgIHJldHVybiBlcXVhbFRvU3ViVHlwZU9yU3VwZXJUeXBlT2Y7XG4gIH1cblxuICBjb21wYXJlVHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lVHlwZU5hbWUgPSAodGhpcy5uYW1lID09PSB0eXBlTmFtZSksXG4gICAgICAgICAgY29tcGFyZXNUb1R5cGVOYW1lID0gbmFtZVR5cGVOYW1lOyAgLy8vXG5cbiAgICByZXR1cm4gY29tcGFyZXNUb1R5cGVOYW1lO1xuICB9XG5cbiAgY29tcGFyZVByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsLCBpbmNsdWRlU3VwZXJ0eXBlcyA9IHRydWUpIHtcbiAgICBsZXQgY29tcGFyZXNUb1Byb3Zpc2lvbmFsO1xuXG4gICAgY29uc3QgcHJvdmlzaW9uYWxBID0gcHJvdmlzaW9uYWw7IC8vL1xuXG4gICAgcHJvdmlzaW9uYWwgPSB0aGlzLmlzUHJvdmlzaW9uYWwoaW5jbHVkZVN1cGVydHlwZXMpO1xuXG4gICAgY29uc3QgcHJvdmlzaW9uYWxCID0gcHJvdmlzaW9uYWw7IC8vL1xuXG4gICAgY29tcGFyZXNUb1Byb3Zpc2lvbmFsID0gKHByb3Zpc2lvbmFsQSA9PT0gcHJvdmlzaW9uYWxCKTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvUHJvdmlzaW9uYWw7XG4gIH1cblxuICBjb21wYXJlTm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSkge1xuICAgIGxldCBjb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lID0gZmFsc2U7XG5cbiAgICBjb25zdCBuYW1lTm9taW5hbFR5cGVOYW1lID0gKHRoaXMubmFtZSA9PT0gbm9taW5hbFR5cGVOYW1lKTtcblxuICAgIGlmIChuYW1lTm9taW5hbFR5cGVOYW1lKSB7XG4gICAgICBjb21wYXJlc1RvTm9taW5hbFR5cGVOYW1lID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJlZml4ZWQgPSB0aGlzLmlzUHJlZml4ZWQoKTtcblxuICAgICAgaWYgKHByZWZpeGVkKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeGVkTmFtZSA9IHRoaXMuZ2V0UHJlZml4ZWROYW1lKCksXG4gICAgICAgICAgICAgIHByZWZpeGVkTmFtZU5vbWluYWxUeXBlTmFtZSA9IChwcmVmaXhlZE5hbWUgPT09IG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHByZWZpeGVkTmFtZU5vbWluYWxUeXBlTmFtZSkge1xuICAgICAgICAgIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9Ob21pbmFsVHlwZU5hbWU7XG4gIH1cblxuICBjb21wYXJlUHJlZml4ZWRUeXBlTmFtZShwcmVmaXhlZFR5cGVOYW1lKSB7XG4gICAgbGV0IGNvbXBhcmVzVG9QcmVmaXhlZFR5cGVOYW1lID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcmVmaXhlZCA9IHRoaXMuaXNQcmVmaXhlZCgpO1xuXG4gICAgaWYgKHByZWZpeGVkKSB7XG4gICAgICBjb25zdCBwcmVmaXhlZE5hbWUgPSB0aGlzLmdldFByZWZpeGVkTmFtZSgpLFxuICAgICAgICAgICAgcHJlZml4ZWRUeXBlTmFtZVByZWZpeGVkTmFtZSA9IChwcmVmaXhlZFR5cGVOYW1lID09PSBwcmVmaXhlZE5hbWUpO1xuXG4gICAgICBpZiAocHJlZml4ZWRUeXBlTmFtZVByZWZpeGVkTmFtZSkge1xuICAgICAgICBjb21wYXJlc1RvUHJlZml4ZWRUeXBlTmFtZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmVzVG9QcmVmaXhlZFR5cGVOYW1lO1xuICB9XG5cbiAgdG9KU09OKGFicmlkZ2VkID0gZmFsc2UpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICBpZiAoIWFicmlkZ2VkKSB7XG4gICAgICBjb25zdCBwcmVmaXhOYW1lSlNPTiA9IHByZWZpeG5hbWVUb1ByZXZpeE5hbWVKU09OKHRoaXMucHJlZml4TmFtZSksXG4gICAgICAgICAgICBzdXBlclR5cGVzSlNPTiA9IHN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OKHRoaXMuc3VwZXJUeXBlcyksXG4gICAgICAgICAgICBwcm9wZXJ0aWVzSlNPTiA9IHByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OKHRoaXMucHJvcGVydGllcyksXG4gICAgICAgICAgICBwcm92aXNpbm9hbEpTT00gPSBwcm92aXNpb25hbFRvUHJvdmlzaW9uYWxKU09OKHRoaXMucHJvdmlzaW9uYWwpLFxuICAgICAgICAgICAgcHJlZml4TmFtZSA9IHByZWZpeE5hbWVKU09OLCAgLy8vXG4gICAgICAgICAgICBzdXBlclR5cGVzID0gc3VwZXJUeXBlc0pTT04sICAvLy9cbiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzSlNPTiwgIC8vL1xuICAgICAgICAgICAgcHJvdmlzaW9uYWwgPSBwcm92aXNpbm9hbEpTT007ICAvLy9cblxuICAgICAgT2JqZWN0LmFzc2lnbihqc29uLCB7XG4gICAgICAgIHByZWZpeE5hbWUsXG4gICAgICAgIHN1cGVyVHlwZXMsXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgIHByb3Zpc2lvbmFsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJUeXBlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgdHlwZU5vZGUgPSBpbnN0YW50aWF0ZVR5cGUoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSB0eXBlTm9kZSwgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgbmFtZSA9IG5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgcHJlZml4TmFtZSA9IHByZWZpeE5hbWVGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgICAgcHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbEZyb21KU09OKGpzb24pO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDsgLy8vXG5cbiAgICAgIGNvbnN0IHR5cGUgPSBuZXcgVHlwZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIHByZWZpeE5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKTtcblxuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWUobmFtZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICBwcmVmaXhOYW1lID0gbnVsbCxcbiAgICAgICAgICBzdXBlclR5cGVzID0gW10sXG4gICAgICAgICAgcHJvcGVydGllcyA9IFtdLFxuICAgICAgICAgIHByb3Zpc2lvbmFsID0gZmFsc2U7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHR5cGUgPSBuZXcgVHlwZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIHByZWZpeE5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJwdXNoIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIlR5cGUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsInByZWZpeE5hbWUiLCJzdXBlclR5cGVzIiwicHJvcGVydGllcyIsInByb3Zpc2lvbmFsIiwiZ2V0TmFtZSIsImdldFByZWZpeE5hbWUiLCJnZXRTdXBlclR5cGVzIiwiZ2V0VHlwZU5vZGUiLCJnZXROb2RlIiwidHlwZU5vZGUiLCJnZXRQcm9wZXJ0aWVzIiwiaW5jbHVkZVN1cGVyVHlwZXMiLCJmb3JFYWNoIiwic3VwZXJUeXBlIiwic3VwZXJUeXBlUHJvcGVydGllcyIsImlzUHJvdmlzaW9uYWwiLCJzb21lIiwic3VwZXJUeXBlUHJvdmlzaW9uYWwiLCJzZXROYW1lIiwic2V0UHJlZml4TmFtZSIsInNldFN1cGVyVHlwZXMiLCJzZXRQcm9wZXJ0aWVzIiwic2V0UHJvdmlzaW9uYWwiLCJpc0VzdGFibGlzaGVkIiwiZXN0YWJsaXNoZWQiLCJpc0NvdHlwZSIsInByb3BlcnRpZXNMZW5ndGgiLCJsZW5ndGgiLCJjb3R5cGUiLCJpc1ByZWZpeGVkIiwicHJlZml4ZWQiLCJnZXRQcmVmaXhlZE5hbWUiLCJwcmVmaXhlZE5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJub21pbmFsVHlwZU5hbWUiLCJpc0Jhc2ljIiwiYmFzaWMiLCJzdXBlclR5cGVzTGVuZ3RoIiwiZmlyc3RTdXBlclR5cGUiLCJiYXNlVHlwZSIsImJhc2VUeXBlRnJvbU5vdGhpbmciLCJpc1JlZmluZWQiLCJyZWZpbmVkIiwic3VwZXJUeXBlTmFtZSIsImlzRXF1YWxUbyIsInR5cGUiLCJlcXVhbFRvIiwiaXNTdWJUeXBlT2YiLCJzdWJUeXBlT2YiLCJzdXBlclR5cGVTdWJUeXBlT2ZUeXBlIiwiaXNTdXBlclR5cGVPZiIsInN1cGVyVHlwZU9mIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJlcXVhbFRvT3JTdWJUeXBlT2YiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwiZXF1YWxUb09yU3VwZXJUeXBlT2YiLCJpc0VxdWFsVG9TdWJUeXBlT3JTdXBlclR5cGVPZiIsImVxdWFsVG9TdWJUeXBlT3JTdXBlclR5cGVPZiIsImNvbXBhcmVUeXBlTmFtZSIsInR5cGVOYW1lIiwibmFtZVR5cGVOYW1lIiwiY29tcGFyZXNUb1R5cGVOYW1lIiwiY29tcGFyZVByb3Zpc2lvbmFsIiwiaW5jbHVkZVN1cGVydHlwZXMiLCJjb21wYXJlc1RvUHJvdmlzaW9uYWwiLCJwcm92aXNpb25hbEEiLCJwcm92aXNpb25hbEIiLCJjb21wYXJlTm9taW5hbFR5cGVOYW1lIiwiY29tcGFyZXNUb05vbWluYWxUeXBlTmFtZSIsIm5hbWVOb21pbmFsVHlwZU5hbWUiLCJwcmVmaXhlZE5hbWVOb21pbmFsVHlwZU5hbWUiLCJjb21wYXJlUHJlZml4ZWRUeXBlTmFtZSIsInByZWZpeGVkVHlwZU5hbWUiLCJjb21wYXJlc1RvUHJlZml4ZWRUeXBlTmFtZSIsInByZWZpeGVkVHlwZU5hbWVQcmVmaXhlZE5hbWUiLCJ0b0pTT04iLCJhYnJpZGdlZCIsImdldFN0cmluZyIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwianNvbiIsInByZWZpeE5hbWVKU09OIiwicHJlZml4bmFtZVRvUHJldml4TmFtZUpTT04iLCJzdXBlclR5cGVzSlNPTiIsInN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OIiwicHJvcGVydGllc0pTT04iLCJwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTiIsInByb3Zpc2lub2FsSlNPTSIsInByb3Zpc2lvbmFsVG9Qcm92aXNpb25hbEpTT04iLCJPYmplY3QiLCJhc3NpZ24iLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwiaW5zdGFudGlhdGVUeXBlIiwiYnJlYWtQb2ludEZyb21KU09OIiwibmFtZUZyb21UeXBlTm9kZSIsInByZWZpeE5hbWVGcm9tSlNPTiIsInN1cGVyVHlwZXNGcm9tSlNPTiIsInByb3BlcnRpZXNGcm9tSlNPTiIsInByb3Zpc2lvbmFsRnJvbUpTT04iLCJmcm9tTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBc0JBOzs7ZUFBQTs7O2dDQXBCd0I7MkJBQ087MEJBRVI7eUJBQ0s7NkJBQ0k7eUJBQ0M7c0JBQ0c7NEJBQzJCO3NCQVFsQjtBQUU3QyxNQUFNLEVBQUVBLElBQUksRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHlCQUFjO01BRXRDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJB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
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return GeneratorDeclarationNode;
9
+ }
10
+ });
11
+ const _declaration = /*#__PURE__*/ _interop_require_default(require("../../node/declaration"));
12
+ const _constants = require("../../constants");
13
+ const _ruleNames = require("../../ruleNames");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ class GeneratorDeclarationNode extends _declaration.default {
20
+ isProvisional() {
21
+ let provisional = false;
22
+ this.someChildNode((childNode)=>{
23
+ const childNodeTerminalNode = childNode.isTerminalNode();
24
+ if (childNodeTerminalNode) {
25
+ const terminalNode = childNode, content = terminalNode.getContent(), contentProvisionally = content === _constants.PROVISIONALLY;
26
+ if (contentProvisionally) {
27
+ provisional = true;
28
+ return true;
29
+ }
30
+ }
31
+ });
32
+ return provisional;
33
+ }
34
+ getTypeNode() {
35
+ const ruleName = _ruleNames.TYPE_RULE_NAME, typeNode = this.getNodeByRuleName(ruleName);
36
+ return typeNode;
37
+ }
38
+ getGeneratorNode() {
39
+ const ruleName = _ruleNames.GENERATOR_RULE_NAME, generatorNode = this.getNodeByRuleName(ruleName);
40
+ return generatorNode;
41
+ }
42
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) {
43
+ return _declaration.default.fromRuleNameChildNodesOpacityAndPrecedence(GeneratorDeclarationNode, ruleName, childNodes, opacity, precedence);
44
+ }
45
+ }
46
+
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL2RlY2xhcmF0aW9uL2dlbmVyYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IERlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBQUk9WSVNJT05BTExZIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgR0VORVJBVE9SX1JVTEVfTkFNRSwgVFlQRV9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSBleHRlbmRzIERlY2xhcmF0aW9uTm9kZSB7XG4gIGlzUHJvdmlzaW9uYWwoKSB7XG4gICAgbGV0IHByb3Zpc2lvbmFsID0gZmFsc2U7XG5cbiAgICB0aGlzLnNvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3QgY2hpbGROb2RlVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICAgIGlmIChjaGlsZE5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gY2hpbGROb2RlLFxuICAgICAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgICAgY29udGVudFByb3Zpc2lvbmFsbHkgPSAoY29udGVudCA9PT0gUFJPVklTSU9OQUxMWSk7XG5cbiAgICAgICAgaWYgKGNvbnRlbnRQcm92aXNpb25hbGx5KSB7XG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSB0cnVlO1xuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcm92aXNpb25hbDtcbiAgfVxuXG4gIGdldFR5cGVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICAgdHlwZU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlTm9kZTtcbiAgfVxuXG4gIGdldEdlbmVyYXRvck5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBHRU5FUkFUT1JfUlVMRV9OQU1FLFxuICAgICAgICAgIGdlbmVyYXRvck5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBnZW5lcmF0b3JOb2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSkgeyByZXR1cm4gRGVjbGFyYXRpb25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZShHZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKTsgfVxufVxuIl0sIm5hbWVzIjpbIkdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSIsIkRlY2xhcmF0aW9uTm9kZSIsImlzUHJvdmlzaW9uYWwiLCJwcm92aXNpb25hbCIsInNvbWVDaGlsZE5vZGUiLCJjaGlsZE5vZGUiLCJjaGlsZE5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiY29udGVudFByb3Zpc2lvbmFsbHkiLCJQUk9WSVNJT05BTExZIiwiZ2V0VHlwZU5vZGUiLCJydWxlTmFtZSIsIlRZUEVfUlVMRV9OQU1FIiwidHlwZU5vZGUiLCJnZXROb2RlQnlSdWxlTmFtZSIsImdldEdlbmVyYXRvck5vZGUiLCJHRU5FUkFUT1JfUlVMRV9OQU1FIiwiZ2VuZXJhdG9yTm9kZSIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZSIsImNoaWxkTm9kZXMiLCJvcGFjaXR5IiwicHJlY2VkZW5jZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUFxQkE7OztvRUFMTzsyQkFFRTsyQkFDc0I7Ozs7OztBQUVyQyxNQUFNQSxpQ0FBaUNDLG9CQUFlO0lBQ25FQyxnQkFBZ0I7UUFDZCxJQUFJQyxjQUFjO1FBRWxCLElBQUksQ0FBQ0MsYUFBYSxDQUFDLENBQUNDO1lBQ2xCLE1BQU1DLHdCQUF3QkQsVUFBVUUsY0FBYztZQUV0RCxJQUFJRCx1QkFBdUI7Z0JBQ3pCLE1BQU1FLGVBQWVILFdBQ2ZJLFVBQVVELGFBQWFFLFVBQVUsSUFDakNDLHVCQUF3QkYsWUFBWUcsd0JBQWE7Z0JBRXZELElBQUlELHNCQUFzQjtvQkFDeEJSLGNBQWM7b0JBRWQsT0FBTztnQkFDVDtZQUNGO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUFVLGNBQWM7UUFDWixNQUFNQyxXQUFXQyx5QkFBYyxFQUN6QkMsV0FBVyxJQUFJLENBQUNDLGlCQUFpQixDQUFDSDtRQUV4QyxPQUFPRTtJQUNUO0lBRUFFLG1CQUFtQjtRQUNqQixNQUFNSixXQUFXSyw4QkFBbUIsRUFDOUJDLGdCQUFnQixJQUFJLENBQUNILGlCQUFpQixDQUFDSDtRQUU3QyxPQUFPTTtJQUNUO0lBRUEsT0FBT0MsMkNBQTJDUCxRQUFRLEVBQUVRLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUU7UUFBRSxPQUFPdkIsb0JBQWUsQ0FBQ29CLDBDQUEwQyxDQUFDckIsMEJBQTBCYyxVQUFVUSxZQUFZQyxTQUFTQztJQUFhO0FBQ3pPIn0=
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return GeneratorNode;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _ruleNames = require("../ruleNames");
13
+ class GeneratorNode extends _occamlanguages.NonTerminalNode {
14
+ getTermNode() {
15
+ const ruleName = _ruleNames.TERM_RULE_NAME, termNode = this.getNodeByRuleName(ruleName);
16
+ return termNode;
17
+ }
18
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) {
19
+ return _occamlanguages.NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(GeneratorNode, ruleName, childNodes, opacity, precedence);
20
+ }
21
+ }
22
+
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL2dlbmVyYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTm9uVGVybWluYWxOb2RlIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBURVJNX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR2VuZXJhdG9yTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldFRlcm1Ob2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVEVSTV9SVUxFX05BTUUsXG4gICAgICAgICAgdGVybU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0ZXJtTm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpIHsgcmV0dXJuIE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoR2VuZXJhdG9yTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpOyB9XG59XG4iXSwibmFtZXMiOlsiR2VuZXJhdG9yTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsImdldFRlcm1Ob2RlIiwicnVsZU5hbWUiLCJURVJNX1JVTEVfTkFNRSIsInRlcm1Ob2RlIiwiZ2V0Tm9kZUJ5UnVsZU5hbWUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJjaGlsZE5vZGVzIiwib3BhY2l0eSIsInByZWNlZGVuY2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBcUJBOzs7Z0NBSlc7MkJBRUQ7QUFFaEIsTUFBTUEsc0JBQXNCQywrQkFBZTtJQUN4REMsY0FBYztRQUNaLE1BQU1DLFdBQVdDLHlCQUFjLEVBQ3pCQyxXQUFXLElBQUksQ0FBQ0MsaUJBQWlCLENBQUNIO1FBRXhDLE9BQU9FO0lBQ1Q7SUFFQSxPQUFPRSwyQ0FBMkNKLFFBQVEsRUFBRUssVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRTtRQUFFLE9BQU9ULCtCQUFlLENBQUNNLDBDQUEwQyxDQUFDUCxlQUFlRyxVQUFVSyxZQUFZQyxTQUFTQztJQUFhO0FBQzlOIn0=
@@ -41,6 +41,7 @@ const _parameter = /*#__PURE__*/ _interop_require_default(require("./node/parame
41
41
  const _signature = /*#__PURE__*/ _interop_require_default(require("./node/signature"));
42
42
  const _axiom1 = /*#__PURE__*/ _interop_require_default(require("./node/body/axiom"));
43
43
  const _lemma1 = /*#__PURE__*/ _interop_require_default(require("./node/body/lemma"));
44
+ const _generator = /*#__PURE__*/ _interop_require_default(require("./node/generator"));
44
45
  const _constraint = /*#__PURE__*/ _interop_require_default(require("./node/constraint"));
45
46
  const _derivation = /*#__PURE__*/ _interop_require_default(require("./node/derivation"));
46
47
  const _combinator = /*#__PURE__*/ _interop_require_default(require("./node/combinator"));
@@ -85,6 +86,7 @@ const _implicit = /*#__PURE__*/ _interop_require_default(require("./node/assumpt
85
86
  const _parenthesisedLabels = /*#__PURE__*/ _interop_require_default(require("./node/parenthesisedLabels"));
86
87
  const _property2 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/property"));
87
88
  const _variable1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/variable"));
89
+ const _generator1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/generator"));
88
90
  const _combinator1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/combinator"));
89
91
  const _reference1 = /*#__PURE__*/ _interop_require_default(require("./node/substitution/reference"));
90
92
  const _statement1 = /*#__PURE__*/ _interop_require_default(require("./node/substitution/statement"));
@@ -129,6 +131,7 @@ const NonTerminalNodeMap = {
129
131
  [_ruleNames.DEDUCTION_RULE_NAME]: _deduction.default,
130
132
  [_ruleNames.PARAMETER_RULE_NAME]: _parameter.default,
131
133
  [_ruleNames.STATEMENT_RULE_NAME]: _statement.default,
134
+ [_ruleNames.GENERATOR_RULE_NAME]: _generator.default,
132
135
  [_ruleNames.AXIOM_BODY_RULE_NAME]: _axiom1.default,
133
136
  [_ruleNames.LEMMA_BODY_RULE_NAME]: _lemma1.default,
134
137
  [_ruleNames.COMBINATOR_RULE_NAME]: _combinator.default,
@@ -175,6 +178,7 @@ const NonTerminalNodeMap = {
175
178
  [_ruleNames.PARENTHESISED_LABELS_RULE_NAME]: _parenthesisedLabels.default,
176
179
  [_ruleNames.VARIABLE_DECLARATION_RULE_NAME]: _variable1.default,
177
180
  [_ruleNames.PROPERTY_DECLARATION_RULE_NAME]: _property2.default,
181
+ [_ruleNames.GENERATOR_DECLARATION_RULE_NAME]: _generator1.default,
178
182
  [_ruleNames.COMBINATOR_DECLARATION_RULE_NAME]: _combinator1.default,
179
183
  [_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME]: _statement1.default,
180
184
  [_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME]: _reference1.default,
@@ -184,4 +188,4 @@ const NonTerminalNodeMap = {
184
188
  };
185
189
  const _default = NonTerminalNodeMap;
186
190
 
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGVNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXJtTm9kZSBmcm9tIFwiLi9ub2RlL3Rlcm1cIjtcbmltcG9ydCBSdWxlTm9kZSBmcm9tIFwiLi9ub2RlL3J1bGVcIjtcbmltcG9ydCBTdGVwTm9kZSBmcm9tIFwiLi9ub2RlL3Byb29mQXNzZXJ0aW9uL3N0ZXBcIjtcbmltcG9ydCBUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL3R5cGVcIjtcbmltcG9ydCBHb2FsTm9kZSBmcm9tIFwiLi9ub2RlL2dvYWxcIjtcbmltcG9ydCBUeXBlc05vZGUgZnJvbSBcIi4vbm9kZS90eXBlc1wiO1xuaW1wb3J0IEVycm9yTm9kZSBmcm9tIFwiLi9ub2RlL2Vycm9yXCI7XG5pbXBvcnQgRnJhbWVOb2RlIGZyb20gXCIuL25vZGUvZnJhbWVcIjtcbmltcG9ydCBBeGlvbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbEFzc2VydGlvbi9heGlvbVwiO1xuaW1wb3J0IExlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL3RvcExldmVsQXNzZXJ0aW9uL2xlbW1hXCI7XG5pbXBvcnQgUHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvcHJvb2ZcIjtcbmltcG9ydCBMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbFwiO1xuaW1wb3J0IExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbHNcIjtcbmltcG9ydCBTY2hlbWFOb2RlIGZyb20gXCIuL25vZGUvc2NoZW1hXCI7XG5pbXBvcnQgU2VjdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zZWN0aW9uXCI7XG5pbXBvcnQgUHJlbWlzZU5vZGUgZnJvbSBcIi4vbm9kZS9wcm9vZkFzc2VydGlvbi9wcmVtaXNlXCI7XG5pbXBvcnQgVGhlb3JlbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbEFzc2VydGlvbi90aGVvcmVtXCI7XG5pbXBvcnQgQXJndW1lbnROb2RlIGZyb20gXCIuL25vZGUvYXJndW1lbnRcIjtcbmltcG9ydCBTdWJwcm9vZk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJwcm9vZlwiO1xuaW1wb3J0IFByb3BlcnR5Tm9kZSBmcm9tIFwiLi9ub2RlL3Byb3BlcnR5XCI7XG5pbXBvcnQgTWV0YVR5cGVOb2RlIGZyb20gXCIuL25vZGUvbWV0YVR5cGVcIjtcbmltcG9ydCBFcXVhbGl0eU5vZGUgZnJvbSBcIi4vbm9kZS9lcXVhbGl0eVwiO1xuaW1wb3J0IFZhcmlhYmxlTm9kZSBmcm9tIFwiLi9ub2RlL3ZhcmlhYmxlXCI7XG5pbXBvcnQgRG9jdW1lbnROb2RlIGZyb20gXCIuL25vZGUvZG9jdW1lbnRcIjtcbmltcG9ydCBSdWxlQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L3J1bGVcIjtcbmltcG9ydCBTdGF0ZW1lbnROb2RlIGZyb20gXCIuL25vZGUvc3RhdGVtZW50XCI7XG5pbXBvcnQgUmVmZXJlbmNlTm9kZSBmcm9tIFwiLi9ub2RlL3JlZmVyZW5jZVwiO1xuaW1wb3J0IERlZHVjdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWR1Y3Rpb25cIjtcbmltcG9ydCBKdWRnZW1lbnROb2RlIGZyb20gXCIuL25vZGUvanVkZ2VtZW50XCI7XG5pbXBvcnQgUGFyYW1ldGVyTm9kZSBmcm9tIFwiLi9ub2RlL3BhcmFtZXRlclwiO1xuaW1wb3J0IFNpZ25hdHVyZU5vZGUgZnJvbSBcIi4vbm9kZS9zaWduYXR1cmVcIjtcbmltcG9ydCBBeGlvbUJvZHlOb2RlIGZyb20gXCIuL25vZGUvYm9keS9heGlvbVwiO1xuaW1wb3J0IExlbW1hQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L2xlbW1hXCI7XG5pbXBvcnQgQ29uc3RyYWludE5vZGUgZnJvbSBcIi4vbm9kZS9jb25zdHJhaW50XCI7XG5pbXBvcnQgRGVyaXZhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZXJpdmF0aW9uXCI7XG5pbXBvcnQgQ29tYmluYXRvck5vZGUgZnJvbSBcIi4vbm9kZS9jb21iaW5hdG9yXCI7XG5pbXBvcnQgQ29uY2x1c2lvbk5vZGUgZnJvbSBcIi4vbm9kZS9jb25jbHVzaW9uXCI7XG5pbXBvcnQgQ29uamVjdHVyZU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbEFzc2VydGlvbi9jb25qZWN0dXJlXCI7XG5pbXBvcnQgSHlwb3RoZXNpc05vZGUgZnJvbSBcIi4vbm9kZS9oeXBvdGhlc2lzXCI7XG5pbXBvcnQgVHlwZVByZWZpeE5vZGUgZnJvbSBcIi4vbm9kZS90eXBlUHJlZml4XCI7XG5pbXBvcnQgQXNzdW1wdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3N1bXB0aW9uXCI7XG5pbXBvcnQgUnVsZUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvcnVsZVwiO1xuaW1wb3J0IFNjaGVtYUJvZHlOb2RlIGZyb20gXCIuL25vZGUvYm9keS9zY2hlbWFcIjtcbmltcG9ydCBTdXBwb3NpdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9wcm9vZkFzc2VydGlvbi9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IFBsYWNlaG9sZGVyTm9kZSBmcm9tIFwiLi9ub2RlL3BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgQ29uc3RydWN0b3JOb2RlIGZyb20gXCIuL25vZGUvY29uc3RydWN0b3JcIjtcbmltcG9ydCBFcXVpdmFsZW5jZU5vZGUgZnJvbSBcIi4vbm9kZS9lcXVpdmFsZW5jZVwiO1xuaW1wb3J0IFRoZW9yZW1Cb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvdGhlb3JlbVwiO1xuaW1wb3J0IEF4aW9tSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9heGlvbVwiO1xuaW1wb3J0IExlbW1hSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9sZW1tYVwiO1xuaW1wb3J0IEVxdWl2YWxlbmNlc05vZGUgZnJvbSBcIi4vbm9kZS9lcXVpdmFsZW5jZXNcIjtcbmltcG9ydCBNZXRhQXJndW1lbnROb2RlIGZyb20gXCIuL25vZGUvbWV0YUFyZ3VtZW50XCI7XG5pbXBvcnQgTWV0YXZhcmlhYmxlTm9kZSBmcm9tIFwiLi9ub2RlL21ldGF2YXJpYWJsZVwiO1xuaW1wb3J0IFNjaGVtYUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvc2NoZW1hXCI7XG5pbXBvcnQgUXVhbGlmaWNhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9xdWFsaWZpY2F0aW9uXCI7XG5pbXBvcnQgU3ViRGVyaXZhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJEZXJpdmF0aW9uXCI7XG5pbXBvcnQgVGhlb3JlbUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvdGhlb3JlbVwiO1xuaW1wb3J0IFR5cGVBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3R5cGVcIjtcbmltcG9ydCBQcm9jZWR1cmVDYWxsTm9kZSBmcm9tIFwiLi9ub2RlL3Byb2NlZHVyZUNhbGxcIjtcbmltcG9ydCBDb25qZWN0dXJlQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L2NvbmplY3R1cmVcIjtcbmltcG9ydCBUeXBlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vdHlwZVwiO1xuaW1wb3J0IFByb3BlcnR5UmVsYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvcHJvcGVydHlSZWxhdGlvblwiXG5pbXBvcnQgRGVmaW5lZEFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vZGVmaW5lZFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL3Rlcm1cIjtcbmltcG9ydCBDb25qZWN0dXJlSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9jb25qZWN0dXJlXCI7XG5pbXBvcnQgUHJvcGVydHlBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3Byb3BlcnR5XCI7XG5pbXBvcnQgU3VicHJvb2ZBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3N1YnByb29mXCI7XG5pbXBvcnQgRnJhbWVTdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL2ZyYW1lXCI7XG5pbXBvcnQgQ290eXBlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY290eXBlXCI7XG5pbXBvcnQgUGFyZW50aGVzaXNlZExhYmVsTm9kZSBmcm9tIFwiLi9ub2RlL3BhcmVudGhlc2lzZWRMYWJlbFwiO1xuaW1wb3J0IFByb2NlZHVyZVJlZmVyZW5jZU5vZGUgZnJvbSBcIi4vbm9kZS9wcm9jZWR1cmVSZWZlcmVuY2VcIjtcbmltcG9ydCBDb250YWluZWRBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL2NvbnRhaW5lZFwiO1xuaW1wb3J0IFNpZ25hdHVyZUFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vc2lnbmF0dXJlXCI7XG5pbXBvcnQgSW1wbGljaXRBc3N1bXB0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc3VtcHRpb24vaW1wbGljaXRcIjtcbmltcG9ydCBQYXJlbnRoZXNpc2VkTGFiZWxzTm9kZSBmcm9tIFwiLi9ub2RlL3BhcmVudGhlc2lzZWRMYWJlbHNcIlxuaW1wb3J0IFByb3BlcnR5RGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vcHJvcGVydHlcIjtcbmltcG9ydCBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3ZhcmlhYmxlXCI7XG5pbXBvcnQgQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbWJpbmF0b3JcIjtcbmltcG9ydCBSZWZlcmVuY2VTdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL3JlZmVyZW5jZVwiO1xuaW1wb3J0IFN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJzdGl0dXRpb24vc3RhdGVtZW50XCI7XG5pbXBvcnQgVHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3R5cGVQcmVmaXhcIjtcbmltcG9ydCBEb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7XG4gIFJVTEVfUlVMRV9OQU1FLFxuICBTVEVQX1JVTEVfTkFNRSxcbiAgVEVSTV9SVUxFX05BTUUsXG4gIFRZUEVfUlVMRV9OQU1FLFxuICBHT0FMX1JVTEVfTkFNRSxcbiAgVFlQRVNfUlVMRV9OQU1FLFxuICBQUk9PRl9SVUxFX05BTUUsXG4gIEVSUk9SX1JVTEVfTkFNRSxcbiAgRlJBTUVfUlVMRV9OQU1FLFxuICBBWElPTV9SVUxFX05BTUUsXG4gIExFTU1BX1JVTEVfTkFNRSxcbiAgTEFCRUxfUlVMRV9OQU1FLFxuICBTQ0hFTUFfUlVMRV9OQU1FLFxuICBMQUJFTFNfUlVMRV9OQU1FLFxuICBUSEVPUkVNX1JVTEVfTkFNRSxcbiAgUFJFTUlTRV9SVUxFX05BTUUsXG4gIFNFQ1RJT05fUlVMRV9OQU1FLFxuICBBUkdVTUVOVF9SVUxFX05BTUUsXG4gIFNVQlBST09GX1JVTEVfTkFNRSxcbiAgUFJPUEVSVFlfUlVMRV9OQU1FLFxuICBFUVVBTElUWV9SVUxFX05BTUUsXG4gIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgRE9DVU1FTlRfUlVMRV9OQU1FLFxuICBNRVRBX1RZUEVfUlVMRV9OQU1FLFxuICBTSUdOQVRVUkVfUlVMRV9OQU1FLFxuICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICBKVURHRU1FTlRfUlVMRV9OQU1FLFxuICBQQVJBTUVURVJfUlVMRV9OQU1FLFxuICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICBSVUxFX0JPRFlfUlVMRV9OQU1FLFxuICBERVJJVkFUSU9OX1JVTEVfTkFNRSxcbiAgQ09NQklOQVRPUl9SVUxFX05BTUUsXG4gIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICBDT05KRUNUVVJFX1JVTEVfTkFNRSxcbiAgSFlQT1RIRVNJU19SVUxFX05BTUUsXG4gIEFYSU9NX0JPRFlfUlVMRV9OQU1FLFxuICBMRU1NQV9CT0RZX1JVTEVfTkFNRSxcbiAgQVNTVU1QVElPTl9SVUxFX05BTUUsXG4gIENPTlNUUkFJTlRfUlVMRV9OQU1FLFxuICBQTEFDRUhPTERFUl9SVUxFX05BTUUsXG4gIFRZUEVfUFJFRklYX1JVTEVfTkFNRSxcbiAgU1VQUE9TSVRJT05fUlVMRV9OQU1FLFxuICBSVUxFX0hFQURFUl9SVUxFX05BTUUsXG4gIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgRVFVSVZBTEVOQ0VfUlVMRV9OQU1FLFxuICBTQ0hFTUFfQk9EWV9SVUxFX05BTUUsXG4gIEVRVUlWQUxFTkNFU19SVUxFX05BTUUsXG4gIEFYSU9NX0hFQURFUl9SVUxFX05BTUUsXG4gIExFTU1BX0hFQURFUl9SVUxFX05BTUUsXG4gIFRIRU9SRU1fQk9EWV9SVUxFX05BTUUsXG4gIE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsXG4gIFNDSEVNQV9IRUFERVJfUlVMRV9OQU1FLFxuICBRVUFMSUZJQ0FUSU9OX1JVTEVfTkFNRSxcbiAgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUsXG4gIFBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSxcbiAgVEhFT1JFTV9IRUFERVJfUlVMRV9OQU1FLFxuICBTVUJfREVSSVZBVElPTl9SVUxFX05BTUUsXG4gIFRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRSxcbiAgVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIENPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRSxcbiAgUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FLFxuICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgQ09UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgUFJPQ0VEVVJFX1JFRkVSRU5DRV9SVUxFX05BTUUsXG4gIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICBTSUdOQVRVUkVfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgUEFSRU5USEVTSVNFRF9MQUJFTF9SVUxFX05BTUUsXG4gIElNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FLFxuICBQQVJFTlRIRVNJU0VEX0xBQkVMU19SVUxFX05BTUUsXG4gIFBST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICBDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFRZUEVfUFJFRklYX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBOb25UZXJtaW5hbE5vZGVNYXAgPSB7XG4gIFtSVUxFX1JVTEVfTkFNRV06IFJ1bGVOb2RlLFxuICBbU1RFUF9SVUxFX05BTUVdOiBTdGVwTm9kZSxcbiAgW1RFUk1fUlVMRV9OQU1FXTogVGVybU5vZGUsXG4gIFtUWVBFX1JVTEVfTkFNRV06IFR5cGVOb2RlLFxuICBbR09BTF9SVUxFX05BTUVdOiBHb2FsTm9kZSxcbiAgW1RZUEVTX1JVTEVfTkFNRV06IFR5cGVzTm9kZSxcbiAgW0VSUk9SX1JVTEVfTkFNRV06IEVycm9yTm9kZSxcbiAgW0ZSQU1FX1JVTEVfTkFNRV06IEZyYW1lTm9kZSxcbiAgW0xFTU1BX1JVTEVfTkFNRV06IExlbW1hTm9kZSxcbiAgW0FYSU9NX1JVTEVfTkFNRV06IEF4aW9tTm9kZSxcbiAgW1BST09GX1JVTEVfTkFNRV06IFByb29mTm9kZSxcbiAgW0xBQkVMX1JVTEVfTkFNRV06IExhYmVsTm9kZSxcbiAgW1NDSEVNQV9SVUxFX05BTUVdOiBTY2hlbWFOb2RlLFxuICBbTEFCRUxTX1JVTEVfTkFNRV06IExhYmVsc05vZGUsXG4gIFtUSEVPUkVNX1JVTEVfTkFNRV06IFRoZW9yZW1Ob2RlLFxuICBbUFJFTUlTRV9SVUxFX05BTUVdOiBQcmVtaXNlTm9kZSxcbiAgW1NFQ1RJT05fUlVMRV9OQU1FXTogU2VjdGlvbk5vZGUsXG4gIFtBUkdVTUVOVF9SVUxFX05BTUVdOiBBcmd1bWVudE5vZGUsXG4gIFtQUk9QRVJUWV9SVUxFX05BTUVdOiBQcm9wZXJ0eU5vZGUsXG4gIFtTVUJQUk9PRl9SVUxFX05BTUVdOiBTdWJwcm9vZk5vZGUsXG4gIFtFUVVBTElUWV9SVUxFX05BTUVdOiBFcXVhbGl0eU5vZGUsXG4gIFtWQVJJQUJMRV9SVUxFX05BTUVdOiBWYXJpYWJsZU5vZGUsXG4gIFtET0NVTUVOVF9SVUxFX05BTUVdOiBEb2N1bWVudE5vZGUsXG4gIFtSVUxFX0JPRFlfUlVMRV9OQU1FXTogUnVsZUJvZHlOb2RlLFxuICBbTUVUQV9UWVBFX1JVTEVfTkFNRV06IE1ldGFUeXBlTm9kZSxcbiAgW1NJR05BVFVSRV9SVUxFX05BTUVdOiBTaWduYXR1cmVOb2RlLFxuICBbUkVGRVJFTkNFX1JVTEVfTkFNRV06IFJlZmVyZW5jZU5vZGUsXG4gIFtKVURHRU1FTlRfUlVMRV9OQU1FXTogSnVkZ2VtZW50Tm9kZSxcbiAgW0RFRFVDVElPTl9SVUxFX05BTUVdOiBEZWR1Y3Rpb25Ob2RlLFxuICBbUEFSQU1FVEVSX1JVTEVfTkFNRV06IFBhcmFtZXRlck5vZGUsXG4gIFtTVEFURU1FTlRfUlVMRV9OQU1FXTogU3RhdGVtZW50Tm9kZSxcbiAgW0FYSU9NX0JPRFlfUlVMRV9OQU1FXTogQXhpb21Cb2R5Tm9kZSxcbiAgW0xFTU1BX0JPRFlfUlVMRV9OQU1FXTogTGVtbWFCb2R5Tm9kZSxcbiAgW0NPTUJJTkFUT1JfUlVMRV9OQU1FXTogQ29tYmluYXRvck5vZGUsXG4gIFtDT05DTFVTSU9OX1JVTEVfTkFNRV06IENvbmNsdXNpb25Ob2RlLFxuICBbQ09OSkVDVFVSRV9SVUxFX05BTUVdOiBDb25qZWN0dXJlTm9kZSxcbiAgW0RFUklWQVRJT05fUlVMRV9OQU1FXTogRGVyaXZhdGlvbk5vZGUsXG4gIFtIWVBPVEhFU0lTX1JVTEVfTkFNRV06IEh5cG90aGVzaXNOb2RlLFxuICBbQVNTVU1QVElPTl9SVUxFX05BTUVdOiBBc3N1bXB0aW9uTm9kZSxcbiAgW0NPTlNUUkFJTlRfUlVMRV9OQU1FXTogQ29uc3RyYWludE5vZGUsXG4gIFtSVUxFX0hFQURFUl9SVUxFX05BTUVdOiBSdWxlSGVhZGVyTm9kZSxcbiAgW1RZUEVfUFJFRklYX1JVTEVfTkFNRV06IFR5cGVQcmVmaXhOb2RlLFxuICBbUExBQ0VIT0xERVJfUlVMRV9OQU1FXTogUGxhY2Vob2xkZXJOb2RlLFxuICBbU1VQUE9TSVRJT05fUlVMRV9OQU1FXTogU3VwcG9zaXRpb25Ob2RlLFxuICBbQ09OU1RSVUNUT1JfUlVMRV9OQU1FXTogQ29uc3RydWN0b3JOb2RlLFxuICBbRVFVSVZBTEVOQ0VfUlVMRV9OQU1FXTogRXF1aXZhbGVuY2VOb2RlLFxuICBbU0NIRU1BX0JPRFlfUlVMRV9OQU1FXTogU2NoZW1hQm9keU5vZGUsXG4gIFtBWElPTV9IRUFERVJfUlVMRV9OQU1FXTogQXhpb21IZWFkZXJOb2RlLFxuICBbTEVNTUFfSEVBREVSX1JVTEVfTkFNRV06IExlbW1hSGVhZGVyTm9kZSxcbiAgW1RIRU9SRU1fQk9EWV9SVUxFX05BTUVdOiBUaGVvcmVtQm9keU5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfUlVMRV9OQU1FXTogTWV0YXZhcmlhYmxlTm9kZSxcbiAgW0VRVUlWQUxFTkNFU19SVUxFX05BTUVdOiBFcXVpdmFsZW5jZXNOb2RlLFxuICBbTUVUQV9BUkdVTUVOVF9SVUxFX05BTUVdOiBNZXRhQXJndW1lbnROb2RlLFxuICBbU0NIRU1BX0hFQURFUl9SVUxFX05BTUVdOiBTY2hlbWFIZWFkZXJOb2RlLFxuICBbUVVBTElGSUNBVElPTl9SVUxFX05BTUVdOiBRdWFsaWZpY2F0aW9uTm9kZSxcbiAgW1BST0NFRFVSRV9DQUxMX1JVTEVfTkFNRV06IFByb2NlZHVyZUNhbGxOb2RlLFxuICBbVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FXTogVHlwZUFzc2VydGlvbk5vZGUsXG4gIFtTVUJfREVSSVZBVElPTl9SVUxFX05BTUVdOiBTdWJEZXJpdmF0aW9uTm9kZSxcbiAgW1RIRU9SRU1fSEVBREVSX1JVTEVfTkFNRV06IFRoZW9yZW1IZWFkZXJOb2RlLFxuICBbQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRV06IENvbmplY3R1cmVCb2R5Tm9kZSxcbiAgW1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogVHlwZURlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRV06IENvbmplY3R1cmVIZWFkZXJOb2RlLFxuICBbUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlSZWxhdGlvbk5vZGUsXG4gIFtERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUVdOiBEZWZpbmVkQXNzZXJ0aW9uTm9kZSxcbiAgW1RFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFRlcm1TdWJzdGl0dXRpb25Ob2RlLFxuICBbQ09UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IENvdHlwZURlY2xhcmF0aW9uTm9kZSxcbiAgW1NVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUVdOiBTdWJwcm9vZkFzc2VydGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlBc3NlcnRpb25Ob2RlLFxuICBbRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IEZyYW1lU3Vic3RpdHV0aW9uTm9kZSxcbiAgW1BST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FXTogUHJvY2VkdXJlUmVmZXJlbmNlTm9kZSxcbiAgW1BBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FXTogUGFyZW50aGVzaXNlZExhYmVsTm9kZSxcbiAgW1NJR05BVFVSRV9BU1NFUlRJT05fUlVMRV9OQU1FXTogU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSxcbiAgW0NPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FXTogQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSxcbiAgW0lNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FXTogSW1wbGljaXRBc3N1bXB0aW9uTm9kZSxcbiAgW1BBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRV06IFBhcmVudGhlc2lzZWRMYWJlbHNOb2RlLFxuICBbVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSxcbiAgW1NUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FXTogU3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZSxcbiAgW1JFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FXTogUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSxcbiAgW1RZUEVfUFJFRklYX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IFR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUsXG4gIFtDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBEb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSxcbiAgW01FVEFWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBNZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vblRlcm1pbmFsTm9kZU1hcDtcbiJdLCJuYW1lcyI6WyJOb25UZXJtaW5hbE5vZGVNYXAiLCJSVUxFX1JVTEVfTkFNRSIsIlJ1bGVOb2RlIiwiU1RFUF9SVUxFX05BTUUiLCJTdGVwTm9kZSIsIlRFUk1fUlVMRV9OQU1FIiwiVGVybU5vZGUiLCJUWVBFX1JVTEVfTkFNRSIsIlR5cGVOb2RlIiwiR09BTF9SVUxFX05BTUUiLCJHb2FsTm9kZSIsIlRZUEVTX1JVTEVfTkFNRSIsIlR5cGVzTm9kZSIsIkVSUk9SX1JVTEVfTkFNRSIsIkVycm9yTm9kZSIsIkZSQU1FX1JVTEVfTkFNRSIsIkZyYW1lTm9kZSIsIkxFTU1BX1JVTEVfTkFNRSIsIkxlbW1hTm9kZSIsIkFYSU9NX1JVTEVfTkFNRSIsIkF4aW9tTm9kZSIsIlBST09GX1JVTEVfTkFNRSIsIlByb29mTm9kZSIsIkxBQkVMX1JVTEVfTkFNRSIsIkxhYmVsTm9kZSIsIlNDSEVNQV9SVUxFX05BTUUiLCJTY2hlbWFOb2RlIiwiTEFCRUxTX1JVTEVfTkFNRSIsIkxhYmVsc05vZGUiLCJUSEVPUkVNX1JVTEVfTkFNRSIsIlRoZW9yZW1Ob2RlIiwiUFJFTUlTRV9SVUxFX05BTUUiLCJQcmVtaXNlTm9kZSIsIlNFQ1RJT05fUlVMRV9OQU1FIiwiU2VjdGlvbk5vZGUiLCJBUkdVTUVOVF9SVUxFX05BTUUiLCJBcmd1bWVudE5vZGUiLCJQUk9QRVJUWV9SVUxFX05BTUUiLCJQcm9wZXJ0eU5vZGUiLCJTVUJQUk9PRl9SVUxFX05BTUUiLCJTdWJwcm9vZk5vZGUiLCJFUVVBTElUWV9SVUxFX05BTUUiLCJFcXVhbGl0eU5vZGUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJWYXJpYWJsZU5vZGUiLCJET0NVTUVOVF9SVUxFX05BTUUiLCJEb2N1bWVudE5vZGUiLCJSVUxFX0JPRFlfUlVMRV9OQU1FIiwiUnVsZUJvZHlOb2RlIiwiTUVUQV9UWVBFX1JVTEVfTkFNRSIsIk1ldGFUeXBlTm9kZSIsIlNJR05BVFVSRV9SVUxFX05BTUUiLCJTaWduYXR1cmVOb2RlIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsIlJlZmVyZW5jZU5vZGUiLCJKVURHRU1FTlRfUlVMRV9OQU1FIiwiSnVkZ2VtZW50Tm9kZSIsIkRFRFVDVElPTl9SVUxFX05BTUUiLCJEZWR1Y3Rpb25Ob2RlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsIlBhcmFtZXRlck5vZGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwiU3RhdGVtZW50Tm9kZSIsIkFYSU9NX0JPRFlfUlVMRV9OQU1FIiwiQXhpb21Cb2R5Tm9kZSIsIkxFTU1BX0JPRFlfUlVMRV9OQU1FIiwiTGVtbWFCb2R5Tm9kZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiQ29tYmluYXRvck5vZGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsIkNvbmNsdXNpb25Ob2RlIiwiQ09OSkVDVFVSRV9SVUxFX05BTUUiLCJDb25qZWN0dXJlTm9kZSIsIkRFUklWQVRJT05fUlVMRV9OQU1FIiwiRGVyaXZhdGlvbk5vZGUiLCJIWVBPVEhFU0lTX1JVTEVfTkFNRSIsIkh5cG90aGVzaXNOb2RlIiwiQVNTVU1QVElPTl9SVUxFX05BTUUiLCJBc3N1bXB0aW9uTm9kZSIsIkNPTlNUUkFJTlRfUlVMRV9OQU1FIiwiQ29uc3RyYWludE5vZGUiLCJSVUxFX0hFQURFUl9SVUxFX05BTUUiLCJSdWxlSGVhZGVyTm9kZSIsIlRZUEVfUFJFRklYX1JVTEVfTkFNRSIsIlR5cGVQcmVmaXhOb2RlIiwiUExBQ0VIT0xERVJfUlVMRV9OQU1FIiwiUGxhY2Vob2xkZXJOb2RlIiwiU1VQUE9TSVRJT05fUlVMRV9OQU1FIiwiU3VwcG9zaXRpb25Ob2RlIiwiQ09OU1RSVUNUT1JfUlVMRV9OQU1FIiwiQ29uc3RydWN0b3JOb2RlIiwiRVFVSVZBTEVOQ0VfUlVMRV9OQU1FIiwiRXF1aXZhbGVuY2VOb2RlIiwiU0NIRU1BX0JPRFlfUlVMRV9OQU1FIiwiU2NoZW1hQm9keU5vZGUiLCJBWElPTV9IRUFERVJfUlVMRV9OQU1FIiwiQXhpb21IZWFkZXJOb2RlIiwiTEVNTUFfSEVBREVSX1JVTEVfTkFNRSIsIkxlbW1hSGVhZGVyTm9kZSIsIlRIRU9SRU1fQk9EWV9SVUxFX05BTUUiLCJUaGVvcmVtQm9keU5vZGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlTm9kZSIsIkVRVUlWQUxFTkNFU19SVUxFX05BTUUiLCJFcXVpdmFsZW5jZXNOb2RlIiwiTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUiLCJNZXRhQXJndW1lbnROb2RlIiwiU0NIRU1BX0hFQURFUl9SVUxFX05BTUUiLCJTY2hlbWFIZWFkZXJOb2RlIiwiUVVBTElGSUNBVElPTl9SVUxFX05BTUUiLCJRdWFsaWZpY2F0aW9uTm9kZSIsIlBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSIsIlByb2NlZHVyZUNhbGxOb2RlIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiVHlwZUFzc2VydGlvbk5vZGUiLCJTVUJfREVSSVZBVElPTl9SVUxFX05BTUUiLCJTdWJEZXJpdmF0aW9uTm9kZSIsIlRIRU9SRU1fSEVBREVSX1JVTEVfTkFNRSIsIlRoZW9yZW1IZWFkZXJOb2RlIiwiQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVCb2R5Tm9kZSIsIlRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVHlwZURlY2xhcmF0aW9uTm9kZSIsIkNPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVIZWFkZXJOb2RlIiwiUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlSZWxhdGlvbk5vZGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJEZWZpbmVkQXNzZXJ0aW9uTm9kZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlRlcm1TdWJzdGl0dXRpb25Ob2RlIiwiQ09UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIkNvdHlwZURlY2xhcmF0aW9uTm9kZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkZyYW1lU3Vic3RpdHV0aW9uTm9kZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUHJvY2VkdXJlUmVmZXJlbmNlTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FIiwiUGFyZW50aGVzaXNlZExhYmVsTm9kZSIsIlNJR05BVFVSRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIklNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FIiwiSW1wbGljaXRBc3N1bXB0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSIsIlBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiU3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZSIsIlJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSIsIlRZUEVfUFJFRklYX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIlR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUiLCJDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJEb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIk1FVEFWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJNZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlRQTs7O2VBQUE7Ozs2REEvUHFCOzZEQUNBOzZEQUNBOzZEQUNBOzZEQUNBOzhEQUNDOzhEQUNBOzhEQUNBOzhEQUNBOzhEQUNBOzhEQUNBOzhEQUNBOytEQUNDOytEQUNBO2dFQUNDO2dFQUNBO2dFQUNBO2lFQUNDO2lFQUNBO2lFQUNBO2lFQUNBO2lFQUNBO2lFQUNBO2lFQUNBOzhEQUNBO2tFQUNDO2tFQUNBO2tFQUNBO2tFQUNBO2tFQUNBO2tFQUNBOytEQUNBOytEQUNBO21FQUNDO21FQUNBO21FQUNBO21FQUNBO21FQUNBO21FQUNBO21FQUNBO21FQUNBOzhEQUNBO2dFQUNBO29FQUNDO29FQUNBO29FQUNBO29FQUNBO2lFQUNBOytEQUNBOytEQUNBO3FFQUNDO3FFQUNBO3FFQUNBO2dFQUNBO3NFQUNDO3NFQUNBO2lFQUNBOzhEQUNBO3NFQUNBO29FQUNDOzhEQUNDO3lFQUNDO2dFQUNBOzhEQUNBO29FQUNBO2tFQUNDO2tFQUNBOytEQUNBOytEQUNBOzJFQUNDOzJFQUNBO2tFQUNBO21FQUNBO2lFQUNBOzRFQUNDO2tFQUNBO2tFQUNBO29FQUNFO21FQUNBO21FQUNBO29FQUNBO3FFQUNDO3NFQUNDOzJCQXFGSTs7Ozs7O0FBRTVDLE1BQU1BLHFCQUFxQjtJQUN6QixDQUFDQyx5QkFBYyxDQUFDLEVBQUVDLGFBQVE7SUFDMUIsQ0FBQ0MseUJBQWMsQ0FBQyxFQUFFQyxhQUFRO0lBQzFCLENBQUNDLHlCQUFjLENBQUMsRUFBRUMsYUFBUTtJQUMxQixDQUFDQyx5QkFBYyxDQUFDLEVBQUVDLGFBQVE7SUFDMUIsQ0FBQ0MseUJBQWMsQ0FBQyxFQUFFQyxhQUFRO0lBQzFCLENBQUNDLDBC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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGVNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXJtTm9kZSBmcm9tIFwiLi9ub2RlL3Rlcm1cIjtcbmltcG9ydCBSdWxlTm9kZSBmcm9tIFwiLi9ub2RlL3J1bGVcIjtcbmltcG9ydCBTdGVwTm9kZSBmcm9tIFwiLi9ub2RlL3Byb29mQXNzZXJ0aW9uL3N0ZXBcIjtcbmltcG9ydCBUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL3R5cGVcIjtcbmltcG9ydCBHb2FsTm9kZSBmcm9tIFwiLi9ub2RlL2dvYWxcIjtcbmltcG9ydCBUeXBlc05vZGUgZnJvbSBcIi4vbm9kZS90eXBlc1wiO1xuaW1wb3J0IEVycm9yTm9kZSBmcm9tIFwiLi9ub2RlL2Vycm9yXCI7XG5pbXBvcnQgRnJhbWVOb2RlIGZyb20gXCIuL25vZGUvZnJhbWVcIjtcbmltcG9ydCBBeGlvbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbEFzc2VydGlvbi9heGlvbVwiO1xuaW1wb3J0IExlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL3RvcExldmVsQXNzZXJ0aW9uL2xlbW1hXCI7XG5pbXBvcnQgUHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvcHJvb2ZcIjtcbmltcG9ydCBMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbFwiO1xuaW1wb3J0IExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbHNcIjtcbmltcG9ydCBTY2hlbWFOb2RlIGZyb20gXCIuL25vZGUvc2NoZW1hXCI7XG5pbXBvcnQgU2VjdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zZWN0aW9uXCI7XG5pbXBvcnQgUHJlbWlzZU5vZGUgZnJvbSBcIi4vbm9kZS9wcm9vZkFzc2VydGlvbi9wcmVtaXNlXCI7XG5pbXBvcnQgVGhlb3JlbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbEFzc2VydGlvbi90aGVvcmVtXCI7XG5pbXBvcnQgQXJndW1lbnROb2RlIGZyb20gXCIuL25vZGUvYXJndW1lbnRcIjtcbmltcG9ydCBTdWJwcm9vZk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJwcm9vZlwiO1xuaW1wb3J0IFByb3BlcnR5Tm9kZSBmcm9tIFwiLi9ub2RlL3Byb3BlcnR5XCI7XG5pbXBvcnQgTWV0YVR5cGVOb2RlIGZyb20gXCIuL25vZGUvbWV0YVR5cGVcIjtcbmltcG9ydCBFcXVhbGl0eU5vZGUgZnJvbSBcIi4vbm9kZS9lcXVhbGl0eVwiO1xuaW1wb3J0IFZhcmlhYmxlTm9kZSBmcm9tIFwiLi9ub2RlL3ZhcmlhYmxlXCI7XG5pbXBvcnQgRG9jdW1lbnROb2RlIGZyb20gXCIuL25vZGUvZG9jdW1lbnRcIjtcbmltcG9ydCBSdWxlQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L3J1bGVcIjtcbmltcG9ydCBTdGF0ZW1lbnROb2RlIGZyb20gXCIuL25vZGUvc3RhdGVtZW50XCI7XG5pbXBvcnQgUmVmZXJlbmNlTm9kZSBmcm9tIFwiLi9ub2RlL3JlZmVyZW5jZVwiO1xuaW1wb3J0IERlZHVjdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWR1Y3Rpb25cIjtcbmltcG9ydCBKdWRnZW1lbnROb2RlIGZyb20gXCIuL25vZGUvanVkZ2VtZW50XCI7XG5pbXBvcnQgUGFyYW1ldGVyTm9kZSBmcm9tIFwiLi9ub2RlL3BhcmFtZXRlclwiO1xuaW1wb3J0IFNpZ25hdHVyZU5vZGUgZnJvbSBcIi4vbm9kZS9zaWduYXR1cmVcIjtcbmltcG9ydCBBeGlvbUJvZHlOb2RlIGZyb20gXCIuL25vZGUvYm9keS9heGlvbVwiO1xuaW1wb3J0IExlbW1hQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L2xlbW1hXCI7XG5pbXBvcnQgR2VuZXJhdG9yTm9kZSBmcm9tIFwiLi9ub2RlL2dlbmVyYXRvclwiO1xuaW1wb3J0IENvbnN0cmFpbnROb2RlIGZyb20gXCIuL25vZGUvY29uc3RyYWludFwiO1xuaW1wb3J0IERlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVyaXZhdGlvblwiO1xuaW1wb3J0IENvbWJpbmF0b3JOb2RlIGZyb20gXCIuL25vZGUvY29tYmluYXRvclwiO1xuaW1wb3J0IENvbmNsdXNpb25Ob2RlIGZyb20gXCIuL25vZGUvY29uY2x1c2lvblwiO1xuaW1wb3J0IENvbmplY3R1cmVOb2RlIGZyb20gXCIuL25vZGUvdG9wTGV2ZWxBc3NlcnRpb24vY29uamVjdHVyZVwiO1xuaW1wb3J0IEh5cG90aGVzaXNOb2RlIGZyb20gXCIuL25vZGUvaHlwb3RoZXNpc1wiO1xuaW1wb3J0IFR5cGVQcmVmaXhOb2RlIGZyb20gXCIuL25vZGUvdHlwZVByZWZpeFwiO1xuaW1wb3J0IEFzc3VtcHRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzdW1wdGlvblwiO1xuaW1wb3J0IFJ1bGVIZWFkZXJOb2RlIGZyb20gXCIuL25vZGUvaGVhZGVyL3J1bGVcIjtcbmltcG9ydCBTY2hlbWFCb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvc2NoZW1hXCI7XG5pbXBvcnQgU3VwcG9zaXRpb25Ob2RlIGZyb20gXCIuL25vZGUvcHJvb2ZBc3NlcnRpb24vc3VwcG9zaXRpb25cIjtcbmltcG9ydCBQbGFjZWhvbGRlck5vZGUgZnJvbSBcIi4vbm9kZS9wbGFjZWhvbGRlclwiO1xuaW1wb3J0IENvbnN0cnVjdG9yTm9kZSBmcm9tIFwiLi9ub2RlL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgRXF1aXZhbGVuY2VOb2RlIGZyb20gXCIuL25vZGUvZXF1aXZhbGVuY2VcIjtcbmltcG9ydCBUaGVvcmVtQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L3RoZW9yZW1cIjtcbmltcG9ydCBBeGlvbUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvYXhpb21cIjtcbmltcG9ydCBMZW1tYUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvbGVtbWFcIjtcbmltcG9ydCBFcXVpdmFsZW5jZXNOb2RlIGZyb20gXCIuL25vZGUvZXF1aXZhbGVuY2VzXCI7XG5pbXBvcnQgTWV0YUFyZ3VtZW50Tm9kZSBmcm9tIFwiLi9ub2RlL21ldGFBcmd1bWVudFwiO1xuaW1wb3J0IE1ldGF2YXJpYWJsZU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBTY2hlbWFIZWFkZXJOb2RlIGZyb20gXCIuL25vZGUvaGVhZGVyL3NjaGVtYVwiO1xuaW1wb3J0IFF1YWxpZmljYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvcXVhbGlmaWNhdGlvblwiO1xuaW1wb3J0IFN1YkRlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IFRoZW9yZW1IZWFkZXJOb2RlIGZyb20gXCIuL25vZGUvaGVhZGVyL3RoZW9yZW1cIjtcbmltcG9ydCBUeXBlQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi90eXBlXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbE5vZGUgZnJvbSBcIi4vbm9kZS9wcm9jZWR1cmVDYWxsXCI7XG5pbXBvcnQgQ29uamVjdHVyZUJvZHlOb2RlIGZyb20gXCIuL25vZGUvYm9keS9jb25qZWN0dXJlXCI7XG5pbXBvcnQgVHlwZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3R5cGVcIjtcbmltcG9ydCBQcm9wZXJ0eVJlbGF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3Byb3BlcnR5UmVsYXRpb25cIlxuaW1wb3J0IERlZmluZWRBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL2RlZmluZWRcIjtcbmltcG9ydCBUZXJtU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5pbXBvcnQgQ29uamVjdHVyZUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvY29uamVjdHVyZVwiO1xuaW1wb3J0IFByb3BlcnR5QXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IEZyYW1lU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi9mcmFtZVwiO1xuaW1wb3J0IENvdHlwZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvdHlwZVwiO1xuaW1wb3J0IFBhcmVudGhlc2lzZWRMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9wYXJlbnRoZXNpc2VkTGFiZWxcIjtcbmltcG9ydCBQcm9jZWR1cmVSZWZlcmVuY2VOb2RlIGZyb20gXCIuL25vZGUvcHJvY2VkdXJlUmVmZXJlbmNlXCI7XG5pbXBvcnQgQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9jb250YWluZWRcIjtcbmltcG9ydCBTaWduYXR1cmVBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3NpZ25hdHVyZVwiO1xuaW1wb3J0IEltcGxpY2l0QXNzdW1wdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3N1bXB0aW9uL2ltcGxpY2l0XCI7XG5pbXBvcnQgUGFyZW50aGVzaXNlZExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9wYXJlbnRoZXNpc2VkTGFiZWxzXCJcbmltcG9ydCBQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3Byb3BlcnR5XCI7XG5pbXBvcnQgVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi92YXJpYWJsZVwiO1xuaW1wb3J0IEdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2dlbmVyYXRvclwiO1xuaW1wb3J0IENvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9jb21iaW5hdG9yXCI7XG5pbXBvcnQgUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi9yZWZlcmVuY2VcIjtcbmltcG9ydCBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL3N0YXRlbWVudFwiO1xuaW1wb3J0IFR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi90eXBlUHJlZml4XCI7XG5pbXBvcnQgRG9uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9jb25zdHJ1Y3RvclwiO1xuaW1wb3J0IE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQge1xuICBSVUxFX1JVTEVfTkFNRSxcbiAgU1RFUF9SVUxFX05BTUUsXG4gIFRFUk1fUlVMRV9OQU1FLFxuICBUWVBFX1JVTEVfTkFNRSxcbiAgR09BTF9SVUxFX05BTUUsXG4gIFRZUEVTX1JVTEVfTkFNRSxcbiAgUFJPT0ZfUlVMRV9OQU1FLFxuICBFUlJPUl9SVUxFX05BTUUsXG4gIEZSQU1FX1JVTEVfTkFNRSxcbiAgQVhJT01fUlVMRV9OQU1FLFxuICBMRU1NQV9SVUxFX05BTUUsXG4gIExBQkVMX1JVTEVfTkFNRSxcbiAgU0NIRU1BX1JVTEVfTkFNRSxcbiAgTEFCRUxTX1JVTEVfTkFNRSxcbiAgVEhFT1JFTV9SVUxFX05BTUUsXG4gIFBSRU1JU0VfUlVMRV9OQU1FLFxuICBTRUNUSU9OX1JVTEVfTkFNRSxcbiAgQVJHVU1FTlRfUlVMRV9OQU1FLFxuICBTVUJQUk9PRl9SVUxFX05BTUUsXG4gIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgRVFVQUxJVFlfUlVMRV9OQU1FLFxuICBWQVJJQUJMRV9SVUxFX05BTUUsXG4gIERPQ1VNRU5UX1JVTEVfTkFNRSxcbiAgTUVUQV9UWVBFX1JVTEVfTkFNRSxcbiAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgREVEVUNUSU9OX1JVTEVfTkFNRSxcbiAgSlVER0VNRU5UX1JVTEVfTkFNRSxcbiAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgUlVMRV9CT0RZX1JVTEVfTkFNRSxcbiAgR0VORVJBVE9SX1JVTEVfTkFNRSxcbiAgREVSSVZBVElPTl9SVUxFX05BTUUsXG4gIENPTUJJTkFUT1JfUlVMRV9OQU1FLFxuICBDT05DTFVTSU9OX1JVTEVfTkFNRSxcbiAgQ09OSkVDVFVSRV9SVUxFX05BTUUsXG4gIEhZUE9USEVTSVNfUlVMRV9OQU1FLFxuICBBWElPTV9CT0RZX1JVTEVfTkFNRSxcbiAgTEVNTUFfQk9EWV9SVUxFX05BTUUsXG4gIEFTU1VNUFRJT05fUlVMRV9OQU1FLFxuICBDT05TVFJBSU5UX1JVTEVfTkFNRSxcbiAgUExBQ0VIT0xERVJfUlVMRV9OQU1FLFxuICBUWVBFX1BSRUZJWF9SVUxFX05BTUUsXG4gIFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgUlVMRV9IRUFERVJfUlVMRV9OQU1FLFxuICBDT05TVFJVQ1RPUl9SVUxFX05BTUUsXG4gIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgU0NIRU1BX0JPRFlfUlVMRV9OQU1FLFxuICBFUVVJVkFMRU5DRVNfUlVMRV9OQU1FLFxuICBBWElPTV9IRUFERVJfUlVMRV9OQU1FLFxuICBMRU1NQV9IRUFERVJfUlVMRV9OQU1FLFxuICBUSEVPUkVNX0JPRFlfUlVMRV9OQU1FLFxuICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICBTQ0hFTUFfSEVBREVSX1JVTEVfTkFNRSxcbiAgUVVBTElGSUNBVElPTl9SVUxFX05BTUUsXG4gIE1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FLFxuICBQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUsXG4gIFRIRU9SRU1fSEVBREVSX1JVTEVfTkFNRSxcbiAgU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FLFxuICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIENPTkpFQ1RVUkVfQk9EWV9SVUxFX05BTUUsXG4gIFRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICBDT05KRUNUVVJFX0hFQURFUl9SVUxFX05BTUUsXG4gIFBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSxcbiAgREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gIENPVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIFBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gIFBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICBDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIFBBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FLFxuICBJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSxcbiAgUEFSRU5USEVTSVNFRF9MQUJFTFNfUlVMRV9OQU1FLFxuICBQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgR0VORVJBVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgQ09NQklOQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICBTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICBUWVBFX1BSRUZJWF9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIE1FVEFWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgTm9uVGVybWluYWxOb2RlTWFwID0ge1xuICBbUlVMRV9SVUxFX05BTUVdOiBSdWxlTm9kZSxcbiAgW1NURVBfUlVMRV9OQU1FXTogU3RlcE5vZGUsXG4gIFtURVJNX1JVTEVfTkFNRV06IFRlcm1Ob2RlLFxuICBbVFlQRV9SVUxFX05BTUVdOiBUeXBlTm9kZSxcbiAgW0dPQUxfUlVMRV9OQU1FXTogR29hbE5vZGUsXG4gIFtUWVBFU19SVUxFX05BTUVdOiBUeXBlc05vZGUsXG4gIFtFUlJPUl9SVUxFX05BTUVdOiBFcnJvck5vZGUsXG4gIFtGUkFNRV9SVUxFX05BTUVdOiBGcmFtZU5vZGUsXG4gIFtMRU1NQV9SVUxFX05BTUVdOiBMZW1tYU5vZGUsXG4gIFtBWElPTV9SVUxFX05BTUVdOiBBeGlvbU5vZGUsXG4gIFtQUk9PRl9SVUxFX05BTUVdOiBQcm9vZk5vZGUsXG4gIFtMQUJFTF9SVUxFX05BTUVdOiBMYWJlbE5vZGUsXG4gIFtTQ0hFTUFfUlVMRV9OQU1FXTogU2NoZW1hTm9kZSxcbiAgW0xBQkVMU19SVUxFX05BTUVdOiBMYWJlbHNOb2RlLFxuICBbVEhFT1JFTV9SVUxFX05BTUVdOiBUaGVvcmVtTm9kZSxcbiAgW1BSRU1JU0VfUlVMRV9OQU1FXTogUHJlbWlzZU5vZGUsXG4gIFtTRUNUSU9OX1JVTEVfTkFNRV06IFNlY3Rpb25Ob2RlLFxuICBbQVJHVU1FTlRfUlVMRV9OQU1FXTogQXJndW1lbnROb2RlLFxuICBbUFJPUEVSVFlfUlVMRV9OQU1FXTogUHJvcGVydHlOb2RlLFxuICBbU1VCUFJPT0ZfUlVMRV9OQU1FXTogU3VicHJvb2ZOb2RlLFxuICBbRVFVQUxJVFlfUlVMRV9OQU1FXTogRXF1YWxpdHlOb2RlLFxuICBbVkFSSUFCTEVfUlVMRV9OQU1FXTogVmFyaWFibGVOb2RlLFxuICBbRE9DVU1FTlRfUlVMRV9OQU1FXTogRG9jdW1lbnROb2RlLFxuICBbUlVMRV9CT0RZX1JVTEVfTkFNRV06IFJ1bGVCb2R5Tm9kZSxcbiAgW01FVEFfVFlQRV9SVUxFX05BTUVdOiBNZXRhVHlwZU5vZGUsXG4gIFtTSUdOQVRVUkVfUlVMRV9OQU1FXTogU2lnbmF0dXJlTm9kZSxcbiAgW1JFRkVSRU5DRV9SVUxFX05BTUVdOiBSZWZlcmVuY2VOb2RlLFxuICBbSlVER0VNRU5UX1JVTEVfTkFNRV06IEp1ZGdlbWVudE5vZGUsXG4gIFtERURVQ1RJT05fUlVMRV9OQU1FXTogRGVkdWN0aW9uTm9kZSxcbiAgW1BBUkFNRVRFUl9SVUxFX05BTUVdOiBQYXJhbWV0ZXJOb2RlLFxuICBbU1RBVEVNRU5UX1JVTEVfTkFNRV06IFN0YXRlbWVudE5vZGUsXG4gIFtHRU5FUkFUT1JfUlVMRV9OQU1FXTogR2VuZXJhdG9yTm9kZSxcbiAgW0FYSU9NX0JPRFlfUlVMRV9OQU1FXTogQXhpb21Cb2R5Tm9kZSxcbiAgW0xFTU1BX0JPRFlfUlVMRV9OQU1FXTogTGVtbWFCb2R5Tm9kZSxcbiAgW0NPTUJJTkFUT1JfUlVMRV9OQU1FXTogQ29tYmluYXRvck5vZGUsXG4gIFtDT05DTFVTSU9OX1JVTEVfTkFNRV06IENvbmNsdXNpb25Ob2RlLFxuICBbQ09OSkVDVFVSRV9SVUxFX05BTUVdOiBDb25qZWN0dXJlTm9kZSxcbiAgW0RFUklWQVRJT05fUlVMRV9OQU1FXTogRGVyaXZhdGlvbk5vZGUsXG4gIFtIWVBPVEhFU0lTX1JVTEVfTkFNRV06IEh5cG90aGVzaXNOb2RlLFxuICBbQVNTVU1QVElPTl9SVUxFX05BTUVdOiBBc3N1bXB0aW9uTm9kZSxcbiAgW0NPTlNUUkFJTlRfUlVMRV9OQU1FXTogQ29uc3RyYWludE5vZGUsXG4gIFtSVUxFX0hFQURFUl9SVUxFX05BTUVdOiBSdWxlSGVhZGVyTm9kZSxcbiAgW1RZUEVfUFJFRklYX1JVTEVfTkFNRV06IFR5cGVQcmVmaXhOb2RlLFxuICBbUExBQ0VIT0xERVJfUlVMRV9OQU1FXTogUGxhY2Vob2xkZXJOb2RlLFxuICBbU1VQUE9TSVRJT05fUlVMRV9OQU1FXTogU3VwcG9zaXRpb25Ob2RlLFxuICBbQ09OU1RSVUNUT1JfUlVMRV9OQU1FXTogQ29uc3RydWN0b3JOb2RlLFxuICBbRVFVSVZBTEVOQ0VfUlVMRV9OQU1FXTogRXF1aXZhbGVuY2VOb2RlLFxuICBbU0NIRU1BX0JPRFlfUlVMRV9OQU1FXTogU2NoZW1hQm9keU5vZGUsXG4gIFtBWElPTV9IRUFERVJfUlVMRV9OQU1FXTogQXhpb21IZWFkZXJOb2RlLFxuICBbTEVNTUFfSEVBREVSX1JVTEVfTkFNRV06IExlbW1hSGVhZGVyTm9kZSxcbiAgW1RIRU9SRU1fQk9EWV9SVUxFX05BTUVdOiBUaGVvcmVtQm9keU5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfUlVMRV9OQU1FXTogTWV0YXZhcmlhYmxlTm9kZSxcbiAgW0VRVUlWQUxFTkNFU19SVUxFX05BTUVdOiBFcXVpdmFsZW5jZXNOb2RlLFxuICBbTUVUQV9BUkdVTUVOVF9SVUxFX05BTUVdOiBNZXRhQXJndW1lbnROb2RlLFxuICBbU0NIRU1BX0hFQURFUl9SVUxFX05BTUVdOiBTY2hlbWFIZWFkZXJOb2RlLFxuICBbUVVBTElGSUNBVElPTl9SVUxFX05BTUVdOiBRdWFsaWZpY2F0aW9uTm9kZSxcbiAgW1BST0NFRFVSRV9DQUxMX1JVTEVfTkFNRV06IFByb2NlZHVyZUNhbGxOb2RlLFxuICBbVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FXTogVHlwZUFzc2VydGlvbk5vZGUsXG4gIFtTVUJfREVSSVZBVElPTl9SVUxFX05BTUVdOiBTdWJEZXJpdmF0aW9uTm9kZSxcbiAgW1RIRU9SRU1fSEVBREVSX1JVTEVfTkFNRV06IFRoZW9yZW1IZWFkZXJOb2RlLFxuICBbQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRV06IENvbmplY3R1cmVCb2R5Tm9kZSxcbiAgW1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogVHlwZURlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRV06IENvbmplY3R1cmVIZWFkZXJOb2RlLFxuICBbUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlSZWxhdGlvbk5vZGUsXG4gIFtERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUVdOiBEZWZpbmVkQXNzZXJ0aW9uTm9kZSxcbiAgW1RFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFRlcm1TdWJzdGl0dXRpb25Ob2RlLFxuICBbQ09UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IENvdHlwZURlY2xhcmF0aW9uTm9kZSxcbiAgW1NVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUVdOiBTdWJwcm9vZkFzc2VydGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlBc3NlcnRpb25Ob2RlLFxuICBbRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IEZyYW1lU3Vic3RpdHV0aW9uTm9kZSxcbiAgW1BST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FXTogUHJvY2VkdXJlUmVmZXJlbmNlTm9kZSxcbiAgW1BBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FXTogUGFyZW50aGVzaXNlZExhYmVsTm9kZSxcbiAgW1NJR05BVFVSRV9BU1NFUlRJT05fUlVMRV9OQU1FXTogU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSxcbiAgW0NPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FXTogQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSxcbiAgW0lNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FXTogSW1wbGljaXRBc3N1bXB0aW9uTm9kZSxcbiAgW1BBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRV06IFBhcmVudGhlc2lzZWRMYWJlbHNOb2RlLFxuICBbVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSxcbiAgW0dFTkVSQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBHZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUsXG4gIFtDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IENvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsXG4gIFtTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGUsXG4gIFtSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFJlZmVyZW5jZVN1YnN0aXR1dGlvbk5vZGUsXG4gIFtUWVBFX1BSRUZJWF9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBUeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlLFxuICBbQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogRG9uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb25UZXJtaW5hbE5vZGVNYXA7XG4iXSwibmFtZXMiOlsiTm9uVGVybWluYWxOb2RlTWFwIiwiUlVMRV9SVUxFX05BTUUiLCJSdWxlTm9kZSIsIlNURVBfUlVMRV9OQU1FIiwiU3RlcE5vZGUiLCJURVJNX1JVTEVfTkFNRSIsIlRlcm1Ob2RlIiwiVFlQRV9SVUxFX05BTUUiLCJUeXBlTm9kZSIsIkdPQUxfUlVMRV9OQU1FIiwiR29hbE5vZGUiLCJUWVBFU19SVUxFX05BTUUiLCJUeXBlc05vZGUiLCJFUlJPUl9SVUxFX05BTUUiLCJFcnJvck5vZGUiLCJGUkFNRV9SVUxFX05BTUUiLCJGcmFtZU5vZGUiLCJMRU1NQV9SVUxFX05BTUUiLCJMZW1tYU5vZGUiLCJBWElPTV9SVUxFX05BTUUiLCJBeGlvbU5vZGUiLCJQUk9PRl9SVUxFX05BTUUiLCJQcm9vZk5vZGUiLCJMQUJFTF9SVUxFX05BTUUiLCJMYWJlbE5vZGUiLCJTQ0hFTUFfUlVMRV9OQU1FIiwiU2NoZW1hTm9kZSIsIkxBQkVMU19SVUxFX05BTUUiLCJMYWJlbHNOb2RlIiwiVEhFT1JFTV9SVUxFX05BTUUiLCJUaGVvcmVtTm9kZSIsIlBSRU1JU0VfUlVMRV9OQU1FIiwiUHJlbWlzZU5vZGUiLCJTRUNUSU9OX1JVTEVfTkFNRSIsIlNlY3Rpb25Ob2RlIiwiQVJHVU1FTlRfUlVMRV9OQU1FIiwiQXJndW1lbnROb2RlIiwiUFJPUEVSVFlfUlVMRV9OQU1FIiwiUHJvcGVydHlOb2RlIiwiU1VCUFJPT0ZfUlVMRV9OQU1FIiwiU3VicHJvb2ZOb2RlIiwiRVFVQUxJVFlfUlVMRV9OQU1FIiwiRXF1YWxpdHlOb2RlIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwiVmFyaWFibGVOb2RlIiwiRE9DVU1FTlRfUlVMRV9OQU1FIiwiRG9jdW1lbnROb2RlIiwiUlVMRV9CT0RZX1JVTEVfTkFNRSIsIlJ1bGVCb2R5Tm9kZSIsIk1FVEFfVFlQRV9SVUxFX05BTUUiLCJNZXRhVHlwZU5vZGUiLCJTSUdOQVRVUkVfUlVMRV9OQU1FIiwiU2lnbmF0dXJlTm9kZSIsIlJFRkVSRU5DRV9SVUxFX05BTUUiLCJSZWZlcmVuY2VOb2RlIiwiSlVER0VNRU5UX1JVTEVfTkFNRSIsIkp1ZGdlbWVudE5vZGUiLCJERURVQ1RJT05fUlVMRV9OQU1FIiwiRGVkdWN0aW9uTm9kZSIsIlBBUkFNRVRFUl9SVUxFX05BTUUiLCJQYXJhbWV0ZXJOb2RlIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsIlN0YXRlbWVudE5vZGUiLCJHRU5FUkFUT1JfUlVMRV9OQU1FIiwiR2VuZXJhdG9yTm9kZSIsIkFYSU9NX0JPRFlfUlVMRV9OQU1FIiwiQXhpb21Cb2R5Tm9kZSIsIkxFTU1BX0JPRFlfUlVMRV9OQU1FIiwiTGVtbWFCb2R5Tm9kZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiQ29tYmluYXRvck5vZGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsIkNvbmNsdXNpb25Ob2RlIiwiQ09OSkVDVFVSRV9SVUxFX05BTUUiLCJDb25qZWN0dXJlTm9kZSIsIkRFUklWQVRJT05fUlVMRV9OQU1FIiwiRGVyaXZhdGlvbk5vZGUiLCJIWVBPVEhFU0lTX1JVTEVfTkFNRSIsIkh5cG90aGVzaXNOb2RlIiwiQVNTVU1QVElPTl9SVUxFX05BTUUiLCJBc3N1bXB0aW9uTm9kZSIsIkNPTlNUUkFJTlRfUlVMRV9OQU1FIiwiQ29uc3RyYWludE5vZGUiLCJSVUxFX0hFQURFUl9SVUxFX05BTUUiLCJSdWxlSGVhZGVyTm9kZSIsIlRZUEVfUFJFRklYX1JVTEVfTkFNRSIsIlR5cGVQcmVmaXhOb2RlIiwiUExBQ0VIT0xERVJfUlVMRV9OQU1FIiwiUGxhY2Vob2xkZXJOb2RlIiwiU1VQUE9TSVRJT05fUlVMRV9OQU1FIiwiU3VwcG9zaXRpb25Ob2RlIiwiQ09OU1RSVUNUT1JfUlVMRV9OQU1FIiwiQ29uc3RydWN0b3JOb2RlIiwiRVFVSVZBTEVOQ0VfUlVMRV9OQU1FIiwiRXF1aXZhbGVuY2VOb2RlIiwiU0NIRU1BX0JPRFlfUlVMRV9OQU1FIiwiU2NoZW1hQm9keU5vZGUiLCJBWElPTV9IRUFERVJfUlVMRV9OQU1FIiwiQXhpb21IZWFkZXJOb2RlIiwiTEVNTUFfSEVBREVSX1JVTEVfTkFNRSIsIkxlbW1hSGVhZGVyTm9kZSIsIlRIRU9SRU1fQk9EWV9SVUxFX05BTUUiLCJUaGVvcmVtQm9keU5vZGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlTm9kZSIsIkVRVUlWQUxFTkNFU19SVUxFX05BTUUiLCJFcXVpdmFsZW5jZXNOb2RlIiwiTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUiLCJNZXRhQXJndW1lbnROb2RlIiwiU0NIRU1BX0hFQURFUl9SVUxFX05BTUUiLCJTY2hlbWFIZWFkZXJOb2RlIiwiUVVBTElGSUNBVElPTl9SVUxFX05BTUUiLCJRdWFsaWZpY2F0aW9uTm9kZSIsIlBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSIsIlByb2NlZHVyZUNhbGxOb2RlIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiVHlwZUFzc2VydGlvbk5vZGUiLCJTVUJfREVSSVZBVElPTl9SVUxFX05BTUUiLCJTdWJEZXJpdmF0aW9uTm9kZSIsIlRIRU9SRU1fSEVBREVSX1JVTEVfTkFNRSIsIlRoZW9yZW1IZWFkZXJOb2RlIiwiQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVCb2R5Tm9kZSIsIlRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVHlwZURlY2xhcmF0aW9uTm9kZSIsIkNPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVIZWFkZXJOb2RlIiwiUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlSZWxhdGlvbk5vZGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJEZWZpbmVkQXNzZXJ0aW9uTm9kZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlRlcm1TdWJzdGl0dXRpb25Ob2RlIiwiQ09UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIkNvdHlwZURlY2xhcmF0aW9uTm9kZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkZyYW1lU3Vic3RpdHV0aW9uTm9kZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUHJvY2VkdXJlUmVmZXJlbmNlTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FIiwiUGFyZW50aGVzaXNlZExhYmVsTm9kZSIsIlNJR05BVFVSRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiU2lnbmF0dXJlQXNzZXJ0aW9uTm9kZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIklNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FIiwiSW1wbGljaXRBc3N1bXB0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSIsIlBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIkdFTkVSQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJHZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIkNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGUiLCJSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlJlZmVyZW5jZVN1YnN0aXR1dGlvbk5vZGUiLCJUWVBFX1BSRUZJWF9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJUeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIiwiQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiRG9uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF1UUE7OztlQUFBOzs7NkRBclFxQjs2REFDQTs2REFDQTs2REFDQTs2REFDQTs4REFDQzs4REFDQTs4REFDQTs4REFDQTs4REFDQTs4REFDQTs4REFDQTsrREFDQzsrREFDQTtnRUFDQztnRUFDQTtnRUFDQTtpRUFDQztpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTs4REFDQTtrRUFDQztrRUFDQTtrRUFDQTtrRUFDQTtrRUFDQTtrRUFDQTsrREFDQTsrREFDQTtrRUFDQTttRUFDQzttRUFDQTttRUFDQTttRUFDQTttRUFDQTttRUFDQTttRUFDQTttRUFDQTs4REFDQTtnRUFDQTtvRUFDQztvRUFDQTtvRUFDQTtvRUFDQTtpRUFDQTsrREFDQTsrREFDQTtxRUFDQztxRUFDQTtxRUFDQTtnRUFDQTtzRUFDQztzRUFDQTtpRUFDQTs4REFDQTtzRUFDQTtvRUFDQzs4REFDQzt5RUFDQztnRUFDQTs4REFDQTtvRUFDQTtrRUFDQztrRUFDQTsrREFDQTsrREFDQTsyRUFDQzsyRUFDQTtrRUFDQTttRUFDQTtpRUFDQTs0RUFDQztrRUFDQTtrRUFDQTttRUFDQztvRUFDQzttRUFDQTttRUFDQTtvRUFDQTtxRUFDQztzRUFDQzsyQkF1Rkk7Ozs7OztBQUU1QyxNQUFNQSxxQkFBcUI7SUFDekIsQ0FBQ0MseUJBQWMsQ0FBQyxFQUFFQyxhQUFRO0lBQzFCLENBQUNDLHlCQUFjLENBQUMsRUFBRUMsYUFBUTtJQUMxQixDQUFDQyx5QkFBYyxDQUFDLEVBQUVDLGFBQVE7SUFDMUIsQ0FBQ0MseUJBQWMsQ0FBQyxFQUFFQyxhQUFRO0lBQzFCLENBQUNDLHlCQUFjLENBQUMsRUFBRUMsYUFBUTtJQUMxQixDQUFDQywwQkFBZSxDQUFDLEVBQUVDLGNBQVM7SUFDNUIsQ0FBQ0MsMEJBQWUsQ0FBQyxFQUFFQyxjQUFTO0lBQzVCLENBQUNDLDBCQUFlLENBQUMsRUFBRUMsY0FBUztJQUM1QixDQUFDQywwQkFBZSxDQUFDLEVBQUVDLGNBQVM7SUFDNUIsQ0FBQ0MsMEJBQWUsQ0FBQyxFQUFFQyxjQUFTO0lBQzVCLENBQUNDLDBCQUFlLENBQUMsRUFBRUMsY0FBUztJQUM1QixDQUFDQywwQkFBZSxDQUFDLEVBQUVDLGNBQVM7SUFDNUIsQ0FBQ0MsMkJBQWdCLENBQUMsRUFBRUMsZUFBVTtJQUM5QixDQUFDQywyQkFBZ0IsQ0FBQyxFQUFFQyxlQUFVO0lBQzlCLENBQUNDLDRCQUFpQixDQUFDLEVBQUVDLGdCQUFXO0lBQ2hDLENBQUNDLDRCQUFpQixDQUFDLEVBQUVDLGdCQUFXO0lBQ2hDLENBQUNDLDRCQUFpQixDQUFDLEVBQUVDLGdCQUFXO0lBQ2hDLENBQUNDLDZCQUFrQixDQUFDLEVBQUVDLGlCQUFZO0lBQ2xDLENBQUNDLDZCQUFrQixDQUFDLEVBQUVDLGlCQUFZO0lBQ2xDLENBQUNDLDZCQUFrQixDQUFDLEVBQUVDLGlCQUFZO0lBQ2xDLENBQUNDLDZCQUFrQixDQUFDLEVBQUVDLGlCQUFZO0lBQ2xDLENBQUNDLDZCQUFrQixDQUFDLEVBQUVDLGlCQUFZO0lBQ2xDLENBQUNDLDZCQUFrQixDQUFDLEVBQUVDLGlCQUFZO0lBQ2xDLENBQUNDLDhCQUFtQixDQUFDLEVBQUVDLGNBQVk7SUFDbkMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsaUJBQVk7SUFDbkMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsa0JBQWE7SUFDcEMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsa0JBQWE7SUFDcEMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsa0JBQWE7SUFDcEMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsa0JBQWE7SUFDcEMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsa0JBQWE7SUFDcEMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsa0JBQWE7SUFDcEMsQ0FBQ0MsOEJBQW1CLENBQUMsRUFBRUMsa0JBQWE7SUFDcEMsQ0FBQ0MsK0JBQW9CLENBQUMsRUFBRUMsZUFBYTtJQUNyQyxDQUFDQywrQkFBb0IsQ0FBQyxFQUFFQyxlQUFhO0lBQ3JDLENBQUNDLCtCQUFvQixDQUFDLEVBQUVDLG1CQUFjO0lBQ3RDLENBQUNDLCtCQUFvQixDQUFDLEVBQUVDLG1CQUFjO0lBQ3RDLENBQUNDLCtCQUFvQixDQUFDLEVBQUVDLG1CQUFjO0lBQ3RDLENBQUNDLCtCQUFvQixDQUFDLEVBQUVDLG1CQUFjO0lBQ3RDLENBQUNDLCtCQUFvQixDQUFDLEVBQUVDLG1CQUFjO0lBQ3RDLENBQUNDLCtCQUFvQixDQUFDLEVBQUVDLG1CQUFjO0lBQ3RDLENBQUNDLCtCQUFvQixDQUFDLEVBQUVDLG1CQUFjO0lBQ3RDLENBQUNDLGdDQUFxQixDQUFDLEVBQUVDLGNBQWM7SUFDdkMsQ0FBQ0MsZ0NBQXFCLENBQUMsRUFBRUMsbUJBQWM7SUFDdkMsQ0FBQ0MsZ0NBQXFCLENBQUMsRUFBRUMsb0JBQWU7SUFDeEMsQ0FBQ0MsZ0NBQXFCLENBQUMsRUFBRUMsb0JBQWU7SUFDeEMsQ0FBQ0MsZ0NBQXFCLENBQUMsRUFBRUMsb0JBQWU7SUFDeEMsQ0FBQ0MsZ0NBQXFCLENBQUMsRUFBRUMsb0JBQWU7SUFDeEMsQ0FBQ0MsZ0NBQXFCLENBQUMsRUFBRUMsZ0JBQWM7SUFDdkMsQ0FBQ0MsaUNBQXNCLENBQUMsRUFBRUMsZUFBZTtJQUN6QyxDQUFDQyxpQ0FBc0IsQ0FBQyxFQUFFQyxlQUFlO0lBQ3pDLENBQUNDLGlDQUFzQixDQUFDLEVBQUVDLGlCQUFlO0lBQ3pDLENBQUNDLGlDQUFzQixDQUFDLEVBQUVDLHFCQUFnQjtJQUMxQyxDQUFDQyxpQ0FBc0IsQ0FBQyxFQUFFQyxxQkFBZ0I7SUFDMUMsQ0FBQ0Msa0NBQXVCLENBQUMsRUFBRUMscUJBQWdCO0lBQzNDLENBQUNDLGtDQUF1QixDQUFDLEVBQUVDLGdCQUFnQjtJQUMzQyxDQUFDQyxrQ0FBdUIsQ0FBQyxFQUFFQyxzQkFBaUI7SUFDNUMsQ0FBQ0MsbUNBQXdCLENBQUMsRUFBRUMsc0JBQWlCO0lBQzdDLENBQUNDLG1DQUF3QixDQUFDLEVBQUVDLGNBQWlCO0lBQzdDLENBQUNDLG1DQUF3QixDQUFDLEVBQUVDLHNCQUFpQjtJQUM3QyxDQUFDQyxtQ0FBd0IsQ0FBQyxFQUFFQyxpQkFBaUI7SUFDN0MsQ0FBQ0Msb0NBQXlCLENBQUMsRUFBRUMsb0JBQWtCO0lBQy9DLENBQUNDLHFDQUEwQixDQUFDLEVBQUVDLGNBQW1CO0lBQ2pELENBQUNDLHNDQUEyQixDQUFDLEVBQUVDLG9CQUFvQjtJQUNuRCxDQUFDQyxzQ0FBMkIsQ0FBQyxFQUFFQyx5QkFBb0I7SUFDbkQsQ0FBQ0Msc0NBQTJCLENBQUMsRUFBRUMsZ0JBQW9CO0lBQ25ELENBQUNDLHNDQUEyQixDQUFDLEVBQUVDLGNBQW9CO0lBQ25ELENBQUNDLHVDQUE0QixDQUFDLEVBQUVDLGVBQXFCO0lBQ3JELENBQUNDLHVDQUE0QixDQUFDLEVBQUVDLGtCQUFxQjtJQUNyRCxDQUFDQyx1Q0FBNEIsQ0FBQyxFQUFFQyxrQkFBcUI7SUFDckQsQ0FBQ0MsdUNBQTRCLENBQUMsRUFBRUMsZUFBcUI7SUFDckQsQ0FBQ0Msd0NBQTZCLENBQUMsRUFBRUMsMkJBQXNCO0lBQ3ZELENBQUNDLHdDQUE2QixDQUFDLEVBQUVDLDJCQUFzQjtJQUN2RCxDQUFDQyx3Q0FBNkIsQ0FBQyxFQUFFQyxtQkFBc0I7SUFDdkQsQ0FBQ0Msd0NBQTZCLENBQUMsRUFBRUMsa0JBQXNCO0lBQ3ZELENBQUNDLHdDQUE2QixDQUFDLEVBQUVDLGlCQUFzQjtJQUN2RCxDQUFDQyx5Q0FBOEIsQ0FBQyxFQUFFQyw0QkFBdUI7SUFDekQsQ0FBQ0MseUNBQThCLENBQUMsRUFBRUMsa0JBQXVCO0lBQ3pELENBQUNDLHlDQUE4QixDQUFDLEVBQUVDLGtCQUF1QjtJQUN6RCxDQUFDQywwQ0FBK0IsQ0FBQyxFQUFFQyxtQkFBd0I7SUFDM0QsQ0FBQ0MsMkNBQWdDLENBQUMsRUFBRUMsb0JBQXlCO0lBQzdELENBQUNDLDJDQUFnQyxDQUFDLEVBQUVDLG1CQUF5QjtJQUM3RCxDQUFDQywyQ0FBZ0MsQ0FBQyxFQUFFQyxtQkFBeUI7SUFDN0QsQ0FBQ0MsNENBQWlDLENBQUMsRUFBRUMsb0JBQXlCO0lBQzlELENBQUNDLDRDQUFpQyxDQUFDLEVBQUVDLHFCQUEwQjtJQUMvRCxDQUFDQyw2Q0FBa0MsQ0FBQyxFQUFFQyxzQkFBMkI7QUFDbkU7TUFFQSxXQUFlMUsifQ==