@faubulous/mentor-rdf 0.2.14 → 0.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/rdf/parsers/sparql-syntax-parser.d.ts +16 -0
- package/out/rdf/parsers/sparql-syntax-parser.js +55 -0
- package/out/rdf/parsers/sparql-syntax-parser.js.map +1 -0
- package/out/rdf/parsers/tokenizer.js +5 -5
- package/out/rdf/parsers/tokenizer.js.map +1 -1
- package/out/rdf/reasoners/owl-reasoner.js +9 -3
- package/out/rdf/reasoners/owl-reasoner.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IRecognitionException, IToken } from "chevrotain";
|
|
2
|
+
import { W3SpecSparqlParser, IStardogParser } from "millan";
|
|
3
|
+
/**
|
|
4
|
+
* An extended version of the Millan SPARQL parser that also returns semantic errors such as undefined prefixes.
|
|
5
|
+
*/
|
|
6
|
+
export declare class SparqlSynstaxParser implements IStardogParser {
|
|
7
|
+
readonly parser: W3SpecSparqlParser;
|
|
8
|
+
get input(): IToken[];
|
|
9
|
+
tokenize(document: string): IToken[];
|
|
10
|
+
parse: (document: string) => {
|
|
11
|
+
errors: IRecognitionException[];
|
|
12
|
+
semanticErrors: IRecognitionException[];
|
|
13
|
+
comments: IToken[];
|
|
14
|
+
cst: any;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SparqlSynstaxParser = void 0;
|
|
4
|
+
const millan_1 = require("millan");
|
|
5
|
+
/**
|
|
6
|
+
* An extended version of the Millan SPARQL parser that also returns semantic errors such as undefined prefixes.
|
|
7
|
+
*/
|
|
8
|
+
class SparqlSynstaxParser {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.parser = new millan_1.W3SpecSparqlParser();
|
|
11
|
+
this.parse = (document) => {
|
|
12
|
+
var _a;
|
|
13
|
+
const { cst, errors, comments } = this.parser.parse(document);
|
|
14
|
+
const tokens = this.parser.input;
|
|
15
|
+
const semanticErrors = [];
|
|
16
|
+
const declaredPrefixes = new Set();
|
|
17
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
18
|
+
const token = tokens[i];
|
|
19
|
+
const tokenName = (_a = token.tokenType) === null || _a === void 0 ? void 0 : _a.name;
|
|
20
|
+
switch (tokenName) {
|
|
21
|
+
case "PNAME_NS": {
|
|
22
|
+
const prefix = token.image.split(":")[0];
|
|
23
|
+
declaredPrefixes.add(prefix);
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
case "PNAME_LN": {
|
|
27
|
+
const prefix = token.image.split(":")[0];
|
|
28
|
+
if (!declaredPrefixes.has(prefix)) {
|
|
29
|
+
semanticErrors.push({
|
|
30
|
+
message: `Undefined prefix: ${prefix}`,
|
|
31
|
+
name: "NoNamespacePrefixError",
|
|
32
|
+
token: token,
|
|
33
|
+
resyncedTokens: [],
|
|
34
|
+
context: {
|
|
35
|
+
ruleStack: [],
|
|
36
|
+
ruleOccurrenceStack: []
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return { cst, errors, semanticErrors, comments: comments ? comments : [] };
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
get input() {
|
|
48
|
+
return this.parser.input;
|
|
49
|
+
}
|
|
50
|
+
tokenize(document) {
|
|
51
|
+
return this.parser.tokenize(document);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.SparqlSynstaxParser = SparqlSynstaxParser;
|
|
55
|
+
//# sourceMappingURL=sparql-syntax-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparql-syntax-parser.js","sourceRoot":"","sources":["../../../src/rdf/parsers/sparql-syntax-parser.ts"],"names":[],"mappings":";;;AACA,mCAA4D;AAE5D;;GAEG;AACH,MAAa,mBAAmB;IAAhC;QACa,WAAM,GAAuB,IAAI,2BAAkB,EAAE,CAAC;QAUxD,UAAK,GAAG,CAAC,QAAgB,EAK9B,EAAE;;YACA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACjC,MAAM,cAAc,GAA4B,EAAE,CAAC;YAEnD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;YAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAAC;gBAExC,QAAQ,SAAS,EAAE;oBACf,KAAK,UAAU,CAAC,CAAC;wBACb,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAEzC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC7B,MAAM;qBACT;oBACD,KAAK,UAAU,CAAC,CAAC;wBACb,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAEzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;4BAC/B,cAAc,CAAC,IAAI,CAAC;gCAChB,OAAO,EAAE,qBAAqB,MAAM,EAAE;gCACtC,IAAI,EAAE,wBAAwB;gCAC9B,KAAK,EAAE,KAAK;gCACZ,cAAc,EAAE,EAAE;gCAClB,OAAO,EAAE;oCACL,SAAS,EAAE,EAAE;oCACb,mBAAmB,EAAE,EAAE;iCAC1B;6BACJ,CAAC,CAAC;yBACN;wBACD,MAAM;qBACT;iBACJ;aACJ;YAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/E,CAAC,CAAC;IACN,CAAC;IArDG,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC;IAEM,QAAQ,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CA+CJ;AAxDD,kDAwDC"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Tokenizer = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const millan_1 = require("millan");
|
|
6
5
|
const rdf_syntax_1 = require("./rdf-syntax");
|
|
7
6
|
const trig_syntax_parser_1 = require("./trig-syntax-parser");
|
|
7
|
+
const sparql_syntax_parser_1 = require("./sparql-syntax-parser");
|
|
8
8
|
/**
|
|
9
9
|
* Parses RDF data into tokens.
|
|
10
10
|
*/
|
|
@@ -12,10 +12,10 @@ class Tokenizer {
|
|
|
12
12
|
static parseData(data, syntax) {
|
|
13
13
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
14
|
if (syntax === rdf_syntax_1.RdfSyntax.Sparql) {
|
|
15
|
-
const parser = new
|
|
16
|
-
const { errors, comments } = parser.parse(data);
|
|
17
|
-
const tokens =
|
|
18
|
-
return { tokens, syntaxErrors: errors, semanticErrors
|
|
15
|
+
const parser = new sparql_syntax_parser_1.SparqlSynstaxParser();
|
|
16
|
+
const { errors, semanticErrors, comments } = parser.parse(data);
|
|
17
|
+
const tokens = [...parser.input, ...comments];
|
|
18
|
+
return { tokens, syntaxErrors: errors, semanticErrors };
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
21
|
const parser = new trig_syntax_parser_1.TrigSyntaxParser();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../src/rdf/parsers/tokenizer.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../src/rdf/parsers/tokenizer.ts"],"names":[],"mappings":";;;;AAEA,6CAAyC;AACzC,6DAAwD;AACxD,iEAA6D;AAW7D;;GAEG;AACH,MAAa,SAAS;IAClB,MAAM,CAAO,SAAS,CAAC,IAAY,EAAE,MAAiB;;YAClD,IAAI,MAAM,KAAK,sBAAS,CAAC,MAAM,EAAE;gBAC7B,MAAM,MAAM,GAAG,IAAI,0CAAmB,EAAE,CAAC;gBAEzC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;gBAE9C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;aAC3D;iBAAM;gBACH,MAAM,MAAM,GAAG,IAAI,qCAAgB,EAAE,CAAC;gBAEtC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;gBAE9C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;aAC3D;QACL,CAAC;KAAA;CACJ;AAlBD,8BAkBC"}
|
|
@@ -50,9 +50,7 @@ class OwlReasoner extends rdfs_reasoner_1.RdfsReasoner {
|
|
|
50
50
|
}
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
|
-
case ontologies_1.owl.equivalentClass.id:
|
|
54
|
-
case ontologies_1.owl.complementOf.id:
|
|
55
|
-
case ontologies_1.owl.disjointWith.id: {
|
|
53
|
+
case ontologies_1.owl.equivalentClass.id: {
|
|
56
54
|
this.assertClass(s);
|
|
57
55
|
if (o && !this.isW3CNode(o)) {
|
|
58
56
|
this.assertClass(o);
|
|
@@ -63,6 +61,14 @@ class OwlReasoner extends rdfs_reasoner_1.RdfsReasoner {
|
|
|
63
61
|
}
|
|
64
62
|
return;
|
|
65
63
|
}
|
|
64
|
+
case ontologies_1.owl.complementOf.id:
|
|
65
|
+
case ontologies_1.owl.disjointWith.id: {
|
|
66
|
+
this.assertClass(s);
|
|
67
|
+
if (o && !this.isW3CNode(o)) {
|
|
68
|
+
this.assertClass(o);
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
66
72
|
case ontologies_1.owl.intersectionOf.id: {
|
|
67
73
|
let equivalentSubjects = [...this.store.match(null, ontologies_1.owl.equivalentClass, s)]
|
|
68
74
|
.map(q => q.subject)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owl-reasoner.js","sourceRoot":"","sources":["../../../src/rdf/reasoners/owl-reasoner.ts"],"names":[],"mappings":";;;AACA,iDAAkD;AAClD,mDAA+C;AAiB/C;;GAEG;AACH,MAAa,WAAY,SAAQ,4BAAY;IAGzC;QACI,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAES,cAAc;QACpB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YAEvB,IAAI,CAAC,CAAC;gBAAE,SAAS;YAEjB,IAAI,CAAC,CAAC,WAAW,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACtE;iBAAM,IAAI,CAAC,CAAC,OAAO,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAI,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAClE;iBAAM,IAAI,CAAC,CAAC,aAAa,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACzE;iBAAM,IAAI,CAAC,CAAC,cAAc,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACzE;SACJ;QAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAES,gBAAgB,CAAC,KAAgC,EAAE,IAAa;QACtE,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,6FAA6F;QAC7F,QAAQ,CAAC,CAAC,EAAE,EAAE;YACV,KAAK,gBAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,IAAI,gBAAG,CAAC,WAAW,CAAC,EAAE,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;iBACnC;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,eAAe,CAAC,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"owl-reasoner.js","sourceRoot":"","sources":["../../../src/rdf/reasoners/owl-reasoner.ts"],"names":[],"mappings":";;;AACA,iDAAkD;AAClD,mDAA+C;AAiB/C;;GAEG;AACH,MAAa,WAAY,SAAQ,4BAAY;IAGzC;QACI,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAES,cAAc;QACpB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;YAEvB,IAAI,CAAC,CAAC;gBAAE,SAAS;YAEjB,IAAI,CAAC,CAAC,WAAW,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAI,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACtE;iBAAM,IAAI,CAAC,CAAC,OAAO,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAI,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAClE;iBAAM,IAAI,CAAC,CAAC,aAAa,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACzE;iBAAM,IAAI,CAAC,CAAC,cAAc,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,gBAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACzE;SACJ;QAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAES,gBAAgB,CAAC,KAAgC,EAAE,IAAa;QACtE,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,6FAA6F;QAC7F,QAAQ,CAAC,CAAC,EAAE,EAAE;YACV,KAAK,gBAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,EAAE,IAAI,gBAAG,CAAC,WAAW,CAAC,EAAE,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;iBACnC;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBACvB;gBAED,6BAA6B;gBAC7B,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnE;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACzB,KAAK,gBAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACtB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBACvB;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;qBACvE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC;gBAE5C,gBAAgB;gBAChB,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAE7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACzF,OAAO;iBACV;gBAED,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;oBACnB,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;wBAC3B,SAAS;qBACZ;oBAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBAE5D,KAAK,IAAI,EAAE,IAAI,kBAAkB,EAAE;wBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,iBAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;qBAChE;iBACJ;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjB,IAAI,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;qBACvE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC;gBAE5C,gBAAgB;gBAChB,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAE7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACzF,OAAO;iBACV;gBAED,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;oBACnB,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;wBAC3B,SAAS;qBACZ;oBAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBAE5D,KAAK,IAAI,EAAE,IAAI,kBAAkB,EAAE;wBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;qBAChE;iBACJ;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;oBAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBACvB;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACrB,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,IAAI,EAAE,iBAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBACpE;gBAED,OAAO;aACV;YACD,QAAQ;YACR,0EAA0E;YAC1E,8EAA8E;YAC9E,EAAE;YACF,+BAA+B;YAC/B,uCAAuC;YACvC,yEAAyE;YACzE,QAAQ;YACR,EAAE;YACF,cAAc;YACd,IAAI;YACJ,gCAAgC;YAChC,uCAAuC;YACvC,yEAAyE;YACzE,QAAQ;YACR,EAAE;YACF,aAAa;YACb,IAAI;SACP;IACL,CAAC;IAES,mBAAmB,CAAC,KAAgC,EAAE,IAAa;QACzE,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,QAAQ,CAAC,CAAC,EAAE,EAAE;YACV,KAAK,gBAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACpB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAEvB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;oBACzD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;iBAC7C;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;oBACzD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;iBAC1C;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACrB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;oBACzD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;iBAC9C;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;iBAChD;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;iBACjD;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAEvB,6BAA6B;gBAC7B,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;oBAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,gBAAG,CAAC,kBAAkB,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBACtE;gBAED,OAAO;aACV;YACD,KAAK,gBAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACd,QAAQ,CAAC,CAAC,EAAE,EAAE;oBACV,KAAK,gBAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/B,KAAK,gBAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/B,KAAK,gBAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC7B,KAAK,gBAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/B,KAAK,gBAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/B,KAAK,gBAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC;oBACtC,KAAK,gBAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAChC,KAAK,gBAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3B,KAAK,gBAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC7B,KAAK,gBAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC9B,KAAK,gBAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC9B,KAAK,gBAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;wBAC5B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;qBAC1B;iBACJ;gBAED,OAAO;aACV;SACJ;IACL,CAAC;CACJ;AAxPD,kCAwPC"}
|