occam-verify-cli 1.0.768 → 1.0.776

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.
Files changed (106) hide show
  1. package/lib/context/file/nominal.js +11 -11
  2. package/lib/context/illative.js +28 -0
  3. package/lib/context/nested.js +27 -0
  4. package/lib/context/proof.js +232 -0
  5. package/lib/context/thetic.js +28 -0
  6. package/lib/context.js +15 -21
  7. package/lib/element/assertion/contained.js +24 -22
  8. package/lib/element/assertion/defined.js +20 -19
  9. package/lib/element/assertion/property.js +14 -13
  10. package/lib/element/assertion/satisfies.js +8 -9
  11. package/lib/element/assertion/subproof.js +23 -26
  12. package/lib/element/assertion/type.js +9 -11
  13. package/lib/element/assumption.js +32 -39
  14. package/lib/element/combinator/bracketed.js +3 -3
  15. package/lib/element/combinator.js +20 -20
  16. package/lib/element/conclusion.js +33 -29
  17. package/lib/element/constructor.js +19 -18
  18. package/lib/element/deduction.js +33 -29
  19. package/lib/element/equality.js +13 -15
  20. package/lib/element/equivalence.js +59 -52
  21. package/lib/element/frame.js +41 -34
  22. package/lib/element/hypothesis.js +7 -5
  23. package/lib/element/judgement.js +32 -73
  24. package/lib/element/label.js +22 -22
  25. package/lib/element/metavariable.js +23 -7
  26. package/lib/element/proofAssertion/premise.js +48 -35
  27. package/lib/element/proofAssertion/step.js +35 -20
  28. package/lib/element/proofAssertion/supposition.js +48 -34
  29. package/lib/element/proofAssertion.js +1 -14
  30. package/lib/element/reference.js +80 -53
  31. package/lib/element/signature.js +44 -3
  32. package/lib/element/statement.js +28 -29
  33. package/lib/element/subproof.js +2 -2
  34. package/lib/element/substitution/frame.js +24 -19
  35. package/lib/element/substitution/metaLevel.js +31 -27
  36. package/lib/element/substitution/reference.js +11 -10
  37. package/lib/element/substitution/statement.js +30 -23
  38. package/lib/element/substitution/term.js +11 -10
  39. package/lib/element/term.js +24 -20
  40. package/lib/element/topLevelMetaAssertion.js +2 -2
  41. package/lib/element/variable.js +6 -2
  42. package/lib/process/assign.js +10 -4
  43. package/lib/process/unify.js +8 -8
  44. package/lib/process/validate.js +10 -8
  45. package/lib/utilities/context.js +68 -23
  46. package/lib/utilities/element.js +55 -27
  47. package/lib/utilities/json.js +8 -8
  48. package/lib/utilities/statement.js +1 -8
  49. package/lib/utilities/string.js +12 -1
  50. package/lib/utilities/unification.js +9 -7
  51. package/lib/utilities/validation.js +39 -31
  52. package/package.json +1 -1
  53. package/src/context/file/nominal.js +14 -16
  54. package/src/context/illative.js +17 -0
  55. package/src/context/nested.js +15 -0
  56. package/src/context/{scoped.js → proof.js} +73 -73
  57. package/src/context/thetic.js +17 -0
  58. package/src/context.js +23 -36
  59. package/src/element/assertion/contained.js +28 -28
  60. package/src/element/assertion/defined.js +23 -23
  61. package/src/element/assertion/property.js +15 -14
  62. package/src/element/assertion/satisfies.js +7 -9
  63. package/src/element/assertion/subproof.js +26 -31
  64. package/src/element/assertion/type.js +10 -12
  65. package/src/element/assumption.js +33 -54
  66. package/src/element/combinator/bracketed.js +2 -2
  67. package/src/element/combinator.js +23 -29
  68. package/src/element/conclusion.js +37 -40
  69. package/src/element/constructor.js +29 -34
  70. package/src/element/deduction.js +36 -39
  71. package/src/element/equality.js +16 -18
  72. package/src/element/equivalence.js +76 -67
  73. package/src/element/frame.js +42 -34
  74. package/src/element/hypothesis.js +7 -6
  75. package/src/element/judgement.js +34 -44
  76. package/src/element/label.js +25 -31
  77. package/src/element/metavariable.js +32 -12
  78. package/src/element/proofAssertion/premise.js +63 -49
  79. package/src/element/proofAssertion/step.js +43 -23
  80. package/src/element/proofAssertion/supposition.js +64 -50
  81. package/src/element/proofAssertion.js +0 -22
  82. package/src/element/reference.js +119 -80
  83. package/src/element/signature.js +5 -2
  84. package/src/element/statement.js +30 -35
  85. package/src/element/subproof.js +1 -1
  86. package/src/element/substitution/frame.js +27 -26
  87. package/src/element/substitution/metaLevel.js +38 -42
  88. package/src/element/substitution/reference.js +13 -14
  89. package/src/element/substitution/statement.js +35 -33
  90. package/src/element/substitution/term.js +13 -14
  91. package/src/element/term.js +42 -34
  92. package/src/element/topLevelMetaAssertion.js +1 -1
  93. package/src/element/variable.js +8 -1
  94. package/src/process/assign.js +9 -3
  95. package/src/process/unify.js +7 -7
  96. package/src/process/validate.js +9 -8
  97. package/src/utilities/context.js +82 -31
  98. package/src/utilities/element.js +68 -31
  99. package/src/utilities/json.js +13 -13
  100. package/src/utilities/statement.js +1 -9
  101. package/src/utilities/string.js +16 -2
  102. package/src/utilities/unification.js +10 -9
  103. package/src/utilities/validation.js +50 -38
  104. package/lib/context/scoped.js +0 -232
  105. package/lib/utilities/term.js +0 -17
  106. package/src/utilities/term.js +0 -10
@@ -2,11 +2,9 @@
2
2
 
3
3
  import elements from "../elements";
4
4
 
5
- import { choose } from "./context";
6
- import { variableFromTerm } from "../utilities/term";
5
+ import { choose, descend } from "./context";
7
6
  import { bracketedConstructorFromNothing, bracketedCombinatorFromNothing } from "../utilities/instance";
8
- import { equalityFromStatement,
9
- judgementFromStatement,
7
+ import { judgementFromStatement,
10
8
  metavariableFromStatement,
11
9
  typeAssertionFromStatement,
12
10
  definedAssertionFromStatement,
@@ -18,9 +16,11 @@ import { equalityFromStatement,
18
16
  function validateTermAsVariable(term, context, validateForwards) {
19
17
  let termValidatesAsVariable = false;
20
18
 
19
+ const { Variable } = elements;
20
+
21
21
  let variable;
22
22
 
23
- variable = variableFromTerm(term, context);
23
+ variable = Variable.fromTerm(term, context);
24
24
 
25
25
  if (variable !== null) {
26
26
  const termString = term.getString();
@@ -53,11 +53,11 @@ function validateTermAsVariable(term, context, validateForwards) {
53
53
  }
54
54
 
55
55
  function unifyTermWithConstructors(term, context, validateForwards) {
56
- let termUnifiesWithConstructors;
56
+ let termUnifiesWithConstructors = false;
57
57
 
58
58
  const constructors = context.getConstructors();
59
59
 
60
- termUnifiesWithConstructors = constructors.some((constructor) => {
60
+ constructors.some((constructor) => {
61
61
  let termUnifies;
62
62
 
63
63
  choose((context) => {
@@ -69,6 +69,8 @@ function unifyTermWithConstructors(term, context, validateForwards) {
69
69
  }, context);
70
70
 
71
71
  if (termUnifies) {
72
+ termUnifiesWithConstructors = true;
73
+
72
74
  return true;
73
75
  }
74
76
  });
@@ -86,7 +88,7 @@ function unifyTermWithBracketedConstructor(term, context, validateForwards) {
86
88
  return termUnifiesWithBracketedConstructor;
87
89
  }
88
90
 
89
- function validateStatementAsMetavariable(statement, stated, context) {
91
+ function validateStatementAsMetavariable(statement, context) {
90
92
  let statementValidatesAsMetavariable = false;
91
93
 
92
94
  let metavariable;
@@ -139,43 +141,53 @@ function validateStatementAsMetavariable(statement, stated, context) {
139
141
  return statementValidatesAsMetavariable;
140
142
  }
141
143
 
142
- function unifyStatementWithCombinators(statement, stated, context) {
143
- stated = true; ///
144
+ function unifyStatementWithCombinators(statement, context) {
145
+ let statementUnifiesWithCombinators = false;
146
+
147
+ const combinators = context.getCombinators();
144
148
 
145
- const combinators = context.getCombinators(),
146
- statementUnifiesWithCombinators = combinators.some((combinator) => {
147
- const unifiesWithCombinator = combinator.unifyStatement(statement, stated, context);
149
+ combinators.some((combinator) => {
150
+ let statementUnifies;
148
151
 
149
- if (unifiesWithCombinator) {
150
- return true;
151
- }
152
- });
152
+ descend((context) => {
153
+ statementUnifies = combinator.unifyStatement(statement, context);
154
+ }, context);
155
+
156
+ if (statementUnifies) {
157
+ statementUnifiesWithCombinators = true;
158
+
159
+ return true;
160
+ }
161
+ });
153
162
 
154
163
  return statementUnifiesWithCombinators;
155
164
  }
156
165
 
157
- function unifyStatementWithBracketedCombinator(statement, stated, context) {
158
- stated = true; ///
166
+ function unifyStatementWithBracketedCombinator(statement, context) {
167
+ let statementUnifiesWithBracketedCombinator;
159
168
 
160
- const bracketedCombinator = bracketedCombinatorFromNothing(),
161
- statementUnifiesWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, stated, context);
169
+ const bracketedCombinator = bracketedCombinatorFromNothing();
170
+
171
+ statementUnifiesWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, context);
162
172
 
163
173
  return statementUnifiesWithBracketedCombinator;
164
174
  }
165
175
 
166
- function validateStatementAsEquality(statement, stated, context) {
176
+ function validateStatementAsEquality(statement, context) {
167
177
  let statementValidatesAsEquality = false;
168
178
 
179
+ const { Equality } = elements;
180
+
169
181
  let equality;
170
182
 
171
- equality = equalityFromStatement(statement, context);
183
+ equality = Equality.fromStatement(statement, context);
172
184
 
173
185
  if (equality !== null) {
174
186
  const statementString = statement.getString();
175
187
 
176
188
  context.trace(`Validating the '${statementString}' statement as an equality...`);
177
189
 
178
- equality = equality.validate(stated, context); ///
190
+ equality = equality.validate(context); ///
179
191
 
180
192
  if (equality !== null) {
181
193
  statementValidatesAsEquality = true;
@@ -189,7 +201,7 @@ function validateStatementAsEquality(statement, stated, context) {
189
201
  return statementValidatesAsEquality;
190
202
  }
191
203
 
192
- function validateStatementAsJudgement(statement, stated, context) {
204
+ function validateStatementAsJudgement(statement, context) {
193
205
  let validatesStatementAsJudgement = false;
194
206
 
195
207
  let judgement;
@@ -201,7 +213,7 @@ function validateStatementAsJudgement(statement, stated, context) {
201
213
 
202
214
  context.trace(`Validating the '${statementString}' statement as a judgement...`);
203
215
 
204
- judgement = judgement.validate(stated, context); ///
216
+ judgement = judgement.validate(context); ///
205
217
 
206
218
  if (judgement !== null) {
207
219
  validatesStatementAsJudgement = true;
@@ -215,7 +227,7 @@ function validateStatementAsJudgement(statement, stated, context) {
215
227
  return validatesStatementAsJudgement;
216
228
  }
217
229
 
218
- function validateStatementAsTypeAssertion(statement, stated, context) {
230
+ function validateStatementAsTypeAssertion(statement, context) {
219
231
  let validatesStatementAsTypeAssertion = false;
220
232
 
221
233
  let typeAssertion;
@@ -227,7 +239,7 @@ function validateStatementAsTypeAssertion(statement, stated, context) {
227
239
 
228
240
  context.trace(`Validating the '${statementString}' statement as a type assertion...`);
229
241
 
230
- typeAssertion = typeAssertion.validate(stated, context); ///
242
+ typeAssertion = typeAssertion.validate(context); ///
231
243
 
232
244
  if (typeAssertion !== null) {
233
245
  validatesStatementAsTypeAssertion = true;
@@ -241,7 +253,7 @@ function validateStatementAsTypeAssertion(statement, stated, context) {
241
253
  return validatesStatementAsTypeAssertion;
242
254
  }
243
255
 
244
- function validateStatementAsDefinedAssertion(statement, stated, context) {
256
+ function validateStatementAsDefinedAssertion(statement, context) {
245
257
  let validatesStatementAsDefinedAssertion = false;
246
258
 
247
259
  let definedAssertion;
@@ -253,7 +265,7 @@ function validateStatementAsDefinedAssertion(statement, stated, context) {
253
265
 
254
266
  context.trace(`Validating the '${statementString}' statement as a defined assertion...`);
255
267
 
256
- definedAssertion = definedAssertion.validate(stated, context); ///
268
+ definedAssertion = definedAssertion.validate(context); ///
257
269
 
258
270
  if (definedAssertion !== null) {
259
271
  validatesStatementAsDefinedAssertion = true;
@@ -267,7 +279,7 @@ function validateStatementAsDefinedAssertion(statement, stated, context) {
267
279
  return validatesStatementAsDefinedAssertion;
268
280
  }
269
281
 
270
- function validateStatementAsPropertyAssertion(statement, stated, context) {
282
+ function validateStatementAsPropertyAssertion(statement, context) {
271
283
  let statementValidatesAsPropertyAssertion = false;
272
284
 
273
285
  let propertyAssertion;
@@ -279,7 +291,7 @@ function validateStatementAsPropertyAssertion(statement, stated, context) {
279
291
 
280
292
  context.trace(`Validating the '${statementString}' statement as a property assertion...`);
281
293
 
282
- propertyAssertion = propertyAssertion.validate(stated, context); ///
294
+ propertyAssertion = propertyAssertion.validate(context); ///
283
295
 
284
296
  if (propertyAssertion !== null) {
285
297
  statementValidatesAsPropertyAssertion = true;
@@ -293,7 +305,7 @@ function validateStatementAsPropertyAssertion(statement, stated, context) {
293
305
  return statementValidatesAsPropertyAssertion;
294
306
  }
295
307
 
296
- function validateStatementAsSubproofAssertion(statement, stated, context) {
308
+ function validateStatementAsSubproofAssertion(statement, context) {
297
309
  let statementValidatesAsSubproofAssertion = false;
298
310
 
299
311
  let subproofAssertion;
@@ -305,7 +317,7 @@ function validateStatementAsSubproofAssertion(statement, stated, context) {
305
317
 
306
318
  context.trace(`Validating the '${statementString}' statement as a subproof assertion...`);
307
319
 
308
- subproofAssertion = subproofAssertion.validate(stated, context); ///
320
+ subproofAssertion = subproofAssertion.validate(context); ///
309
321
 
310
322
  if (subproofAssertion !== null) {
311
323
  statementValidatesAsSubproofAssertion = true;
@@ -319,7 +331,7 @@ function validateStatementAsSubproofAssertion(statement, stated, context) {
319
331
  return statementValidatesAsSubproofAssertion;
320
332
  }
321
333
 
322
- function validateStatementAsContainedAssertion(statement, stated, context) {
334
+ function validateStatementAsContainedAssertion(statement, context) {
323
335
  let validatesStatementAsContainedAssertion = false;
324
336
 
325
337
  let containedAssertion;
@@ -331,7 +343,7 @@ function validateStatementAsContainedAssertion(statement, stated, context) {
331
343
 
332
344
  context.trace(`Validating the '${statementString}' statement as a contained assertion...`);
333
345
 
334
- containedAssertion = containedAssertion.validate(stated, context); ///
346
+ containedAssertion = containedAssertion.validate(context); ///
335
347
 
336
348
  if (containedAssertion !== null) {
337
349
  validatesStatementAsContainedAssertion = true;
@@ -345,7 +357,7 @@ function validateStatementAsContainedAssertion(statement, stated, context) {
345
357
  return validatesStatementAsContainedAssertion;
346
358
  }
347
359
 
348
- function validateStatementAsSatisfiesAssertion(statement, stated, context) {
360
+ function validateStatementAsSatisfiesAssertion(statement, context) {
349
361
  let validatesAStatementsSatisfiesAssertion = false;
350
362
 
351
363
  let satisfiesAssertion;
@@ -357,7 +369,7 @@ function validateStatementAsSatisfiesAssertion(statement, stated, context) {
357
369
 
358
370
  context.trace(`Validating the '${statementString}' statement as a satisfies assertion...`);
359
371
 
360
- satisfiesAssertion = satisfiesAssertion.validate(stated, context); ///
372
+ satisfiesAssertion = satisfiesAssertion.validate(context); ///
361
373
 
362
374
  if (satisfiesAssertion !== null) {
363
375
  validatesAStatementsSatisfiesAssertion = true;
@@ -1,232 +0,0 @@
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 _necessary = require("necessary");
12
- const _context = /*#__PURE__*/ _interop_require_default(require("../context"));
13
- const _elements = /*#__PURE__*/ _interop_require_default(require("../elements"));
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- const { last } = _necessary.arrayUtilities;
20
- class ScopedContext extends _context.default {
21
- constructor(context, variables, judgements, assignments, equivalences, subproofOrProofAssertions, metaLevelSubstitutions){
22
- super(context);
23
- this.variables = variables;
24
- this.judgements = judgements;
25
- this.assignments = assignments;
26
- this.equivalences = equivalences;
27
- this.subproofOrProofAssertions = subproofOrProofAssertions;
28
- this.metaLevelSubstitutions = metaLevelSubstitutions;
29
- }
30
- getVariables() {
31
- let variables;
32
- const context = this.getContext();
33
- variables = context.getVariables();
34
- variables = [
35
- ...this.variables,
36
- ...variables
37
- ];
38
- return variables;
39
- }
40
- getJudgements() {
41
- let judgements;
42
- const context = this.getContext();
43
- judgements = context.getJudgements();
44
- judgements = [
45
- ...this.judgements,
46
- ...judgements
47
- ];
48
- return judgements;
49
- }
50
- getAssignments() {
51
- return this.assignments;
52
- }
53
- getEquivalences() {
54
- let equivalences;
55
- let context;
56
- context = this.getContext();
57
- equivalences = context.getEquivalences();
58
- context = this; ///
59
- equivalences = this.equivalences.mergedWith(equivalences, context); ///
60
- return equivalences;
61
- }
62
- getSubproofOrProofAssertions() {
63
- let subproofOrProofAssertions;
64
- const context = this.getContext();
65
- subproofOrProofAssertions = context.getSubproofOrProofAssertions();
66
- subproofOrProofAssertions = [
67
- ...subproofOrProofAssertions,
68
- ...this.subproofOrProofAssertions
69
- ];
70
- return subproofOrProofAssertions;
71
- }
72
- getMetaLevelSubstitutions() {
73
- return this.metaLevelSubstitutions;
74
- }
75
- getProofAssertions() {
76
- const subproofOrProofAssertions = this.getSubproofOrProofAssertions(), proofAssertions = subproofOrProofAssertions.filter((subproofOrProofAssertion)=>{
77
- const subproofOrProofAssertionproofAssertion = subproofOrProofAssertion.isProofAssertion();
78
- if (subproofOrProofAssertionproofAssertion) {
79
- return true;
80
- }
81
- });
82
- return proofAssertions;
83
- }
84
- getLastStep() {
85
- let lastStep = null;
86
- const proofAssertions = this.getProofAssertions(), proofAssertionsLength = proofAssertions.length;
87
- if (proofAssertionsLength > 0) {
88
- const lastProofAssertion = last(proofAssertions);
89
- lastStep = lastProofAssertion; ///
90
- }
91
- return lastStep;
92
- }
93
- hasMetaLevelSubstitutions() {
94
- let metaLevelSubstitutions;
95
- if (this.metaLevelSubstitutions !== null) {
96
- metaLevelSubstitutions = true;
97
- } else {
98
- const context = this.getContext();
99
- metaLevelSubstitutions = context.hasMetaLevelSubstitutions();
100
- }
101
- return metaLevelSubstitutions;
102
- }
103
- addEquality(equality) {
104
- const context = this, equalityString = equality.getString();
105
- context.trace(`Adding the '${equalityString}' equality to the scoped context...`);
106
- const equalityRelfexive = equality.isReflexive();
107
- if (!equalityRelfexive) {
108
- const { Equivalence } = _elements.default, equivalence = Equivalence.fromEquality(equality, context);
109
- this.equivalences = this.equivalences.mergedWithEquivalence(equivalence, context);
110
- context.debug(`...added the '${equalityString}' equality to the scoped context.`);
111
- } else {
112
- context.debug(`The '${equalityString}' equality is reflexive and will not added to the scoped context.`);
113
- }
114
- }
115
- addVariable(variable) {
116
- const context = this, variableString = variable.getString();
117
- context.trace(`Adding the '${variableString}' variable to the scoped context...`);
118
- this.variables.push(variable);
119
- context.debug(`...added the '${variableString}' variable to the scoped context.`);
120
- }
121
- addJudgement(judgement) {
122
- const context = this, judgementString = judgement.getString();
123
- context.trace(`Adding the '${judgementString}' judgement to the scoped context...`);
124
- this.judgements.push(judgement);
125
- context.debug(`...added the '${judgementString}' judgement to the scoped context.`);
126
- }
127
- addAssignment(assignment) {
128
- this.assignments.push(assignment);
129
- }
130
- addSubproofOrProofAssertion(subproofOrProofAssertion) {
131
- const context = this, subproofOrProofAssertionString = subproofOrProofAssertion.getString();
132
- context.trace(`Adding the '${subproofOrProofAssertionString}' subproof or proof assertion to the scoped context...`);
133
- this.subproofOrProofAssertions.push(subproofOrProofAssertion);
134
- context.debug(`...added the '${subproofOrProofAssertionString}' subproof or proof assertion to the scoped context.`);
135
- }
136
- addMetaLevelSubstitution(metaLevelSubstitution) {
137
- if (this.metaLevelSubstitutions === null) {
138
- super.addMetaLevelSubstitution(metaLevelSubstitution);
139
- return;
140
- }
141
- const context = this, metaLevelSubstitutionA = metaLevelSubstitution, metaLevelSubstitutionString = metaLevelSubstitution.getString();
142
- context.trace(`Adding the '${metaLevelSubstitutionString}' meta-level substitution to the scoped context...`);
143
- const metaLevelSubstitutionB = this.metaLevelSubstitutions.find((metaLevelSubstitution)=>{
144
- const metaLevelSubstitutionB = metaLevelSubstitution, metaLevelSubstitutionAEqualToMetaLevelSubstitutionB = metaLevelSubstitutionA.isEqualTo(metaLevelSubstitutionB);
145
- if (metaLevelSubstitutionAEqualToMetaLevelSubstitutionB) {
146
- return true;
147
- }
148
- }) || null;
149
- if (metaLevelSubstitutionB !== null) {
150
- context.debug(`The '${metaLevelSubstitutionString}' meta-level substitution has already been added to the scoped context.`);
151
- } else {
152
- this.metaLevelSubstitutions.push(metaLevelSubstitution);
153
- context.debug(`...added the '${metaLevelSubstitutionString}' substitution to the scoped context.`);
154
- }
155
- }
156
- assignAssignments() {
157
- const context = this; ///
158
- this.assignments.forEach((assignment)=>{
159
- assignment(context);
160
- });
161
- }
162
- findEquivalenceByTerm(term) {
163
- return this.equivalences.findEquivalenceByTerm(term);
164
- }
165
- findJudgementByMetavariableName(metavariableName) {
166
- const judgements = this.getJudgements(), judgement = judgements.find((judgement)=>{
167
- const judgementMetavariableComparesToMetavariable = judgement.compareMetavariableName(metavariableName);
168
- if (judgementMetavariableComparesToMetavariable) {
169
- return true;
170
- }
171
- }) || null;
172
- return judgement;
173
- }
174
- findVariableByVariableIdentifier(variableIdentifier) {
175
- const variables = this.getVariables(), variable = variables.find((variable)=>{
176
- const variableComparesToVariableIdentifier = variable.compareVariableIdentifier(variableIdentifier);
177
- if (variableComparesToVariableIdentifier) {
178
- return true;
179
- }
180
- }) || null;
181
- return variable;
182
- }
183
- findMetaLevelSubstitutionByMetaLevelSubstitutionNode(metaLevelSubstitutionNode) {
184
- let metaLevelSubstitution;
185
- if (this.metaLevelSubstitutions === null) {
186
- metaLevelSubstitution = super.findMetaLevelSubstitutionByMetaLevelSubstitutionNode(metaLevelSubstitutionNode);
187
- } else {
188
- metaLevelSubstitution = this.metaLevelSubstitutions.find((metaLevelSubstitution)=>{
189
- const metaLevelSubstitutionNodeMatches = metaLevelSubstitution.matchMetaLevelSubstitutionNode(metaLevelSubstitutionNode);
190
- if (metaLevelSubstitutionNodeMatches) {
191
- return true;
192
- }
193
- }) || null;
194
- }
195
- return metaLevelSubstitution;
196
- }
197
- isTermGrounded(term) {
198
- const context = this, equivalences = this.getEquivalences(), groundedTerms = [], definedVariables = [];
199
- equivalences.separateGroundedTermsAndDefinedVariables(groundedTerms, definedVariables, context);
200
- const termMatchesGroundedTerm = groundedTerms.some((groundedTerm)=>{
201
- const groundedTermNode = groundedTerm.getNode(), groundedTermNodeMatches = term.matchTermNode(groundedTermNode);
202
- if (groundedTermNodeMatches) {
203
- return true;
204
- }
205
- }), termGrounded = termMatchesGroundedTerm; ///
206
- return termGrounded;
207
- }
208
- isJudgementPresentByMetavariableName(metavariableName) {
209
- const judgement = this.findJudgementByMetavariableName(metavariableName), judgementPresent = judgement !== null;
210
- return judgementPresent;
211
- }
212
- isVariablePresentByVariableIdentifier(variableIdentifier) {
213
- const variable = this.findVariableByVariableIdentifier(variableIdentifier), variablePresent = variable !== null;
214
- return variablePresent;
215
- }
216
- compareTermAndPropertyRelation(term, propertyRelation) {
217
- const context = this, proofAssertions = this.getProofAssertions(), comparesToTermAndPropertyRelation = proofAssertions.some((proofAssertion)=>{
218
- const comparesToTermAndPropertyRelation = proofAssertion.compareTermAndPropertyRelation(term, propertyRelation, context);
219
- if (comparesToTermAndPropertyRelation) {
220
- return true;
221
- }
222
- });
223
- return comparesToTermAndPropertyRelation;
224
- }
225
- static fromMetaLevelSubstitutions(metaLevelSubstitutions, context) {
226
- const { Equivalences } = _elements.default, variables = [], judgements = [], assignments = [], equivalences = Equivalences.fromNothing(context), subproofOrProofAssertions = [], scopedContext = new ScopedContext(context, variables, judgements, assignments, equivalences, subproofOrProofAssertions, metaLevelSubstitutions);
227
- return scopedContext;
228
- }
229
- }
230
- const _default = ScopedContext;
231
-
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3Njb3BlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0XCI7XG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmNvbnN0IHsgbGFzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNsYXNzIFNjb3BlZENvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzLCBqdWRnZW1lbnRzLCBhc3NpZ25tZW50cywgZXF1aXZhbGVuY2VzLCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25zKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgICB0aGlzLmp1ZGdlbWVudHMgPSBqdWRnZW1lbnRzO1xuICAgIHRoaXMuYXNzaWdubWVudHMgPSBhc3NpZ25tZW50cztcbiAgICB0aGlzLmVxdWl2YWxlbmNlcyA9IGVxdWl2YWxlbmNlcztcbiAgICB0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMgPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuICAgIHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBnZXRWYXJpYWJsZXMoKSB7XG4gICAgbGV0IHZhcmlhYmxlcztcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKCk7XG5cbiAgICB2YXJpYWJsZXMgPSBbXG4gICAgICAuLi50aGlzLnZhcmlhYmxlcyxcbiAgICAgIC4uLnZhcmlhYmxlc1xuICAgIF07XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgZ2V0SnVkZ2VtZW50cygpIHtcbiAgICBsZXQganVkZ2VtZW50cztcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGp1ZGdlbWVudHMgPSBjb250ZXh0LmdldEp1ZGdlbWVudHMoKTtcblxuICAgIGp1ZGdlbWVudHMgPSBbIC8vL1xuICAgICAgLi4udGhpcy5qdWRnZW1lbnRzLFxuICAgICAgLi4uanVkZ2VtZW50c1xuICAgIF1cblxuICAgIHJldHVybiBqdWRnZW1lbnRzO1xuICB9XG5cbiAgZ2V0QXNzaWdubWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXNzaWdubWVudHM7XG4gIH1cblxuICBnZXRFcXVpdmFsZW5jZXMoKSB7XG4gICAgbGV0IGVxdWl2YWxlbmNlcztcblxuICAgIGxldCBjb250ZXh0O1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgZXF1aXZhbGVuY2VzID0gY29udGV4dC5nZXRFcXVpdmFsZW5jZXMoKTtcblxuICAgIGNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgIGVxdWl2YWxlbmNlcyA9IHRoaXMuZXF1aXZhbGVuY2VzLm1lcmdlZFdpdGgoZXF1aXZhbGVuY2VzLCBjb250ZXh0KTsgIC8vL1xuXG4gICAgcmV0dXJuIGVxdWl2YWxlbmNlcztcbiAgfVxuXG4gIGdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMoKSB7XG4gICAgbGV0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnM7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zID0gY29udGV4dC5nZXRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zKCk7XG5cbiAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zID0gWyAgLy8vXG4gICAgICAuLi5zdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLFxuICAgICAgLi4udGhpcy5zdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zXG4gICAgXTtcblxuICAgIHJldHVybiBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zO1xuICB9XG5cbiAgZ2V0TWV0YUxldmVsU3Vic3RpdHV0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhTGV2ZWxTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0UHJvb2ZBc3NlcnRpb25zKCkge1xuICAgIGNvbnN0IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMgPSB0aGlzLmdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMoKSxcbiAgICAgICAgICBwcm9vZkFzc2VydGlvbnMgPSBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zLmZpbHRlcigoc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25wcm9vZkFzc2VydGlvbiA9IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbi5pc1Byb29mQXNzZXJ0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25wcm9vZkFzc2VydGlvbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBwcm9vZkFzc2VydGlvbnM7XG4gIH1cblxuICBnZXRMYXN0U3RlcCgpIHtcbiAgICBsZXQgbGFzdFN0ZXAgPSBudWxsO1xuXG4gICAgY29uc3QgcHJvb2ZBc3NlcnRpb25zID0gdGhpcy5nZXRQcm9vZkFzc2VydGlvbnMoKSxcbiAgICAgICAgICBwcm9vZkFzc2VydGlvbnNMZW5ndGggPSBwcm9vZkFzc2VydGlvbnMubGVuZ3RoO1xuXG4gICAgaWYgKHByb29mQXNzZXJ0aW9uc0xlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxhc3RQcm9vZkFzc2VydGlvbiA9IGxhc3QocHJvb2ZBc3NlcnRpb25zKTtcblxuICAgICAgbGFzdFN0ZXAgPSBsYXN0UHJvb2ZBc3NlcnRpb247ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gbGFzdFN0ZXA7XG4gIH1cblxuICBoYXNNZXRhTGV2ZWxTdWJzdGl0dXRpb25zKCkge1xuICAgIGxldCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25zO1xuXG4gICAgaWYgKHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9IGNvbnRleHQuaGFzTWV0YUxldmVsU3Vic3RpdHV0aW9ucygpO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgYWRkRXF1YWxpdHkoZXF1YWxpdHkpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgZXF1YWxpdHlTdHJpbmcgPSBlcXVhbGl0eS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGluZyB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eSB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIGNvbnN0IGVxdWFsaXR5UmVsZmV4aXZlID0gZXF1YWxpdHkuaXNSZWZsZXhpdmUoKTtcblxuICAgIGlmICghZXF1YWxpdHlSZWxmZXhpdmUpIHtcbiAgICAgIGNvbnN0IHsgRXF1aXZhbGVuY2UgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgZXF1aXZhbGVuY2UgPSBFcXVpdmFsZW5jZS5mcm9tRXF1YWxpdHkoZXF1YWxpdHksIGNvbnRleHQpO1xuXG4gICAgICB0aGlzLmVxdWl2YWxlbmNlcyA9IHRoaXMuZXF1aXZhbGVuY2VzLm1lcmdlZFdpdGhFcXVpdmFsZW5jZShlcXVpdmFsZW5jZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmFkZGVkIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGVxdWFsaXR5IHRvIHRoZSBzY29wZWQgY29udGV4dC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkgaXMgcmVmbGV4aXZlIGFuZCB3aWxsIG5vdCBhZGRlZCB0byB0aGUgc2NvcGVkIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIHRoaXMudmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYWRkZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlIHNjb3BlZCBjb250ZXh0LmApO1xuICB9XG5cbiAgYWRkSnVkZ2VtZW50KGp1ZGdlbWVudCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICBqdWRnZW1lbnRTdHJpbmcgPSBqdWRnZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBBZGRpbmcgdGhlICcke2p1ZGdlbWVudFN0cmluZ30nIGp1ZGdlbWVudCB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIHRoaXMuanVkZ2VtZW50cy5wdXNoKGp1ZGdlbWVudCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5hZGRlZCB0aGUgJyR7anVkZ2VtZW50U3RyaW5nfScganVkZ2VtZW50IHRvIHRoZSBzY29wZWQgY29udGV4dC5gKTtcbiAgfVxuXG4gIGFkZEFzc2lnbm1lbnQoYXNzaWdubWVudCkge1xuICAgIHRoaXMuYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcbiAgfVxuXG4gIGFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbihzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uU3RyaW5nID0gc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkaW5nIHRoZSAnJHtzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBvciBwcm9vZiBhc3NlcnRpb24gdG8gdGhlIHNjb3BlZCBjb250ZXh0Li4uYCk7XG5cbiAgICB0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMucHVzaChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYWRkZWQgdGhlICcke3N1YnByb29mT3JQcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIG9yIHByb29mIGFzc2VydGlvbiB0byB0aGUgc2NvcGVkIGNvbnRleHQuYCk7XG4gIH1cblxuICBhZGRNZXRhTGV2ZWxTdWJzdGl0dXRpb24obWV0YUxldmVsU3Vic3RpdHV0aW9uKSB7XG4gICAgaWYgKHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9PT0gbnVsbCkge1xuICAgICAgc3VwZXIuYWRkTWV0YUxldmVsU3Vic3RpdHV0aW9uKG1ldGFMZXZlbFN1YnN0aXR1dGlvbik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uQSA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgbWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkaW5nIHRoZSAnJHttZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmd9JyBtZXRhLWxldmVsIHN1YnN0aXR1dGlvbiB0byB0aGUgc2NvcGVkIGNvbnRleHQuLi5gKTtcblxuICAgIGNvbnN0IG1ldGFMZXZlbFN1YnN0aXR1dGlvbkIgPSB0aGlzLm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMuZmluZCgobWV0YUxldmVsU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25CID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgIG1ldGFMZXZlbFN1YnN0aXR1dGlvbkFFcXVhbFRvTWV0YUxldmVsU3Vic3RpdHV0aW9uQiA9IG1ldGFMZXZlbFN1YnN0aXR1dGlvbkEuaXNFcXVhbFRvKG1ldGFMZXZlbFN1YnN0aXR1dGlvbkIpO1xuXG4gICAgICBpZiAobWV0YUxldmVsU3Vic3RpdHV0aW9uQUVxdWFsVG9NZXRhTGV2ZWxTdWJzdGl0dXRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAobWV0YUxldmVsU3Vic3RpdHV0aW9uQiAhPT0gbnVsbCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke21ldGFMZXZlbFN1YnN0aXR1dGlvblN0cmluZ30nIG1ldGEtbGV2ZWwgc3Vic3RpdHV0aW9uIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gdGhlIHNjb3BlZCBjb250ZXh0LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMucHVzaChtZXRhTGV2ZWxTdWJzdGl0dXRpb24pO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5hZGRlZCB0aGUgJyR7bWV0YUxldmVsU3Vic3RpdHV0aW9uU3RyaW5nfScgc3Vic3RpdHV0aW9uIHRvIHRoZSBzY29wZWQgY29udGV4dC5gKTtcbiAgICB9XG4gIH1cblxuICBhc3NpZ25Bc3NpZ25tZW50cygpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICB0aGlzLmFzc2lnbm1lbnRzLmZvckVhY2goKGFzc2lnbm1lbnQpID0+IHtcbiAgICAgIGFzc2lnbm1lbnQoY29udGV4dCk7XG4gICAgfSk7XG4gIH1cblxuICBmaW5kRXF1aXZhbGVuY2VCeVRlcm0odGVybSkgeyByZXR1cm4gdGhpcy5lcXVpdmFsZW5jZXMuZmluZEVxdWl2YWxlbmNlQnlUZXJtKHRlcm0pOyB9XG5cbiAgZmluZEp1ZGdlbWVudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QganVkZ2VtZW50cyA9IHRoaXMuZ2V0SnVkZ2VtZW50cygpLFxuICAgICAgICAgIGp1ZGdlbWVudCA9IGp1ZGdlbWVudHMuZmluZCgoanVkZ2VtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBqdWRnZW1lbnRNZXRhdmFyaWFibGVDb21wYXJlc1RvTWV0YXZhcmlhYmxlID0ganVkZ2VtZW50LmNvbXBhcmVNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAoanVkZ2VtZW50TWV0YXZhcmlhYmxlQ29tcGFyZXNUb01ldGF2YXJpYWJsZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGp1ZGdlbWVudDtcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlSWRlbnRpZmllciA9IHZhcmlhYmxlLmNvbXBhcmVWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgZmluZE1ldGFMZXZlbFN1YnN0aXR1dGlvbkJ5TWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZShtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKSB7XG4gICAgbGV0IG1ldGFMZXZlbFN1YnN0aXR1dGlvbjtcblxuICAgIGlmICh0aGlzLm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMgPT09IG51bGwpIHtcbiAgICAgIG1ldGFMZXZlbFN1YnN0aXR1dGlvbiA9IHN1cGVyLmZpbmRNZXRhTGV2ZWxTdWJzdGl0dXRpb25CeU1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUobWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGFMZXZlbFN1YnN0aXR1dGlvbiA9IHRoaXMubWV0YUxldmVsU3Vic3RpdHV0aW9ucy5maW5kKChtZXRhTGV2ZWxTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBtZXRhTGV2ZWxTdWJzdGl0dXRpb24ubWF0Y2hNZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlKG1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUpO1xuXG4gICAgICAgIGlmIChtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KSB8fCBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhTGV2ZWxTdWJzdGl0dXRpb247XG4gIH1cblxuICBpc1Rlcm1Hcm91bmRlZCh0ZXJtKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGVxdWl2YWxlbmNlcyA9IHRoaXMuZ2V0RXF1aXZhbGVuY2VzKCksXG4gICAgICAgICAgZ3JvdW5kZWRUZXJtcyA9IFtdLFxuICAgICAgICAgIGRlZmluZWRWYXJpYWJsZXMgPSBbXTtcblxuICAgIGVxdWl2YWxlbmNlcy5zZXBhcmF0ZUdyb3VuZGVkVGVybXNBbmREZWZpbmVkVmFyaWFibGVzKGdyb3VuZGVkVGVybXMsIGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdGVybU1hdGNoZXNHcm91bmRlZFRlcm0gPSBncm91bmRlZFRlcm1zLnNvbWUoKGdyb3VuZGVkVGVybSkgPT4ge1xuICAgICAgICBjb25zdCBncm91bmRlZFRlcm1Ob2RlID0gZ3JvdW5kZWRUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICAgICAgZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMgPSB0ZXJtLm1hdGNoVGVybU5vZGUoZ3JvdW5kZWRUZXJtTm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChncm91bmRlZFRlcm1Ob2RlTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0ZXJtR3JvdW5kZWQgPSB0ZXJtTWF0Y2hlc0dyb3VuZGVkVGVybTsgLy8vXG5cbiAgICByZXR1cm4gdGVybUdyb3VuZGVkO1xuICB9XG5cbiAgaXNKdWRnZW1lbnRQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBqdWRnZW1lbnQgPSB0aGlzLmZpbmRKdWRnZW1lbnRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSksXG4gICAgICAgICAganVkZ2VtZW50UHJlc2VudCA9IChqdWRnZW1lbnQgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGp1ZGdlbWVudFByZXNlbnQ7XG4gIH1cblxuICBpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcikge1xuICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpcy5maW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpLFxuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9ICh2YXJpYWJsZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVQcmVzZW50O1xuICB9XG5cbiAgY29tcGFyZVRlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uKHRlcm0sIHByb3BlcnR5UmVsYXRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgcHJvb2ZBc3NlcnRpb25zID0gdGhpcy5nZXRQcm9vZkFzc2VydGlvbnMoKSxcbiAgICAgICAgICBjb21wYXJlc1RvVGVybUFuZFByb3BlcnR5UmVsYXRpb24gPSBwcm9vZkFzc2VydGlvbnMuc29tZSgocHJvb2ZBc3NlcnRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVzVG9UZXJtQW5kUHJvcGVydHlSZWxhdGlvbiA9IHByb29mQXNzZXJ0aW9uLmNvbXBhcmVUZXJtQW5kUHJvcGVydHlSZWxhdGlvbih0ZXJtLCBwcm9wZXJ0eVJlbGF0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKGNvbXBhcmVzVG9UZXJtQW5kUHJvcGVydHlSZWxhdGlvbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBjb21wYXJlc1RvVGVybUFuZFByb3BlcnR5UmVsYXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFMZXZlbFN1YnN0aXR1dGlvbnMobWV0YUxldmVsU3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGNvbnN0IHsgRXF1aXZhbGVuY2VzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBqdWRnZW1lbnRzID0gW10sXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICBlcXVpdmFsZW5jZXMgPSBFcXVpdmFsZW5jZXMuZnJvbU5vdGhpbmcoY29udGV4dCksXG4gICAgICAgICAgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICAgIHNjb3BlZENvbnRleHQgPSBuZXcgU2NvcGVkQ29udGV4dChjb250ZXh0LCB2YXJpYWJsZXMsIGp1ZGdlbWVudHMsIGFzc2lnbm1lbnRzLCBlcXVpdmFsZW5jZXMsIHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMsIG1ldGFMZXZlbFN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIHNjb3BlZENvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2NvcGVkQ29udGV4dDsiXSwibmFtZXMiOlsibGFzdCIsImFycmF5VXRpbGl0aWVzIiwiU2NvcGVkQ29udGV4dCIsIkNvbnRleHQiLCJjb250ZXh0IiwidmFyaWFibGVzIiwianVkZ2VtZW50cyIsImFzc2lnbm1lbnRzIiwiZXF1aXZhbGVuY2VzIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbnMiLCJnZXRWYXJpYWJsZXMiLCJnZXRDb250ZXh0IiwiZ2V0SnVkZ2VtZW50cyIsImdldEFzc2lnbm1lbnRzIiwiZ2V0RXF1aXZhbGVuY2VzIiwibWVyZ2VkV2l0aCIsImdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMiLCJnZXRNZXRhTGV2ZWxTdWJzdGl0dXRpb25zIiwiZ2V0UHJvb2ZBc3NlcnRpb25zIiwicHJvb2ZBc3NlcnRpb25zIiwiZmlsdGVyIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucHJvb2ZBc3NlcnRpb24iLCJpc1Byb29mQXNzZXJ0aW9uIiwiZ2V0TGFzdFN0ZXAiLCJsYXN0U3RlcCIsInByb29mQXNzZXJ0aW9uc0xlbmd0aCIsImxlbmd0aCIsImxhc3RQcm9vZkFzc2VydGlvbiIsImhhc01ldGFMZXZlbFN1YnN0aXR1dGlvbnMiLCJhZGRFcXVhbGl0eSIsImVxdWFsaXR5IiwiZXF1YWxpdHlTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImVxdWFsaXR5UmVsZmV4aXZlIiwiaXNSZWZsZXhpdmUiLCJFcXVpdmFsZW5jZSIsImVsZW1lbnRzIiwiZXF1aXZhbGVuY2UiLCJmcm9tRXF1YWxpdHkiLCJtZXJnZWRXaXRoRXF1aXZhbGVuY2UiLCJkZWJ1ZyIsImFkZFZhcmlhYmxlIiwidmFyaWFibGUiLCJ2YXJpYWJsZVN0cmluZyIsInB1c2giLCJhZGRKdWRnZW1lbnQiLCJqdWRnZW1lbnQiLCJqdWRnZW1lbnRTdHJpbmciLCJhZGRBc3NpZ25tZW50IiwiYXNzaWdubWVudCIsImFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsInN1YnByb29mT3JQcm9vZkFzc2VydGlvblN0cmluZyIsImFkZE1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbiIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbkEiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25TdHJpbmciLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25CIiwiZmluZCIsIm1ldGFMZXZlbFN1YnN0aXR1dGlvbkFFcXVhbFRvTWV0YUxldmVsU3Vic3RpdHV0aW9uQiIsImlzRXF1YWxUbyIsImFzc2lnbkFzc2lnbm1lbnRzIiwiZm9yRWFjaCIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybSIsInRlcm0iLCJmaW5kSnVkZ2VtZW50QnlNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZSIsImp1ZGdlbWVudE1ldGF2YXJpYWJsZUNvbXBhcmVzVG9NZXRhdmFyaWFibGUiLCJjb21wYXJlTWV0YXZhcmlhYmxlTmFtZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGVDb21wYXJlc1RvVmFyaWFibGVJZGVudGlmaWVyIiwiY29tcGFyZVZhcmlhYmxlSWRlbnRpZmllciIsImZpbmRNZXRhTGV2ZWxTdWJzdGl0dXRpb25CeU1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJtZXRhTGV2ZWxTdWJzdGl0dXRpb25Ob2RlIiwibWV0YUxldmVsU3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFMZXZlbFN1YnN0aXR1dGlvbk5vZGUiLCJpc1Rlcm1Hcm91bmRlZCIsImdyb3VuZGVkVGVybXMiLCJkZWZpbmVkVmFyaWFibGVzIiwic2VwYXJhdGVHcm91bmRlZFRlcm1zQW5kRGVmaW5lZFZhcmlhYmxlcyIsInRlcm1NYXRjaGVzR3JvdW5kZWRUZXJtIiwic29tZSIsImdyb3VuZGVkVGVybSIsImdyb3VuZGVkVGVybU5vZGUiLCJnZXROb2RlIiwiZ3JvdW5kZWRUZXJtTm9kZU1hdGNoZXMiLCJtYXRjaFRlcm1Ob2RlIiwidGVybUdyb3VuZGVkIiwiaXNKdWRnZW1lbnRQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lIiwianVkZ2VtZW50UHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZUlkZW50aWZpZXIiLCJ2YXJpYWJsZVByZXNlbnQiLCJjb21wYXJlVGVybUFuZFByb3BlcnR5UmVsYXRpb24iLCJwcm9wZXJ0eVJlbGF0aW9uIiwiY29tcGFyZXNUb1Rlcm1BbmRQcm9wZXJ0eVJlbGF0aW9uIiwicHJvb2ZBc3NlcnRpb24iLCJmcm9tTWV0YUxldmVsU3Vic3RpdHV0aW9ucyIsIkVxdWl2YWxlbmNlcyIsImZyb21Ob3RoaW5nIiwic2NvcGVkQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ1ZBOzs7ZUFBQTs7OzJCQTlVK0I7Z0VBRVg7aUVBQ0M7Ozs7OztBQUVyQixNQUFNLEVBQUVBLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUUvQixNQUFNQyxzQkFBc0JDLGdCQUFPO0lBQ2pDLFlBQVlDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFQyx5QkFBeUIsRUFBRUMsc0JBQXNCLENBQUU7UUFDeEgsS0FBSyxDQUFDTjtRQUVOLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLHlCQUF5QixHQUFHQTtRQUNqQyxJQUFJLENBQUNDLHNCQUFzQixHQUFHQTtJQUNoQztJQUVBQyxlQUFlO1FBQ2IsSUFBSU47UUFFSixNQUFNRCxVQUFVLElBQUksQ0FBQ1EsVUFBVTtRQUUvQlAsWUFBWUQsUUFBUU8sWUFBWTtRQUVoQ04sWUFBWTtlQUNQLElBQUksQ0FBQ0EsU0FBUztlQUNkQTtTQUNKO1FBRUQsT0FBT0E7SUFDVDtJQUVBUSxnQkFBZ0I7UUFDZCxJQUFJUDtRQUVKLE1BQU1GLFVBQVUsSUFBSSxDQUFDUSxVQUFVO1FBRS9CTixhQUFhRixRQUFRUyxhQUFhO1FBRWxDUCxhQUFhO2VBQ1IsSUFBSSxDQUFDQSxVQUFVO2VBQ2ZBO1NBQ0o7UUFFRCxPQUFPQTtJQUNUO0lBRUFRLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDUCxXQUFXO0lBQ3pCO0lBRUFRLGtCQUFrQjtRQUNoQixJQUFJUDtRQUVKLElBQUlKO1FBRUpBLFVBQVUsSUFBSSxDQUFDUSxVQUFVO1FBRXpCSixlQUFlSixRQUFRVyxlQUFlO1FBRXRDWCxVQUFVLElBQUksRUFBRSxHQUFHO1FBRW5CSSxlQUFlLElBQUksQ0FBQ0EsWUFBWSxDQUFDUSxVQUFVLENBQUNSLGNBQWNKLFVBQVcsR0FBRztRQUV4RSxPQUFPSTtJQUNUO0lBRUFTLCtCQUErQjtRQUM3QixJQUFJUjtRQUVKLE1BQU1MLFVBQVUsSUFBSSxDQUFDUSxVQUFVO1FBRS9CSCw0QkFBNEJMLFFBQVFhLDRCQUE0QjtRQUVoRVIsNEJBQTRCO2VBQ3ZCQTtlQUNBLElBQUksQ0FBQ0EseUJBQXlCO1NBQ2xDO1FBRUQsT0FBT0E7SUFDVDtJQUVBUyw0QkFBNEI7UUFDMUIsT0FBTyxJQUFJLENBQUNSLHNCQUFzQjtJQUNwQztJQUVBUyxxQkFBcUI7UUFDbkIsTUFBTVYsNEJBQTRCLElBQUksQ0FBQ1EsNEJBQTRCLElBQzdERyxrQkFBa0JYLDBCQUEwQlksTUFBTSxDQUFDLENBQUNDO1lBQ2xELE1BQU1DLHlDQUF5Q0QseUJBQXlCRSxnQkFBZ0I7WUFFeEYsSUFBSUQsd0NBQXdDO2dCQUMxQyxPQUFPO1lBQ1Q7UUFDRjtRQUVOLE9BQU9IO0lBQ1Q7SUFFQUssY0FBYztRQUNaLElBQUlDLFdBQVc7UUFFZixNQUFNTixrQkFBa0IsSUFBSSxDQUFDRCxrQkFBa0IsSUFDekNRLHdCQUF3QlAsZ0JBQWdCUSxNQUFNO1FBRXBELElBQUlELHdCQUF3QixHQUFHO1lBQzdCLE1BQU1FLHFCQUFxQjdCLEtBQUtvQjtZQUVoQ00sV0FBV0csb0JBQXFCLEdBQUc7UUFDckM7UUFFQSxPQUFPSDtJQUNUO0lBRUFJLDRCQUE0QjtRQUMxQixJQUFJcEI7UUFFSixJQUFJLElBQUksQ0FBQ0Esc0JBQXNCLEtBQUssTUFBTTtZQUN4Q0EseUJBQXlCO1FBQzNCLE9BQU87WUFDTCxNQUFNTixVQUFVLElBQUksQ0FBQ1EsVUFBVTtZQUUvQkYseUJBQXlCTixRQUFRMEIseUJBQXlCO1FBQzVEO1FBRUEsT0FBT3BCO0lBQ1Q7SUFFQXFCLFlBQVlDLFFBQVEsRUFBRTtRQUNwQixNQUFNNUIsVUFBVSxJQUFJLEVBQ2Q2QixpQkFBaUJELFNBQVNFLFNBQVM7UUFFekM5QixRQUFRK0IsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFRixlQUFlLG1DQUFtQyxDQUFDO1FBRWhGLE1BQU1HLG9CQUFvQkosU0FBU0ssV0FBVztRQUU5QyxJQUFJLENBQUNELG1CQUFtQjtZQUN0QixNQUFNLEVBQUVFLFdBQVcsRUFBRSxHQUFHQyxpQkFBUSxFQUMxQkMsY0FBY0YsWUFBWUcsWUFBWSxDQUFDVCxVQUFVNUI7WUFFdkQsSUFBSSxDQUFDSSxZQUFZLEdBQUcsSUFBSSxDQUFDQSxZQUFZLENBQUNrQyxxQkFBcUIsQ0FBQ0YsYUFBYXBDO1lBRXpFQSxRQUFRdUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFVixlQUFlLGlDQUFpQyxDQUFDO1FBQ2xGLE9BQU87WUFDTDdCLFFBQVF1QyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUVWLGVBQWUsaUVBQWlFLENBQUM7UUFDekc7SUFDRjtJQUVBVyxZQUFZQyxRQUFRLEVBQUU7UUFDcEIsTUFBTXpDLFVBQVUsSUFBSSxFQUNkMEMsaUJBQWlCRCxTQUFTWCxTQUFTO1FBRXpDOUIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRVcsZUFBZSxtQ0FBbUMsQ0FBQztRQUVoRixJQUFJLENBQUN6QyxTQUFTLENBQUMwQyxJQUFJLENBQUNGO1FBRXBCekMsUUFBUXVDLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRUcsZUFBZSxpQ0FBaUMsQ0FBQztJQUNsRjtJQUVBRSxhQUFhQyxTQUFTLEVBQUU7UUFDdEIsTUFBTTdDLFVBQVUsSUFBSSxFQUNkOEMsa0JBQWtCRCxVQUFVZixTQUFTO1FBRTNDOUIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRWUsZ0JBQWdCLG9DQUFvQyxDQUFDO1FBRWxGLElBQUksQ0FBQzVDLFVBQVUsQ0FBQ3lDLElBQUksQ0FBQ0U7UUFFckI3QyxRQUFRdUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFTyxnQkFBZ0Isa0NBQWtDLENBQUM7SUFDcEY7SUFFQUMsY0FBY0MsVUFBVSxFQUFFO1FBQ3hCLElBQUksQ0FBQzdDLFdBQVcsQ0FBQ3dDLElBQUksQ0FBQ0s7SUFDeEI7SUFFQUMsNEJBQTRCL0Isd0JBQXdCLEVBQUU7UUFDcEQsTUFBTWxCLFVBQVUsSUFBSSxFQUNka0QsaUNBQWlDaEMseUJBQXlCWSxTQUFTO1FBRXpFOUIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRW1CLCtCQUErQixzREFBc0QsQ0FBQztRQUVuSCxJQUFJLENBQUM3Qyx5QkFBeUIsQ0FBQ3NDLElBQUksQ0FBQ3pCO1FBRXBDbEIsUUFBUXVDLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRVcsK0JBQStCLG9EQUFvRCxDQUFDO0lBQ3JIO0lBRUFDLHlCQUF5QkMscUJBQXFCLEVBQUU7UUFDOUMsSUFBSSxJQUFJLENBQUM5QyxzQkFBc0IsS0FBSyxNQUFNO1lBQ3hDLEtBQUssQ0FBQzZDLHlCQUF5QkM7WUFFL0I7UUFDRjtRQUVBLE1BQU1wRCxVQUFVLElBQUksRUFDZHFELHlCQUF5QkQsdUJBQ3pCRSw4QkFBOEJGLHNCQUFzQnRCLFNBQVM7UUFFbkU5QixRQUFRK0IsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFdUIsNEJBQTRCLGtEQUFrRCxDQUFDO1FBRTVHLE1BQU1DLHlCQUF5QixJQUFJLENBQUNqRCxzQkFBc0IsQ0FBQ2tELElBQUksQ0FBQyxDQUFDSjtZQUMvRCxNQUFNRyx5QkFBeUJILHVCQUN6Qkssc0RBQXNESix1QkFBdUJLLFNBQVMsQ0FBQ0g7WUFFN0YsSUFBSUUscURBQXFEO2dCQUN2RCxPQUFPO1lBQ1Q7UUFDRixNQUFNO1FBRU4sSUFBSUYsMkJBQTJCLE1BQU07WUFDbkN2RCxRQUFRdUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFZSw0QkFBNEIsdUVBQXVFLENBQUM7UUFDNUgsT0FBTztZQUNMLElBQUksQ0FBQ2hELHNCQUFzQixDQUFDcUMsSUFBSSxDQUFDUztZQUVqQ3BELFFBQVF1QyxLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUVlLDRCQUE0QixxQ0FBcUMsQ0FBQztRQUNuRztJQUNGO0lBRUFLLG9CQUFvQjtRQUNsQixNQUFNM0QsVUFBVSxJQUFJLEVBQUUsR0FBRztRQUV6QixJQUFJLENBQUNHLFdBQVcsQ0FBQ3lELE9BQU8sQ0FBQyxDQUFDWjtZQUN4QkEsV0FBV2hEO1FBQ2I7SUFDRjtJQUVBNkQsc0JBQXNCQyxJQUFJLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQzFELFlBQVksQ0FBQ3lELHFCQUFxQixDQUFDQztJQUFPO0lBRXBGQyxnQ0FBZ0NDLGdCQUFnQixFQUFFO1FBQ2hELE1BQU05RCxhQUFhLElBQUksQ0FBQ08sYUFBYSxJQUMvQm9DLFlBQVkzQyxXQUFXc0QsSUFBSSxDQUFDLENBQUNYO1lBQzNCLE1BQU1vQiw4Q0FBOENwQixVQUFVcUIsdUJBQXVCLENBQUNGO1lBRXRGLElBQUlDLDZDQUE2QztnQkFDL0MsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLE9BQU9wQjtJQUNUO0lBRUFzQixpQ0FBaUNDLGtCQUFrQixFQUFFO1FBQ25ELE1BQU1uRSxZQUFZLElBQUksQ0FBQ00sWUFBWSxJQUM3QmtDLFdBQVd4QyxVQUFVdUQsSUFBSSxDQUFDLENBQUNmO1lBQ3pCLE1BQU00Qix1Q0FBdUM1QixTQUFTNkIseUJBQXlCLENBQUNGO1lBRWhGLElBQUlDLHNDQUFzQztnQkFDeEMsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLE9BQU81QjtJQUNUO0lBRUE4QixxREFBcURDLHlCQUF5QixFQUFFO1FBQzlFLElBQUlwQjtRQUVKLElBQUksSUFBSSxDQUFDOUMsc0JBQXNCLEtBQUssTUFBTTtZQUN4QzhDLHdCQUF3QixLQUFLLENBQUNtQixxREFBcURDO1FBQ3JGLE9BQU87WUFDTHBCLHdCQUF3QixJQUFJLENBQUM5QyxzQkFBc0IsQ0FBQ2tELElBQUksQ0FBQyxDQUFDSjtnQkFDeEQsTUFBTXFCLG1DQUFtQ3JCLHNCQUFzQnNCLDhCQUE4QixDQUFDRjtnQkFFOUYsSUFBSUMsa0NBQWtDO29CQUNwQyxPQUFPO2dCQUNUO1lBQ0YsTUFBTTtRQUNSO1FBRUEsT0FBT3JCO0lBQ1Q7SUFFQXVCLGVBQWViLElBQUksRUFBRTtRQUNuQixNQUFNOUQsVUFBVSxJQUFJLEVBQ2RJLGVBQWUsSUFBSSxDQUFDTyxlQUFlLElBQ25DaUUsZ0JBQWdCLEVBQUUsRUFDbEJDLG1CQUFtQixFQUFFO1FBRTNCekUsYUFBYTBFLHdDQUF3QyxDQUFDRixlQUFlQyxrQkFBa0I3RTtRQUV2RixNQUFNK0UsMEJBQTBCSCxjQUFjSSxJQUFJLENBQUMsQ0FBQ0M7WUFDaEQsTUFBTUMsbUJBQW1CRCxhQUFhRSxPQUFPLElBQ3ZDQywwQkFBMEJ0QixLQUFLdUIsYUFBYSxDQUFDSDtZQUUvQyxJQUFJRSx5QkFBeUI7Z0JBQzNCLE9BQU87WUFDVDtRQUNGLElBQ0FFLGVBQWVQLHlCQUF5QixHQUFHO1FBRWpELE9BQU9PO0lBQ1Q7SUFFQUMscUNBQXFDdkIsZ0JBQWdCLEVBQUU7UUFDckQsTUFBTW5CLFlBQVksSUFBSSxDQUFDa0IsK0JBQStCLENBQUNDLG1CQUNqRHdCLG1CQUFvQjNDLGNBQWM7UUFFeEMsT0FBTzJDO0lBQ1Q7SUFFQUMsc0NBQXNDckIsa0JBQWtCLEVBQUU7UUFDeEQsTUFBTTNCLFdBQVcsSUFBSSxDQUFDMEIsZ0NBQWdDLENBQUNDLHFCQUNqRHNCLGtCQUFtQmpELGFBQWE7UUFFdEMsT0FBT2lEO0lBQ1Q7SUFFQUMsK0JBQStCN0IsSUFBSSxFQUFFOEIsZ0JBQWdCLEVBQUU7UUFDckQsTUFBTTVGLFVBQVUsSUFBSSxFQUNkZ0Isa0JBQWtCLElBQUksQ0FBQ0Qsa0JBQWtCLElBQ3pDOEUsb0NBQW9DN0UsZ0JBQWdCZ0UsSUFBSSxDQUFDLENBQUNjO1lBQ3hELE1BQU1ELG9DQUFvQ0MsZUFBZUgsOEJBQThCLENBQUM3QixNQUFNOEIsa0JBQWtCNUY7WUFFaEgsSUFBSTZGLG1DQUFtQztnQkFDckMsT0FBTztZQUNUO1FBQ0Y7UUFFTixPQUFPQTtJQUNUO0lBRUEsT0FBT0UsMkJBQTJCekYsc0JBQXNCLEVBQUVOLE9BQU8sRUFBRTtRQUNqRSxNQUFNLEVBQUVnRyxZQUFZLEVBQUUsR0FBRzdELGlCQUFRLEVBQzNCbEMsWUFBWSxFQUFFLEVBQ2RDLGFBQWEsRUFBRSxFQUNmQyxjQUFjLEVBQUUsRUFDaEJDLGVBQWU0RixhQUFhQyxXQUFXLENBQUNqRyxVQUN4Q0ssNEJBQTRCLEVBQUUsRUFDOUI2RixnQkFBZ0IsSUFBSXBHLGNBQWNFLFNBQVNDLFdBQVdDLFlBQVlDLGFBQWFDLGNBQWNDLDJCQUEyQkM7UUFFOUgsT0FBTzRGO0lBQ1Q7QUFDRjtNQUVBLFdBQWVwRyJ9
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "variableFromTerm", {
6
- enumerable: true,
7
- get: function() {
8
- return variableFromTerm;
9
- }
10
- });
11
- const _element = require("../utilities/element");
12
- function variableFromTerm(term, context) {
13
- const termNode = term.getNode(), variable = (0, _element.variableFromTermNode)(termNode, context);
14
- return variable;
15
- }
16
-
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgdmFyaWFibGVGcm9tVGVybU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlRnJvbVRlcm0odGVybSwgY29udGV4dCkge1xuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdmFyaWFibGU7XG59XG4iXSwibmFtZXMiOlsidmFyaWFibGVGcm9tVGVybSIsInRlcm0iLCJjb250ZXh0IiwidGVybU5vZGUiLCJnZXROb2RlIiwidmFyaWFibGUiLCJ2YXJpYWJsZUZyb21UZXJtTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSWdCQTs7O2VBQUFBOzs7eUJBRnFCO0FBRTlCLFNBQVNBLGlCQUFpQkMsSUFBSSxFQUFFQyxPQUFPO0lBQzVDLE1BQU1DLFdBQVdGLEtBQUtHLE9BQU8sSUFDdkJDLFdBQVdDLElBQUFBLDZCQUFvQixFQUFDSCxVQUFVRDtJQUVoRCxPQUFPRztBQUNUIn0=
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- import { variableFromTermNode } from "../utilities/element";
4
-
5
- export function variableFromTerm(term, context) {
6
- const termNode = term.getNode(),
7
- variable = variableFromTermNode(termNode, context);
8
-
9
- return variable;
10
- }