semantifold 0.13.0 → 0.15.0
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/README.md +2 -1
- package/build/src/backends/effects.js +3 -1
- package/build/src/backends/php.d.ts.map +1 -1
- package/build/src/backends/php.js +56 -3
- package/build/src/backends/python.js +11 -7
- package/build/src/backends/scalars.js +2 -2
- package/build/src/backends/shared.d.ts +2 -1
- package/build/src/backends/shared.d.ts.map +1 -1
- package/build/src/backends/shared.js +210 -8
- package/build/src/backends/writer.d.ts +18 -4
- package/build/src/backends/writer.d.ts.map +1 -1
- package/build/src/backends/writer.js +40 -4
- package/build/src/frontends/java.d.ts +1 -1
- package/build/src/frontends/java.d.ts.map +1 -1
- package/build/src/frontends/java.js +14 -11
- package/build/src/frontends/javascript-typescript.d.ts +1 -1
- package/build/src/frontends/javascript-typescript.d.ts.map +1 -1
- package/build/src/frontends/javascript-typescript.js +17 -17
- package/build/src/frontends/php.d.ts +5 -1
- package/build/src/frontends/php.d.ts.map +1 -1
- package/build/src/frontends/php.js +159 -31
- package/build/src/frontends/python.d.ts.map +1 -1
- package/build/src/frontends/python.js +37 -7
- package/build/src/frontends/ruby.d.ts +1 -1
- package/build/src/frontends/ruby.d.ts.map +1 -1
- package/build/src/frontends/ruby.js +12 -9
- package/build/src/frontends/types.d.ts +9 -2
- package/build/src/frontends/types.d.ts.map +1 -1
- package/build/src/frontends/types.js +26 -9
- package/build/src/language-registry.d.ts.map +1 -1
- package/build/src/language-registry.js +30 -6
- package/build/src/mapping.d.ts.map +1 -1
- package/build/src/mapping.js +4 -2
- package/build/src/semantic/effects.d.ts.map +1 -1
- package/build/src/semantic/effects.js +3 -1
- package/build/src/semantic/provenance.d.ts.map +1 -1
- package/build/src/semantic/provenance.js +37 -4
- package/build/src/semantic/types.d.ts +140 -9
- package/build/src/semantic/types.d.ts.map +1 -1
- package/build/src/semantic/types.js +37 -6
- package/build/src/semantic/validate.d.ts +31 -2
- package/build/src/semantic/validate.d.ts.map +1 -1
- package/build/src/semantic/validate.js +347 -28
- package/docs/adr-bounded-subtyping.md +180 -0
- package/docs/goals.md +1 -1
- package/docs/language-support.md +5 -4
- package/docs/testing.md +2 -2
- package/package.json +1 -1
- package/src/backends/effects.js +1 -0
- package/src/backends/php.js +56 -2
- package/src/backends/python.js +10 -4
- package/src/backends/scalars.js +1 -1
- package/src/backends/shared.js +211 -7
- package/src/backends/writer.js +41 -3
- package/src/frontends/java.js +13 -10
- package/src/frontends/javascript-typescript.js +16 -16
- package/src/frontends/php.js +175 -31
- package/src/frontends/python.js +39 -5
- package/src/frontends/ruby.js +11 -8
- package/src/frontends/types.js +26 -8
- package/src/language-registry.js +29 -5
- package/src/mapping.js +3 -1
- package/src/semantic/effects.js +1 -0
- package/src/semantic/provenance.js +34 -3
- package/src/semantic/types.js +39 -5
- package/src/semantic/validate.js +378 -27
|
@@ -75,15 +75,19 @@ function emitStatement(writer, statement, indent, path) {
|
|
|
75
75
|
emitIf(writer, statement, indent, path, "if");
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
|
-
if (statement.kind == "ExpressionStatement")
|
|
79
|
-
|
|
78
|
+
if (statement.kind == "ExpressionStatement") {
|
|
79
|
+
writer.synthetic(indent, "indentation", [statement], [path]);
|
|
80
|
+
emitExpression(writer, statement.expression, `${path}/expression`, "python", identity);
|
|
81
|
+
writer.synthetic("\n", "line break", [statement], [path]);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
80
84
|
writer.synthetic(indent, "indentation", [statement], [path]);
|
|
81
85
|
if (statement.kind == "ReturnStatement") {
|
|
82
|
-
if (!statement.expression)
|
|
83
|
-
throw new TypeError("Python bare return reached emission.");
|
|
84
86
|
writer.mapped("return", { mappingKind: "anchor", node: statement, path });
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
if (statement.expression) {
|
|
88
|
+
writer.synthetic(" ", "return spacing", [statement], [path]);
|
|
89
|
+
emitExpression(writer, statement.expression, `${path}/expression`, "python", identity);
|
|
90
|
+
}
|
|
87
91
|
writer.synthetic("\n", "line break", [statement], [path]);
|
|
88
92
|
return;
|
|
89
93
|
}
|
|
@@ -165,4 +169,4 @@ function emitLocal(writer, statement, indent, path) {
|
|
|
165
169
|
function identity(name) {
|
|
166
170
|
return name;
|
|
167
171
|
}
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmRzL3B5dGhvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBRTNDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTTtJQUMzQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsRUFBRTtRQUN0RCxJQUFJLGFBQWEsR0FBRyxDQUFDO1lBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBRXZGLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQTtRQUNoRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDeEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO1FBQ3hGLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQTtRQUM5RCxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsRUFBRTtZQUMzRCxNQUFNLGFBQWEsR0FBRyxjQUFjLGFBQWEs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QUE7SUFDMUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0RCxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNO0tBQy9FLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtJQUNuRixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNoRSxjQUFjLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDeEYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzNELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxRQUFRLENBQUMsSUFBSTtJQUNwQixPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHtlbWl0RXhwcmVzc2lvbn0gZnJvbSBcIi4vc2hhcmVkLmpzXCJcbmltcG9ydCB7ZW1pdFNjYWxhclR5cGV9IGZyb20gXCIuL3NjYWxhcnMuanNcIlxuXG4vKipcbiAqIEVtaXRzIG9uZSBkZXRlcm1pbmlzdGljIHN0YW5kYWxvbmUgUHl0aG9uIHByb2dyYW0uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTW9kdWxlfSBtb2R1bGUgLSBTZW1hbnRpYyBtb2R1bGUuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vd3JpdGVyLmpzXCIpLlNvdXJjZVdyaXRlcn0gd3JpdGVyIC0gU291cmNlLWF3YXJlIHdyaXRlci5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQeXRob24obW9kdWxlLCB3cml0ZXIpIHtcbiAgbW9kdWxlLmZ1bmN0aW9ucy5mb3JFYWNoKChkZWNsYXJhdGlvbiwgZnVuY3Rpb25JbmRleCkgPT4ge1xuICAgIGlmIChmdW5jdGlvbkluZGV4ID4gMCkgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblxcblwiLCBcImRlY2xhcmF0aW9uIHNlcGFyYXRvclwiLCBbZGVjbGFyYXRpb25dKVxuXG4gICAgd3JpdGVyLm1hcHBlZChcImRlZlwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IGRlY2xhcmF0aW9ufSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImZ1bmN0aW9uIHNwYWNpbmdcIiwgW2RlY2xhcmF0aW9uXSlcbiAgICB3cml0ZXIubWFwcGVkKGRlY2xhcmF0aW9uLm5hbWUsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBkZWNsYXJhdGlvbiwgcm9sZTogXCJuYW1lXCJ9KVxuICAgIHdyaXRlci5tYXBwZWQoXCIoXCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogZGVjbGFyYXRpb259KVxuICAgIGRlY2xhcmF0aW9uLnBhcmFtZXRlcnMuZm9yRWFjaCgocGFyYW1ldGVyLCBwYXJhbWV0ZXJJbmRleCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1ldGVyUGF0aCA9IGAvZnVuY3Rpb25zLyR7ZnVuY3Rpb25JbmRleH0vcGFyYW1ldGVycy8ke3BhcmFtZXRlckluZGV4fWBcblxuICAgICAgaWYgKHBhcmFtZXRlckluZGV4ID4gMCkgd3JpdGVyLnN5bnRoZXRpYyhcIiwgXCIsIFwicGFyYW1ldGVyIHNlcGFyYXRvclwiLCBbZGVjbGFyYXRpb25dKVxuICAgICAgd3JpdGVyLm1hcHBlZChwYXJhbWV0ZXIubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHBhcmFtZXRlciwgcGF0aDogcGFyYW1ldGVyUGF0aCwgcm9sZTogXCJuYW1lXCJ9KVxuICAgICAgd3JpdGVyLnN5bnRoZXRpYyhcIjogXCIsIFwiUHl0aG9uIGFubm90YXRpb24gc2VwYXJhdG9yXCIsIFtwYXJhbWV0ZXJdLCBbcGFyYW1ldGVyUGF0aF0pXG4gICAgICB3cml0ZXIubWFwcGVkKGVtaXRTY2FsYXJUeXBlKFwicHl0aG9uXCIsIHBhcmFtZXRlci50eXBlKSwge1xuICAgICAgICBtYXBwaW5nS2luZDogXCJleGFjdFwiLFxuICAgICAgICBub2RlOiBwYXJhbWV0ZXIudHlwZSxcbiAgICAgICAgcGF0aDogYCR7cGFyYW1ldGVyUGF0aH0vdHlwZWAsXG4gICAgICAgIHJvbGU6IFwidHlwZVwiXG4gICAgICB9KVxuICAgIH0pXG4gICAgd3JpdGVyLm1hcHBlZChcIilcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBkZWNsYXJhdGlvbn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiAtPiBcIiwgXCJQeXRob24gcmV0dXJuIGFubm90YXRpb24gc2VwYXJhdG9yXCIsIFtkZWNsYXJhdGlvbl0pXG4gICAgd3JpdGVyLm1hcHBlZChlbWl0U2NhbGFyVHlwZShcInB5dGhvblwiLCBkZWNsYXJhdGlvbi5yZXR1cm5UeXBlKSwge1xuICAgICAgbWFwcGluZ0tpbmQ6IFwiZXhhY3RcIixcbiAgICAgIG5vZGU6IGRlY2xhcmF0aW9uLnJldHVyblR5cGUsXG4gICAgICBwYXRoOiBgL2Z1bmN0aW9ucy8ke2Z1bmN0aW9uSW5kZXh9L3JldHVyblR5cGVgLFxuICAgICAgcm9sZTogXCJ0eXBlXCJcbiAgICB9KVxuICAgIHdyaXRlci5tYXBwZWQoXCI6XCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogZGVjbGFyYXRpb259KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCJcXG5cIiwgXCJsaW5lIGJyZWFrXCIsIFtkZWNsYXJhdGlvbl0pXG4gICAgZW1pdEJsb2NrKHdyaXRlciwgZGVjbGFyYXRpb24uYm9keSwgXCIgICAgXCIsIGAvZnVuY3Rpb25zLyR7ZnVuY3Rpb25JbmRleH0vYm9keWApXG4gIH0pXG5cbiAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblxcblwiLCBcImVudHJ5LXBvaW50IHNlcGFyYXRvclwiLCBbbW9kdWxlLmVudHJ5UG9pbnRdKVxuICBlbWl0QmxvY2sod3JpdGVyLCBtb2R1bGUuZW50cnlQb2ludC5ib2R5LCBcIlwiLCBcIi9lbnRyeVBvaW50L2JvZHlcIilcbn1cblxuLyoqXG4gKiBFbWl0cyBvbmUgUHl0aG9uIGluZGVudGF0aW9uIGJsb2NrLCB1c2luZyBwYXNzIG9ubHkgZm9yIGFuIGVtcHR5IHNlbWFudGljIGJsb2NrLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3dyaXRlci5qc1wiKS5Tb3VyY2VXcml0ZXJ9IHdyaXRlciAtIFNvdXJjZS1hd2FyZSB3cml0ZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkJsb2NrfSBibG9jayAtIFNlbWFudGljIGJsb2NrLlxuICogQHBhcmFtIHtzdHJpbmd9IGluZGVudCAtIExlYWRpbmcgaW5kZW50YXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIEV4YWN0IGJsb2NrIHBhdGguXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gZW1pdEJsb2NrKHdyaXRlciwgYmxvY2ssIGluZGVudCwgcGF0aCkge1xuICBpZiAoYmxvY2suc3RhdGVtZW50cy5sZW5ndGggPT0gMCkge1xuICAgIHdyaXRlci5zeW50aGV0aWMoYCR7aW5kZW50fXBhc3NcXG5gLCBcIlB5dGhvbiBlbXB0eSBibG9ja1wiLCBbYmxvY2tdLCBbcGF0aF0pXG4gICAgcmV0dXJuXG4gIH1cblxuICBibG9jay5zdGF0ZW1lbnRzLmZvckVhY2goKHN0YXRlbWVudCwgaW5kZXgpID0+IGVtaXRTdGF0ZW1lbnQod3JpdGVyLCBzdGF0ZW1lbnQsIGluZGVudCwgYCR7cGF0aH0vc3RhdGVtZW50cy8ke2luZGV4fWApKVxufVxuXG4vKipcbiAqIEVtaXRzIG9uZSBzdXBwb3J0ZWQgUHl0aG9uIHN0YXRlbWVudC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi93cml0ZXIuanNcIikuU291cmNlV3JpdGVyfSB3cml0ZXIgLSBTb3VyY2UtYXdhcmUgd3JpdGVyLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TdGF0ZW1lbnR9IHN0YXRlbWVudCAtIFNlbWFudGljIHN0YXRlbWVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmRlbnQgLSBMZWFkaW5nIGluZGVudGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBFeGFjdCBzdGF0ZW1lbnQgcGF0aC5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBlbWl0U3RhdGVtZW50KHdyaXRlciwgc3RhdGVtZW50LCBpbmRlbnQsIHBhdGgpIHtcbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiTG9jYWxEZWNsYXJhdGlvblwiIHx8IHN0YXRlbWVudC5raW5kID09IFwiQXNzaWdubWVudFN0YXRlbWVudFwiKSB7XG4gICAgZW1pdExvY2FsKHdyaXRlciwgc3RhdGVtZW50LCBpbmRlbnQsIHBhdGgpXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiSWZTdGF0ZW1lbnRcIikge1xuICAgIGVtaXRJZih3cml0ZXIsIHN0YXRlbWVudCwgaW5kZW50LCBwYXRoLCBcImlmXCIpXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHl0aG9uIFRhc2sgMDA1IGV4cHJlc3Npb24gc3RhdGVtZW50IHJlYWNoZWQgZW1pc3Npb24uXCIpXG5cbiAgd3JpdGVyLnN5bnRoZXRpYyhpbmRlbnQsIFwiaW5kZW50YXRpb25cIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiUmV0dXJuU3RhdGVtZW50XCIpIHtcbiAgICBpZiAoIXN0YXRlbWVudC5leHByZXNzaW9uKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHl0aG9uIGJhcmUgcmV0dXJuIHJlYWNoZWQgZW1pc3Npb24uXCIpXG4gICAgd3JpdGVyLm1hcHBlZChcInJldHVyblwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aH0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJyZXR1cm4gc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmV4cHJlc3Npb24sIGAke3BhdGh9L2V4cHJlc3Npb25gLCBcInB5dGhvblwiLCBpZGVudGl0eSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHJldHVyblxuICB9XG4gIGlmIChzdGF0ZW1lbnQua2luZCAhPSBcIlByaW50U3RhdGVtZW50XCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbnN1cHBvcnRlZCBQeXRob24gc3RhdGVtZW50IHJlYWNoZWQgZW1pc3Npb24uXCIpXG5cbiAgd3JpdGVyLm1hcHBlZChcInByaW50XCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogc3RhdGVtZW50LCBwYXRofSlcbiAgd3JpdGVyLm1hcHBlZChcIihcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGh9KVxuICBlbWl0RXhwcmVzc2lvbih3cml0ZXIsIHN0YXRlbWVudC5leHByZXNzaW9uLCBgJHtwYXRofS9leHByZXNzaW9uYCwgXCJweXRob25cIiwgaWRlbnRpdHkpXG4gIHdyaXRlci5tYXBwZWQoXCIpXCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogc3RhdGVtZW50LCBwYXRofSlcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImxpbmUgYnJlYWtcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbn1cblxuLyoqXG4gKiBFbWl0cyBhIFB5dGhvbiBpZiBvciBlbGlmIGFuZCBpdHMgb3B0aW9uYWwgYWx0ZXJuYXRpdmUuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vd3JpdGVyLmpzXCIpLlNvdXJjZVdyaXRlcn0gd3JpdGVyIC0gU291cmNlLWF3YXJlIHdyaXRlci5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuSWZTdGF0ZW1lbnR9IHN0YXRlbWVudCAtIEJyYW5jaC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmRlbnQgLSBMZWFkaW5nIGluZGVudGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBFeGFjdCBicmFuY2ggcGF0aC5cbiAqIEBwYXJhbSB7XCJpZlwiIHwgXCJlbGlmXCJ9IGtleXdvcmQgLSBCcmFuY2gga2V5d29yZC5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBlbWl0SWYod3JpdGVyLCBzdGF0ZW1lbnQsIGluZGVudCwgcGF0aCwga2V5d29yZCkge1xuICB3cml0ZXIuc3ludGhldGljKGluZGVudCwgXCJpbmRlbnRhdGlvblwiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICB3cml0ZXIubWFwcGVkKGtleXdvcmQsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogc3RhdGVtZW50LCBwYXRofSlcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJjb25kaXRpb25hbCBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmNvbmRpdGlvbiwgYCR7cGF0aH0vY29uZGl0aW9uYCwgXCJweXRob25cIiwgaWRlbnRpdHkpXG4gIHdyaXRlci5tYXBwZWQoXCI6XCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogc3RhdGVtZW50LmNvbnNlcXVlbnQsIHBhdGg6IGAke3BhdGh9L2NvbnNlcXVlbnRgfSlcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImxpbmUgYnJlYWtcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgZW1pdEJsb2NrKHdyaXRlciwgc3RhdGVtZW50LmNvbnNlcXVlbnQsIGAke2luZGVudH0gICAgYCwgYCR7cGF0aH0vY29uc2VxdWVudGApXG5cbiAgaWYgKCFzdGF0ZW1lbnQuYWx0ZXJuYXRlKSByZXR1cm5cbiAgaWYgKHN0YXRlbWVudC5hbHRlcm5hdGUuc3RhdGVtZW50cy5sZW5ndGggPT0gMSAmJiBzdGF0ZW1lbnQuYWx0ZXJuYXRlLnN0YXRlbWVudHNbMF0ua2luZCA9PSBcIklmU3RhdGVtZW50XCIpIHtcbiAgICBlbWl0SWYod3JpdGVyLCBzdGF0ZW1lbnQuYWx0ZXJuYXRlLnN0YXRlbWVudHNbMF0sIGluZGVudCwgYCR7cGF0aH0vYWx0ZXJuYXRlL3N0YXRlbWVudHMvMGAsIFwiZWxpZlwiKVxuICAgIHJldHVyblxuICB9XG5cbiAgd3JpdGVyLnN5bnRoZXRpYyhpbmRlbnQsIFwiaW5kZW50YXRpb25cIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgd3JpdGVyLm1hcHBlZChcImVsc2VcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGh9KVxuICB3cml0ZXIubWFwcGVkKFwiOlwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IHN0YXRlbWVudC5hbHRlcm5hdGUsIHBhdGg6IGAke3BhdGh9L2FsdGVybmF0ZWB9KVxuICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICBlbWl0QmxvY2sod3JpdGVyLCBzdGF0ZW1lbnQuYWx0ZXJuYXRlLCBgJHtpbmRlbnR9ICAgIGAsIGAke3BhdGh9L2FsdGVybmF0ZWApXG59XG5cbi8qKlxuICogRW1pdHMgb25lIGFubm90YXRlZCBsb2NhbCBkZWNsYXJhdGlvbiBvciBwbGFpbiBhc3NpZ25tZW50LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3dyaXRlci5qc1wiKS5Tb3VyY2VXcml0ZXJ9IHdyaXRlciAtIFNvdXJjZS1hd2FyZSB3cml0ZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkxvY2FsU3RhdGVtZW50fSBzdGF0ZW1lbnQgLSBMb2NhbCBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gaW5kZW50IC0gTGVhZGluZyBpbmRlbnRhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gRXhhY3Qgc3RhdGVtZW50IHBhdGguXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gZW1pdExvY2FsKHdyaXRlciwgc3RhdGVtZW50LCBpbmRlbnQsIHBhdGgpIHtcbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiTG9jYWxEZWNsYXJhdGlvblwiICYmICFzdGF0ZW1lbnQubXV0YWJsZSkge1xuICAgIHdyaXRlci5zeW50aGV0aWMoYCR7aW5kZW50fSMgQHNlbWFudGlmb2xkLWltbXV0YWJsZVxcbmAsIFwiUHl0aG9uIGltbXV0YWJsZSBsb2NhbCBjYXJyaWVyXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIH1cbiAgd3JpdGVyLnN5bnRoZXRpYyhpbmRlbnQsIFwiaW5kZW50YXRpb25cIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcblxuICBpZiAoc3RhdGVtZW50LmtpbmQgPT0gXCJBc3NpZ25tZW50U3RhdGVtZW50XCIpIHtcbiAgICB3cml0ZXIubWFwcGVkKHN0YXRlbWVudC50YXJnZXQubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHN0YXRlbWVudC50YXJnZXQsIHBhdGg6IGAke3BhdGh9L3RhcmdldGAsIHJvbGU6IFwibmFtZVwifSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImFzc2lnbm1lbnQgc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHdyaXRlci5tYXBwZWQoXCI9XCIsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGgsIHJvbGU6IFwib3BlcmF0b3JcIn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJhc3NpZ25tZW50IHNwYWNpbmdcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICBlbWl0RXhwcmVzc2lvbih3cml0ZXIsIHN0YXRlbWVudC5leHByZXNzaW9uLCBgJHtwYXRofS9leHByZXNzaW9uYCwgXCJweXRob25cIiwgaWRlbnRpdHkpXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImxpbmUgYnJlYWtcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIHdyaXRlci5tYXBwZWQoc3RhdGVtZW50Lm5hbWUsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGgsIHJvbGU6IFwibmFtZVwifSlcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIjogXCIsIFwiUHl0aG9uIGFubm90YXRpb24gc2VwYXJhdG9yXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIHdyaXRlci5tYXBwZWQoZW1pdFNjYWxhclR5cGUoXCJweXRob25cIiwgc3RhdGVtZW50LnR5cGUpLCB7XG4gICAgbWFwcGluZ0tpbmQ6IFwiZXhhY3RcIiwgbm9kZTogc3RhdGVtZW50LnR5cGUsIHBhdGg6IGAke3BhdGh9L3R5cGVgLCByb2xlOiBcInR5cGVcIlxuICB9KVxuICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImFzc2lnbm1lbnQgc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICB3cml0ZXIubWFwcGVkKFwiPVwiLCB7bWFwcGluZ0tpbmQ6IFwiZXhhY3RcIiwgbm9kZTogc3RhdGVtZW50LCBwYXRoLCByb2xlOiBcIm9wZXJhdG9yXCJ9KVxuICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImFzc2lnbm1lbnQgc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICBlbWl0RXhwcmVzc2lvbih3cml0ZXIsIHN0YXRlbWVudC5pbml0aWFsaXplciwgYCR7cGF0aH0vaW5pdGlhbGl6ZXJgLCBcInB5dGhvblwiLCBpZGVudGl0eSlcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImxpbmUgYnJlYWtcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbn1cblxuLyoqXG4gKiBSZXR1cm5zIG9uZSB1bmNoYW5nZWQgUHl0aG9uIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFNlbWFudGljIGlkZW50aWZpZXIuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBVbmNoYW5nZWQgUHl0aG9uIGlkZW50aWZpZXIuXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KG5hbWUpIHtcbiAgcmV0dXJuIG5hbWVcbn1cbiJdfQ==
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmRzL3B5dGhvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBRTNDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTTtJQUMzQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsRUFBRTtRQUN0RCxJQUFJLGFBQWEsR0FBRyxDQUFDO1lBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBRXZGLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQTtRQUNoRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDeEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO1FBQ3hGLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQTtRQUM5RCxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsRUFBRTtZQUMzRCxNQUFNLGFBQWEsR0FBRyxjQUFjLGFBQWEs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LElBQUksRUFBQyxDQUFDLENBQUE7UUFDdkUsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDNUQsY0FBYyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ3hGLENBQUM7UUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDekQsT0FBTTtJQUNSLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksZ0JBQWdCO1FBQUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO0lBRTdHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUE7SUFDdEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUNsRSxjQUFjLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDdEYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUNsRSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFB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QUMsQ0FBQyxDQUFBO0FBQzNELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxRQUFRLENBQUMsSUFBSTtJQUNwQixPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHtlbWl0RXhwcmVzc2lvbn0gZnJvbSBcIi4vc2hhcmVkLmpzXCJcbmltcG9ydCB7ZW1pdFNjYWxhclR5cGV9IGZyb20gXCIuL3NjYWxhcnMuanNcIlxuXG4vKipcbiAqIEVtaXRzIG9uZSBkZXRlcm1pbmlzdGljIHN0YW5kYWxvbmUgUHl0aG9uIHByb2dyYW0uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTW9kdWxlfSBtb2R1bGUgLSBTZW1hbnRpYyBtb2R1bGUuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vd3JpdGVyLmpzXCIpLlNvdXJjZVdyaXRlcn0gd3JpdGVyIC0gU291cmNlLWF3YXJlIHdyaXRlci5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQeXRob24obW9kdWxlLCB3cml0ZXIpIHtcbiAgbW9kdWxlLmZ1bmN0aW9ucy5mb3JFYWNoKChkZWNsYXJhdGlvbiwgZnVuY3Rpb25JbmRleCkgPT4ge1xuICAgIGlmIChmdW5jdGlvbkluZGV4ID4gMCkgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblxcblwiLCBcImRlY2xhcmF0aW9uIHNlcGFyYXRvclwiLCBbZGVjbGFyYXRpb25dKVxuXG4gICAgd3JpdGVyLm1hcHBlZChcImRlZlwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IGRlY2xhcmF0aW9ufSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImZ1bmN0aW9uIHNwYWNpbmdcIiwgW2RlY2xhcmF0aW9uXSlcbiAgICB3cml0ZXIubWFwcGVkKGRlY2xhcmF0aW9uLm5hbWUsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBkZWNsYXJhdGlvbiwgcm9sZTogXCJuYW1lXCJ9KVxuICAgIHdyaXRlci5tYXBwZWQoXCIoXCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogZGVjbGFyYXRpb259KVxuICAgIGRlY2xhcmF0aW9uLnBhcmFtZXRlcnMuZm9yRWFjaCgocGFyYW1ldGVyLCBwYXJhbWV0ZXJJbmRleCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1ldGVyUGF0aCA9IGAvZnVuY3Rpb25zLyR7ZnVuY3Rpb25JbmRleH0vcGFyYW1ldGVycy8ke3BhcmFtZXRlckluZGV4fWBcblxuICAgICAgaWYgKHBhcmFtZXRlckluZGV4ID4gMCkgd3JpdGVyLnN5bnRoZXRpYyhcIiwgXCIsIFwicGFyYW1ldGVyIHNlcGFyYXRvclwiLCBbZGVjbGFyYXRpb25dKVxuICAgICAgd3JpdGVyLm1hcHBlZChwYXJhbWV0ZXIubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHBhcmFtZXRlciwgcGF0aDogcGFyYW1ldGVyUGF0aCwgcm9sZTogXCJuYW1lXCJ9KVxuICAgICAgd3JpdGVyLnN5bnRoZXRpYyhcIjogXCIsIFwiUHl0aG9uIGFubm90YXRpb24gc2VwYXJhdG9yXCIsIFtwYXJhbWV0ZXJdLCBbcGFyYW1ldGVyUGF0aF0pXG4gICAgICB3cml0ZXIubWFwcGVkKGVtaXRTY2FsYXJUeXBlKFwicHl0aG9uXCIsIHBhcmFtZXRlci50eXBlKSwge1xuICAgICAgICBtYXBwaW5nS2luZDogXCJleGFjdFwiLFxuICAgICAgICBub2RlOiBwYXJhbWV0ZXIudHlwZSxcbiAgICAgICAgcGF0aDogYCR7cGFyYW1ldGVyUGF0aH0vdHlwZWAsXG4gICAgICAgIHJvbGU6IFwidHlwZVwiXG4gICAgICB9KVxuICAgIH0pXG4gICAgd3JpdGVyLm1hcHBlZChcIilcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBkZWNsYXJhdGlvbn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiAtPiBcIiwgXCJQeXRob24gcmV0dXJuIGFubm90YXRpb24gc2VwYXJhdG9yXCIsIFtkZWNsYXJhdGlvbl0pXG4gICAgd3JpdGVyLm1hcHBlZChlbWl0U2NhbGFyVHlwZShcInB5dGhvblwiLCBkZWNsYXJhdGlvbi5yZXR1cm5UeXBlKSwge1xuICAgICAgbWFwcGluZ0tpbmQ6IFwiZXhhY3RcIixcbiAgICAgIG5vZGU6IGRlY2xhcmF0aW9uLnJldHVyblR5cGUsXG4gICAgICBwYXRoOiBgL2Z1bmN0aW9ucy8ke2Z1bmN0aW9uSW5kZXh9L3JldHVyblR5cGVgLFxuICAgICAgcm9sZTogXCJ0eXBlXCJcbiAgICB9KVxuICAgIHdyaXRlci5tYXBwZWQoXCI6XCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogZGVjbGFyYXRpb259KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCJcXG5cIiwgXCJsaW5lIGJyZWFrXCIsIFtkZWNsYXJhdGlvbl0pXG4gICAgZW1pdEJsb2NrKHdyaXRlciwgZGVjbGFyYXRpb24uYm9keSwgXCIgICAgXCIsIGAvZnVuY3Rpb25zLyR7ZnVuY3Rpb25JbmRleH0vYm9keWApXG4gIH0pXG5cbiAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblxcblwiLCBcImVudHJ5LXBvaW50IHNlcGFyYXRvclwiLCBbbW9kdWxlLmVudHJ5UG9pbnRdKVxuICBlbWl0QmxvY2sod3JpdGVyLCBtb2R1bGUuZW50cnlQb2ludC5ib2R5LCBcIlwiLCBcIi9lbnRyeVBvaW50L2JvZHlcIilcbn1cblxuLyoqXG4gKiBFbWl0cyBvbmUgUHl0aG9uIGluZGVudGF0aW9uIGJsb2NrLCB1c2luZyBwYXNzIG9ubHkgZm9yIGFuIGVtcHR5IHNlbWFudGljIGJsb2NrLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3dyaXRlci5qc1wiKS5Tb3VyY2VXcml0ZXJ9IHdyaXRlciAtIFNvdXJjZS1hd2FyZSB3cml0ZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkJsb2NrfSBibG9jayAtIFNlbWFudGljIGJsb2NrLlxuICogQHBhcmFtIHtzdHJpbmd9IGluZGVudCAtIExlYWRpbmcgaW5kZW50YXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIEV4YWN0IGJsb2NrIHBhdGguXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gZW1pdEJsb2NrKHdyaXRlciwgYmxvY2ssIGluZGVudCwgcGF0aCkge1xuICBpZiAoYmxvY2suc3RhdGVtZW50cy5sZW5ndGggPT0gMCkge1xuICAgIHdyaXRlci5zeW50aGV0aWMoYCR7aW5kZW50fXBhc3NcXG5gLCBcIlB5dGhvbiBlbXB0eSBibG9ja1wiLCBbYmxvY2tdLCBbcGF0aF0pXG4gICAgcmV0dXJuXG4gIH1cblxuICBibG9jay5zdGF0ZW1lbnRzLmZvckVhY2goKHN0YXRlbWVudCwgaW5kZXgpID0+IGVtaXRTdGF0ZW1lbnQod3JpdGVyLCBzdGF0ZW1lbnQsIGluZGVudCwgYCR7cGF0aH0vc3RhdGVtZW50cy8ke2luZGV4fWApKVxufVxuXG4vKipcbiAqIEVtaXRzIG9uZSBzdXBwb3J0ZWQgUHl0aG9uIHN0YXRlbWVudC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi93cml0ZXIuanNcIikuU291cmNlV3JpdGVyfSB3cml0ZXIgLSBTb3VyY2UtYXdhcmUgd3JpdGVyLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TdGF0ZW1lbnR9IHN0YXRlbWVudCAtIFNlbWFudGljIHN0YXRlbWVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmRlbnQgLSBMZWFkaW5nIGluZGVudGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBFeGFjdCBzdGF0ZW1lbnQgcGF0aC5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBlbWl0U3RhdGVtZW50KHdyaXRlciwgc3RhdGVtZW50LCBpbmRlbnQsIHBhdGgpIHtcbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiTG9jYWxEZWNsYXJhdGlvblwiIHx8IHN0YXRlbWVudC5raW5kID09IFwiQXNzaWdubWVudFN0YXRlbWVudFwiKSB7XG4gICAgZW1pdExvY2FsKHdyaXRlciwgc3RhdGVtZW50LCBpbmRlbnQsIHBhdGgpXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiSWZTdGF0ZW1lbnRcIikge1xuICAgIGVtaXRJZih3cml0ZXIsIHN0YXRlbWVudCwgaW5kZW50LCBwYXRoLCBcImlmXCIpXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiKSB7XG4gICAgd3JpdGVyLnN5bnRoZXRpYyhpbmRlbnQsIFwiaW5kZW50YXRpb25cIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICBlbWl0RXhwcmVzc2lvbih3cml0ZXIsIHN0YXRlbWVudC5leHByZXNzaW9uLCBgJHtwYXRofS9leHByZXNzaW9uYCwgXCJweXRob25cIiwgaWRlbnRpdHkpXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImxpbmUgYnJlYWtcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIHdyaXRlci5zeW50aGV0aWMoaW5kZW50LCBcImluZGVudGF0aW9uXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIlJldHVyblN0YXRlbWVudFwiKSB7XG4gICAgd3JpdGVyLm1hcHBlZChcInJldHVyblwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aH0pXG4gICAgaWYgKHN0YXRlbWVudC5leHByZXNzaW9uKSB7XG4gICAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcInJldHVybiBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgICBlbWl0RXhwcmVzc2lvbih3cml0ZXIsIHN0YXRlbWVudC5leHByZXNzaW9uLCBgJHtwYXRofS9leHByZXNzaW9uYCwgXCJweXRob25cIiwgaWRlbnRpdHkpXG4gICAgfVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCJcXG5cIiwgXCJsaW5lIGJyZWFrXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHN0YXRlbWVudC5raW5kICE9IFwiUHJpbnRTdGF0ZW1lbnRcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuc3VwcG9ydGVkIFB5dGhvbiBzdGF0ZW1lbnQgcmVhY2hlZCBlbWlzc2lvbi5cIilcblxuICB3cml0ZXIubWFwcGVkKFwicHJpbnRcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGh9KVxuICB3cml0ZXIubWFwcGVkKFwiKFwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aH0pXG4gIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmV4cHJlc3Npb24sIGAke3BhdGh9L2V4cHJlc3Npb25gLCBcInB5dGhvblwiLCBpZGVudGl0eSlcbiAgd3JpdGVyLm1hcHBlZChcIilcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGh9KVxuICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxufVxuXG4vKipcbiAqIEVtaXRzIGEgUHl0aG9uIGlmIG9yIGVsaWYgYW5kIGl0cyBvcHRpb25hbCBhbHRlcm5hdGl2ZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi93cml0ZXIuanNcIikuU291cmNlV3JpdGVyfSB3cml0ZXIgLSBTb3VyY2UtYXdhcmUgd3JpdGVyLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5JZlN0YXRlbWVudH0gc3RhdGVtZW50IC0gQnJhbmNoLlxuICogQHBhcmFtIHtzdHJpbmd9IGluZGVudCAtIExlYWRpbmcgaW5kZW50YXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIEV4YWN0IGJyYW5jaCBwYXRoLlxuICogQHBhcmFtIHtcImlmXCIgfCBcImVsaWZcIn0ga2V5d29yZCAtIEJyYW5jaCBrZXl3b3JkLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGVtaXRJZih3cml0ZXIsIHN0YXRlbWVudCwgaW5kZW50LCBwYXRoLCBrZXl3b3JkKSB7XG4gIHdyaXRlci5zeW50aGV0aWMoaW5kZW50LCBcImluZGVudGF0aW9uXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIHdyaXRlci5tYXBwZWQoa2V5d29yZCwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGh9KVxuICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImNvbmRpdGlvbmFsIHNwYWNpbmdcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgZW1pdEV4cHJlc3Npb24od3JpdGVyLCBzdGF0ZW1lbnQuY29uZGl0aW9uLCBgJHtwYXRofS9jb25kaXRpb25gLCBcInB5dGhvblwiLCBpZGVudGl0eSlcbiAgd3JpdGVyLm1hcHBlZChcIjpcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQuY29uc2VxdWVudCwgcGF0aDogYCR7cGF0aH0vY29uc2VxdWVudGB9KVxuICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICBlbWl0QmxvY2sod3JpdGVyLCBzdGF0ZW1lbnQuY29uc2VxdWVudCwgYCR7aW5kZW50fSAgICBgLCBgJHtwYXRofS9jb25zZXF1ZW50YClcblxuICBpZiAoIXN0YXRlbWVudC5hbHRlcm5hdGUpIHJldHVyblxuICBpZiAoc3RhdGVtZW50LmFsdGVybmF0ZS5zdGF0ZW1lbnRzLmxlbmd0aCA9PSAxICYmIHN0YXRlbWVudC5hbHRlcm5hdGUuc3RhdGVtZW50c1swXS5raW5kID09IFwiSWZTdGF0ZW1lbnRcIikge1xuICAgIGVtaXRJZih3cml0ZXIsIHN0YXRlbWVudC5hbHRlcm5hdGUuc3RhdGVtZW50c1swXSwgaW5kZW50LCBgJHtwYXRofS9hbHRlcm5hdGUvc3RhdGVtZW50cy8wYCwgXCJlbGlmXCIpXG4gICAgcmV0dXJuXG4gIH1cblxuICB3cml0ZXIuc3ludGhldGljKGluZGVudCwgXCJpbmRlbnRhdGlvblwiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICB3cml0ZXIubWFwcGVkKFwiZWxzZVwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aH0pXG4gIHdyaXRlci5tYXBwZWQoXCI6XCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogc3RhdGVtZW50LmFsdGVybmF0ZSwgcGF0aDogYCR7cGF0aH0vYWx0ZXJuYXRlYH0pXG4gIHdyaXRlci5zeW50aGV0aWMoXCJcXG5cIiwgXCJsaW5lIGJyZWFrXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIGVtaXRCbG9jayh3cml0ZXIsIHN0YXRlbWVudC5hbHRlcm5hdGUsIGAke2luZGVudH0gICAgYCwgYCR7cGF0aH0vYWx0ZXJuYXRlYClcbn1cblxuLyoqXG4gKiBFbWl0cyBvbmUgYW5ub3RhdGVkIGxvY2FsIGRlY2xhcmF0aW9uIG9yIHBsYWluIGFzc2lnbm1lbnQuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vd3JpdGVyLmpzXCIpLlNvdXJjZVdyaXRlcn0gd3JpdGVyIC0gU291cmNlLWF3YXJlIHdyaXRlci5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuTG9jYWxTdGF0ZW1lbnR9IHN0YXRlbWVudCAtIExvY2FsIHN0YXRlbWVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmRlbnQgLSBMZWFkaW5nIGluZGVudGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBFeGFjdCBzdGF0ZW1lbnQgcGF0aC5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBlbWl0TG9jYWwod3JpdGVyLCBzdGF0ZW1lbnQsIGluZGVudCwgcGF0aCkge1xuICBpZiAoc3RhdGVtZW50LmtpbmQgPT0gXCJMb2NhbERlY2xhcmF0aW9uXCIgJiYgIXN0YXRlbWVudC5tdXRhYmxlKSB7XG4gICAgd3JpdGVyLnN5bnRoZXRpYyhgJHtpbmRlbnR9IyBAc2VtYW50aWZvbGQtaW1tdXRhYmxlXFxuYCwgXCJQeXRob24gaW1tdXRhYmxlIGxvY2FsIGNhcnJpZXJcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgfVxuICB3cml0ZXIuc3ludGhldGljKGluZGVudCwgXCJpbmRlbnRhdGlvblwiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuXG4gIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIkFzc2lnbm1lbnRTdGF0ZW1lbnRcIikge1xuICAgIHdyaXRlci5tYXBwZWQoc3RhdGVtZW50LnRhcmdldC5uYW1lLCB7bWFwcGluZ0tpbmQ6IFwiZXhhY3RcIiwgbm9kZTogc3RhdGVtZW50LnRhcmdldCwgcGF0aDogYCR7cGF0aH0vdGFyZ2V0YCwgcm9sZTogXCJuYW1lXCJ9KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCIgXCIsIFwiYXNzaWdubWVudCBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgd3JpdGVyLm1hcHBlZChcIj1cIiwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aCwgcm9sZTogXCJvcGVyYXRvclwifSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImFzc2lnbm1lbnQgc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmV4cHJlc3Npb24sIGAke3BhdGh9L2V4cHJlc3Npb25gLCBcInB5dGhvblwiLCBpZGVudGl0eSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHJldHVyblxuICB9XG5cbiAgd3JpdGVyLm1hcHBlZChzdGF0ZW1lbnQubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aCwgcm9sZTogXCJuYW1lXCJ9KVxuICB3cml0ZXIuc3ludGhldGljKFwiOiBcIiwgXCJQeXRob24gYW5ub3RhdGlvbiBzZXBhcmF0b3JcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgd3JpdGVyLm1hcHBlZChlbWl0U2NhbGFyVHlwZShcInB5dGhvblwiLCBzdGF0ZW1lbnQudHlwZSksIHtcbiAgICBtYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQudHlwZSwgcGF0aDogYCR7cGF0aH0vdHlwZWAsIHJvbGU6IFwidHlwZVwiXG4gIH0pXG4gIHdyaXRlci5zeW50aGV0aWMoXCIgXCIsIFwiYXNzaWdubWVudCBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIHdyaXRlci5tYXBwZWQoXCI9XCIsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGgsIHJvbGU6IFwib3BlcmF0b3JcIn0pXG4gIHdyaXRlci5zeW50aGV0aWMoXCIgXCIsIFwiYXNzaWdubWVudCBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmluaXRpYWxpemVyLCBgJHtwYXRofS9pbml0aWFsaXplcmAsIFwicHl0aG9uXCIsIGlkZW50aXR5KVxuICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxufVxuXG4vKipcbiAqIFJldHVybnMgb25lIHVuY2hhbmdlZCBQeXRob24gaWRlbnRpZmllci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gU2VtYW50aWMgaWRlbnRpZmllci5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFVuY2hhbmdlZCBQeXRob24gaWRlbnRpZmllci5cbiAqL1xuZnVuY3Rpb24gaWRlbnRpdHkobmFtZSkge1xuICByZXR1cm4gbmFtZVxufVxuIl19
|
|
@@ -34,7 +34,7 @@ export function emitScalarType(language, type) {
|
|
|
34
34
|
* @returns {string} Exact target spelling.
|
|
35
35
|
*/
|
|
36
36
|
export function emitSemanticType(language, type, javaBoxed = false) {
|
|
37
|
-
if (type.kind == "RecordType" || type.kind == "ReferenceType") {
|
|
37
|
+
if (type.kind == "RecordType" || type.kind == "ReferenceType" || type.kind == "InterfaceType") {
|
|
38
38
|
throw new TypeError("Nominal type emission requires declaration context.");
|
|
39
39
|
}
|
|
40
40
|
if (type.kind == "OwnedResourceType" || type.kind == "OwnedReferenceType") {
|
|
@@ -292,4 +292,4 @@ function emitKotlinString(value) {
|
|
|
292
292
|
}
|
|
293
293
|
return `${emitted}"`;
|
|
294
294
|
}
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kcy9zY2FsYXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixvS0FBb0s7QUFDcEssTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3pGLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3RGLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3pGLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ3BGLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ25HLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDbEcsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDekYsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDdEYsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDekYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDNUYsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDbEcsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDckYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJ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QU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWxFLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksTUFBTSxDQUFBO2FBQ25DLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksTUFBTSxDQUFBO2FBQ3hDLElBQUksU0FBUyxJQUFJLEdBQUc7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3RDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxHQUFHLEVBQUUsSUFBSSxTQUFTLElBQUksR0FBRztZQUFFLE9BQU8sSUFBSSxNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBOztZQUNsRyxPQUFPLElBQUksU0FBUyxDQUFBO0lBQzNCLENBQUM7SUFFRCxPQUFPLEdBQUcsT0FBTyxHQUFHLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKiogQHR5cGUge1JlYWRvbmx5PFJlY29yZDxpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UZXh0QmFja2VuZExhbmd1YWdlLCBSZWFkb25seTxSZWNvcmQ8aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuRnVuY3Rpb25SZXR1cm5UeXBlTmFtZSwgc3RyaW5nPj4+Pn0gKi9cbmNvbnN0IHRhcmdldFNjYWxhclR5cGVzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHppZzogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sXCIsIGludGVnZXI6IFwiaTY0XCIsIHN0cmluZzogXCJbXWNvbnN0IHU4XCIsIHZvaWQ6IFwidm9pZFwifSksXG4gIGRhcnQ6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImludFwiLCBzdHJpbmc6IFwiU3RyaW5nXCIsIHZvaWQ6IFwidm9pZFwifSksXG4gIHN3aWZ0OiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcIkJvb2xcIiwgaW50ZWdlcjogXCJJbnQ2NFwiLCBzdHJpbmc6IFwiU3RyaW5nXCIsIHZvaWQ6IFwiVm9pZFwifSksXG4gIHJ1c3Q6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImk2NFwiLCBzdHJpbmc6IFwiU3RyaW5nXCIsIHZvaWQ6IFwiKClcIn0pLFxuICBjcHA6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcInN0ZDo6aW50NjRfdFwiLCBzdHJpbmc6IFwic3RkOjpzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgYzogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sXCIsIGludGVnZXI6IFwiaW50NjRfdFwiLCBzdHJpbmc6IFwiU2VtYW50aWZvbGRTdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgY3NoYXJwOiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcImJvb2xcIiwgaW50ZWdlcjogXCJsb25nXCIsIHN0cmluZzogXCJzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgZ286IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImludDY0XCIsIHN0cmluZzogXCJzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgamF2YTogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sZWFuXCIsIGludGVnZXI6IFwiaW50XCIsIHN0cmluZzogXCJTdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAga290bGluOiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcIkJvb2xlYW5cIiwgaW50ZWdlcjogXCJMb25nXCIsIHN0cmluZzogXCJTdHJpbmdcIiwgdm9pZDogXCJVbml0XCJ9KSxcbiAgamF2YXNjcmlwdDogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sZWFuXCIsIGludGVnZXI6IFwibnVtYmVyXCIsIHN0cmluZzogXCJzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgcGhwOiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcImJvb2xcIiwgaW50ZWdlcjogXCJpbnRcIiwgc3RyaW5nOiBcInN0cmluZ1wiLCB2b2lkOiBcInZvaWRcIn0pLFxuICBweXRob246IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImludFwiLCBzdHJpbmc6IFwic3RyXCIsIHZvaWQ6IFwiTm9uZVwifSksXG4gIHJ1Ynk6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcIkludGVnZXJcIiwgc3RyaW5nOiBcIlN0cmluZ1wiLCB2b2lkOiBcInZvaWRcIn0pLFxuICB0eXBlc2NyaXB0OiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcImJvb2xlYW5cIiwgaW50ZWdlcjogXCJudW1iZXJcIiwgc3RyaW5nOiBcInN0cmluZ1wiLCB2b2lkOiBcInZvaWRcIn0pXG59KVxuXG4vKipcbiAqIEVtaXRzIG9uZSB0YXJnZXQtbGFuZ3VhZ2Ugc2NhbGFyIG9yIGZ1bmN0aW9uLXJldHVybiB0eXBlIHNwZWxsaW5nLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UZXh0QmFja2VuZExhbmd1YWdlfSBsYW5ndWFnZSAtIFRhcmdldCBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNGdW5jdGlvblJldHVyblR5cGV9IHR5cGUgLSBTZW1hbnRpYyB0eXBlLlxuICogQHJldHVybnMge3N0cmluZ30gVGFyZ2V0IHR5cGUgc3BlbGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWl0U2NhbGFyVHlwZShsYW5ndWFnZSwgdHlwZSkge1xuICByZXR1cm4gdHlwZS5raW5kID09IFwiVHlwZVJlZmVyZW5jZVwiID8gdGFyZ2V0U2NhbGFyVHlwZXNbbGFuZ3VhZ2VdW3R5cGUubmFtZV0gOiBcIlwiXG59XG5cbi8qKlxuICogRW1pdHMgb25lIHJlY3Vyc2l2ZWx5IHBhcmFtZXRlcml6ZWQgc2VtYW50aWMgdHlwZSBmb3IgdGhlIFRhc2sgMDA2IGNvaG9ydC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuVGV4dEJhY2tlbmRMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljRnVuY3Rpb25SZXR1cm5UeXBlfSB0eXBlIC0gU2VtYW50aWMgdHlwZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2phdmFCb3hlZF0gLSBXaGV0aGVyIEphdmEgc2NhbGFyIGFyZ3VtZW50cyByZXF1aXJlIGJveGVkIHNwZWxsaW5ncy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEV4YWN0IHRhcmdldCBzcGVsbGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRTZW1hbnRpY1R5cGUobGFuZ3VhZ2UsIHR5cGUsIGphdmFCb3hlZCA9IGZhbHNlKSB7XG4gIGlmICh0eXBlLmtpbmQgPT0gXCJSZWNvcmRUeXBlXCIgfHwgdHlwZS5raW5kID09IFwiUmVmZXJlbmNlVHlwZVwiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk5vbWluYWwgdHlwZSBlbWlzc2lvbiByZXF1aXJlcyBkZWNsYXJhdGlvbiBjb250ZXh0LlwiKVxuICB9XG4gIGlmICh0eXBlLmtpbmQgPT0gXCJPd25lZFJlc291cmNlVHlwZVwiIHx8IHR5cGUua2luZCA9PSBcIk93bmVkUmVmZXJlbmNlVHlwZVwiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk93bmVkIHR5cGUgZW1pc3Npb24gcmVxdWlyZXMgZGVjbGFyYXRpb24gY29udGV4dC5cIilcbiAgfVxuICBpZiAodHlwZS5raW5kID09IFwiVHlwZVZhcmlhYmxlUmVmZXJlbmNlXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJUeXBlLXZhcmlhYmxlIGVtaXNzaW9uIHJlcXVpcmVzIGRlY2xhcmF0aW9uIGNvbnRleHQuXCIpXG4gIGlmICh0eXBlLmtpbmQgPT0gXCJPcHRpb25hbFR5cGVcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9wdGlvbmFsIHR5cGUgZW1pc3Npb24gcmVxdWlyZXMgdGFyZ2V0LXNwZWNpZmljIGNvbnRleHQuXCIpXG4gIGlmICh0eXBlLmtpbmQgPT0gXCJUeXBlUmVmZXJlbmNlXCIpIHtcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJqYXZhXCIgJiYgamF2YUJveGVkKSB7XG4gICAgICByZXR1cm4gdHlwZS5uYW1lID09IFwiaW50ZWdlclwiID8gXCJJbnRlZ2VyXCIgOiB0eXBlLm5hbWUgPT0gXCJib29sZWFuXCIgPyBcIkJvb2xlYW5cIiA6IHR5cGUubmFtZSA9PSBcInN0cmluZ1wiID8gXCJTdHJpbmdcIiA6IFwidm9pZFwiXG4gICAgfVxuXG4gICAgcmV0dXJuIGVtaXRTY2FsYXJUeXBlKGxhbmd1YWdlLCB0eXBlKVxuICB9XG5cbiAgY29uc3QgZWxlbWVudCA9IHR5cGUua2luZCA9PSBcIkxpc3RUeXBlXCIgPyB0eXBlLmVsZW1lbnRUeXBlIDogdHlwZS52YWx1ZVR5cGVcbiAgY29uc3QgbmVzdGVkID0gZW1pdFNlbWFudGljVHlwZShsYW5ndWFnZSwgZWxlbWVudCwgbGFuZ3VhZ2UgPT0gXCJqYXZhXCIpXG5cbiAgaWYgKHR5cGUua2luZCA9PSBcIkxpc3RUeXBlXCIpIHtcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJydWJ5XCIpIHJldHVybiBgQXJyYXlbJHtuZXN0ZWR9XWBcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJwaHBcIikgcmV0dXJuIGBsaXN0PCR7bmVzdGVkfT5gXG4gICAgaWYgKGxhbmd1YWdlID09IFwiamF2YXNjcmlwdFwiIHx8IGxhbmd1YWdlID09IFwidHlwZXNjcmlwdFwiKSByZXR1cm4gYFJlYWRvbmx5QXJyYXk8JHtuZXN0ZWR9PmBcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJqYXZhXCIpIHJldHVybiBgamF2YS51dGlsLkxpc3Q8JHtuZXN0ZWR9PmBcbiAgfSBlbHNlIHtcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJydWJ5XCIpIHJldHVybiBgSGFzaFtTdHJpbmcsJHtuZXN0ZWR9XWBcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJwaHBcIikgcmV0dXJuIGBhcnJheTxzdHJpbmcsJHtuZXN0ZWR9PmBcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJqYXZhc2NyaXB0XCIgfHwgbGFuZ3VhZ2UgPT0gXCJ0eXBlc2NyaXB0XCIpIHJldHVybiBgUmVhZG9ubHlNYXA8c3RyaW5nLCAke25lc3RlZH0+YFxuICAgIGlmIChsYW5ndWFnZSA9PSBcImphdmFcIikgcmV0dXJuIGBqYXZhLnV0aWwuTWFwPFN0cmluZywke25lc3RlZH0+YFxuICB9XG5cbiAgcmV0dXJuIFwiXCJcbn1cblxuLyoqXG4gKiBFbWl0cyBhIHNhZmVseSBlc2NhcGVkIHRhcmdldC1sYW5ndWFnZSBzdHJpbmcgbGl0ZXJhbC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuVGV4dEJhY2tlbmRMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBWYWxpZCBVbmljb2RlIHNjYWxhciBzdHJpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUYXJnZXQgc3RyaW5nIGxpdGVyYWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWl0U3RyaW5nTGl0ZXJhbChsYW5ndWFnZSwgdmFsdWUpIHtcbiAgaWYgKGxhbmd1YWdlID09IFwiZGFydFwiKSByZXR1cm4gZW1pdERhcnRTdHJpbmcodmFsdWUpXG4gIGlmIChsYW5ndWFnZSA9PSBcInN3aWZ0XCIpIHJldHVybiBlbWl0U3dpZnRTdHJpbmcodmFsdWUpXG4gIGlmIChsYW5ndWFnZSA9PSBcInBocFwiKSByZXR1cm4gZW1pdFBocFN0cmluZyh2YWx1ZSlcbiAgaWYgKGxhbmd1YWdlID09IFwicnVieVwiKSByZXR1cm4gZW1pdFJ1YnlTdHJpbmcodmFsdWUpXG4gIGlmIChsYW5ndWFnZSA9PSBcImphdmFcIikgcmV0dXJuIGVtaXRKYXZhU3RyaW5nKHZhbHVlKVxuICBpZiAobGFuZ3VhZ2UgPT0gXCJrb3RsaW5cIikgcmV0dXJuIGVtaXRLb3RsaW5TdHJpbmcodmFsdWUpXG5cbiAgY29uc3QgbGl0ZXJhbCA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKVxuXG4gIGlmICh0eXBlb2YgbGl0ZXJhbCAhPSBcInN0cmluZ1wiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQSB2YWxpZGF0ZWQgc2VtYW50aWMgc3RyaW5nIGRpZCBub3Qgc2VyaWFsaXplLlwiKVxuXG4gIGNvbnN0IGVzY2FwZWRMaW5lU2VwYXJhdG9ycyA9IGxpdGVyYWwucmVwbGFjZUFsbChcIlxcdTIwMjhcIiwgXCJcXFxcdTIwMjhcIikucmVwbGFjZUFsbChcIlxcdTIwMjlcIiwgXCJcXFxcdTIwMjlcIilcblxuICByZXR1cm4gbGFuZ3VhZ2UgPT0gXCJjc2hhcnBcIiA/IGVzY2FwZWRMaW5lU2VwYXJhdG9ycy5yZXBsYWNlQWxsKFwiXFx1MDA4NVwiLCBcIlxcXFx1MDA4NVwiKSA6IGVzY2FwZWRMaW5lU2VwYXJhdG9yc1xufVxuXG4vKipcbiAqIEVtaXRzIGFuIG9yZGluYXJ5IG5vbmludGVycG9sYXRlZCBEYXJ0IHN0cmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSBWYWxpZCBVbmljb2RlIHNjYWxhciBzdHJpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBEYXJ0IHN0cmluZyBsaXRlcmFsLlxuICovXG5mdW5jdGlvbiBlbWl0RGFydFN0cmluZyh2YWx1ZSkge1xuICBsZXQgZW1pdHRlZCA9IFwiXFxcIlwiXG5cbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdmFsdWUpIHtcbiAgICBjb25zdCBjb2RlUG9pbnQgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKGNoYXJhY3Rlci5jb2RlUG9pbnRBdCgwKSlcblxuICAgIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFwiXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcIlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxcXFwiKSBlbWl0dGVkICs9IFwiXFxcXFxcXFxcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIiRcIikgZW1pdHRlZCArPSBcIlxcXFwkXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXG5cIikgZW1pdHRlZCArPSBcIlxcXFxuXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHJcIikgZW1pdHRlZCArPSBcIlxcXFxyXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHRcIikgZW1pdHRlZCArPSBcIlxcXFx0XCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXGJcIikgZW1pdHRlZCArPSBcIlxcXFxiXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXGZcIikgZW1pdHRlZCArPSBcIlxcXFxmXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHZcIikgZW1pdHRlZCArPSBcIlxcXFx2XCJcbiAgICBlbHNlIGlmIChjb2RlUG9pbnQgPCAzMiB8fCBjb2RlUG9pbnQgPT0gMTI3IHx8IGNvZGVQb2ludCA9PSAweDg1IHx8IGNvZGVQb2ludCA9PSAweDIwMjggfHwgY29kZVBvaW50ID09IDB4MjAyOSkge1xuICAgICAgZW1pdHRlZCArPSBgXFxcXHV7JHtjb2RlUG9pbnQudG9TdHJpbmcoMTYpfX1gXG4gICAgfSBlbHNlIGVtaXR0ZWQgKz0gY2hhcmFjdGVyXG4gIH1cbiAgcmV0dXJuIGAke2VtaXR0ZWR9XCJgXG59XG5cbi8qKlxuICogRW1pdHMgb25lIG5vbmludGVycG9sYXRlZCBTd2lmdCBzdHJpbmcgb3ZlciBVbmljb2RlIHNjYWxhciB2YWx1ZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBWYWxpZCBVbmljb2RlIHNjYWxhciBzdHJpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBTd2lmdCBzdHJpbmcgbGl0ZXJhbC5cbiAqL1xuZnVuY3Rpb24gZW1pdFN3aWZ0U3RyaW5nKHZhbHVlKSB7XG4gIGxldCBlbWl0dGVkID0gXCJcXFwiXCJcblxuICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiB2YWx1ZSkge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApKVxuXG4gICAgaWYgKGNoYXJhY3RlciA9PSBcIlxcXCJcIikgZW1pdHRlZCArPSBcIlxcXFxcXFwiXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFxcXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcXFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxuXCIpIGVtaXR0ZWQgKz0gXCJcXFxcblwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxyXCIpIGVtaXR0ZWQgKz0gXCJcXFxcclwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFx0XCIpIGVtaXR0ZWQgKz0gXCJcXFxcdFwiXG4gICAgZWxzZSBpZiAoY29kZVBvaW50IDwgMzIgfHwgY29kZVBvaW50ID09IDEyNyB8fCBjb2RlUG9pbnQgPT0gMHg4NSB8fCBjb2RlUG9pbnQgPT0gMHgyMDI4IHx8IGNvZGVQb2ludCA9PSAweDIwMjkpIHtcbiAgICAgIGVtaXR0ZWQgKz0gYFxcXFx1eyR7Y29kZVBvaW50LnRvU3RyaW5nKDE2KX19YFxuICAgIH0gZWxzZSBlbWl0dGVkICs9IGNoYXJhY3RlclxuICB9XG5cbiAgcmV0dXJuIGAke2VtaXR0ZWR9XCJgXG59XG5cbi8qKlxuICogRW1pdHMgYSBQSFAgZG91YmxlLXF1b3RlZCBzdHJpbmcgd2hpbGUgcHJldmVudGluZyBpbnRlcnBvbGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsaWQgVW5pY29kZSBzY2FsYXIgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gUEhQIHN0cmluZyBsaXRlcmFsLlxuICovXG5mdW5jdGlvbiBlbWl0UGhwU3RyaW5nKHZhbHVlKSB7XG4gIGxldCBlbWl0dGVkID0gXCJcXFwiXCJcblxuICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiB2YWx1ZSkge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNoYXJhY3Rlci5jb2RlUG9pbnRBdCgwKVxuXG4gICAgaWYgKGNoYXJhY3RlciA9PSBcIlxcXCJcIikgZW1pdHRlZCArPSBcIlxcXFxcXFwiXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFxcXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcXFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiJFwiKSBlbWl0dGVkICs9IFwiXFxcXCRcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcblwiKSBlbWl0dGVkICs9IFwiXFxcXG5cIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcclwiKSBlbWl0dGVkICs9IFwiXFxcXHJcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcdFwiKSBlbWl0dGVkICs9IFwiXFxcXHRcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcZlwiKSBlbWl0dGVkICs9IFwiXFxcXGZcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcdlwiKSBlbWl0dGVkICs9IFwiXFxcXHZcIlxuICAgIGVsc2UgaWYgKGNvZGVQb2ludCA9PSAyNykgZW1pdHRlZCArPSBcIlxcXFxlXCJcbiAgICBlbHNlIGlmIChjb2RlUG9pbnQgIT09IHVuZGVmaW5lZCAmJiAoY29kZVBvaW50IDwgMzIgfHwgY29kZVBvaW50ID09IDEyNykpIHtcbiAgICAgIGVtaXR0ZWQgKz0gYFxcXFx4JHtjb2RlUG9pbnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIFwiMFwiKX1gXG4gICAgfSBlbHNlIGVtaXR0ZWQgKz0gY2hhcmFjdGVyXG4gIH1cblxuICByZXR1cm4gYCR7ZW1pdHRlZH1cImBcbn1cblxuLyoqXG4gKiBFbWl0cyBhIFJ1YnkgZG91YmxlLXF1b3RlZCBzdHJpbmcgd2hpbGUgcHJldmVudGluZyBpbnRlcnBvbGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsaWQgVW5pY29kZSBzY2FsYXIgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gUnVieSBzdHJpbmcgbGl0ZXJhbC5cbiAqL1xuZnVuY3Rpb24gZW1pdFJ1YnlTdHJpbmcodmFsdWUpIHtcbiAgbGV0IGVtaXR0ZWQgPSBcIlxcXCJcIlxuXG4gIGZvciAoY29uc3QgY2hhcmFjdGVyIG9mIHZhbHVlKSB7XG4gICAgY29uc3QgY29kZVBvaW50ID0gY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApXG5cbiAgICBpZiAoY2hhcmFjdGVyID09IFwiXFxcIlwiKSBlbWl0dGVkICs9IFwiXFxcXFxcXCJcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcXFxcIikgZW1pdHRlZCArPSBcIlxcXFxcXFxcXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCIjXCIpIGVtaXR0ZWQgKz0gXCJcXFxcI1wiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxuXCIpIGVtaXR0ZWQgKz0gXCJcXFxcblwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxyXCIpIGVtaXR0ZWQgKz0gXCJcXFxcclwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFx0XCIpIGVtaXR0ZWQgKz0gXCJcXFxcdFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxmXCIpIGVtaXR0ZWQgKz0gXCJcXFxcZlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFx2XCIpIGVtaXR0ZWQgKz0gXCJcXFxcdlwiXG4gICAgZWxzZSBpZiAoY29kZVBvaW50ID09IDI3KSBlbWl0dGVkICs9IFwiXFxcXGVcIlxuICAgIGVsc2UgaWYgKGNvZGVQb2ludCAhPT0gdW5kZWZpbmVkICYmIChjb2RlUG9pbnQgPCAzMiB8fCBjb2RlUG9pbnQgPT0gMTI3KSkge1xuICAgICAgZW1pdHRlZCArPSBgXFxcXHV7JHtjb2RlUG9pbnQudG9TdHJpbmcoMTYpfX1gXG4gICAgfSBlbHNlIGVtaXR0ZWQgKz0gY2hhcmFjdGVyXG4gIH1cblxuICByZXR1cm4gYCR7ZW1pdHRlZH1cImBcbn1cblxuLyoqXG4gKiBFbWl0cyBhIEphdmEgc3RyaW5nIHVzaW5nIHN0YW5kYXJkIG9yIGZpeGVkLXdpZHRoIG9jdGFsIGNvbnRyb2wgZXNjYXBlcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFZhbGlkIFVuaWNvZGUgc2NhbGFyIHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEphdmEgc3RyaW5nIGxpdGVyYWwuXG4gKi9cbmZ1bmN0aW9uIGVtaXRKYXZhU3RyaW5nKHZhbHVlKSB7XG4gIGxldCBlbWl0dGVkID0gXCJcXFwiXCJcblxuICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiB2YWx1ZSkge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNoYXJhY3Rlci5jb2RlUG9pbnRBdCgwKVxuXG4gICAgaWYgKGNoYXJhY3RlciA9PSBcIlxcXCJcIikgZW1pdHRlZCArPSBcIlxcXFxcXFwiXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFxcXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcXFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxiXCIpIGVtaXR0ZWQgKz0gXCJcXFxcYlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFx0XCIpIGVtaXR0ZWQgKz0gXCJcXFxcdFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxuXCIpIGVtaXR0ZWQgKz0gXCJcXFxcblwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxmXCIpIGVtaXR0ZWQgKz0gXCJcXFxcZlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxyXCIpIGVtaXR0ZWQgKz0gXCJcXFxcclwiXG4gICAgZWxzZSBpZiAoY29kZVBvaW50ICE9PSB1bmRlZmluZWQgJiYgKGNvZGVQb2ludCA8IDMyIHx8IGNvZGVQb2ludCA9PSAxMjcpKSB7XG4gICAgICBlbWl0dGVkICs9IGBcXFxcJHtjb2RlUG9pbnQudG9TdHJpbmcoOCkucGFkU3RhcnQoMywgXCIwXCIpfWBcbiAgICB9IGVsc2UgZW1pdHRlZCArPSBjaGFyYWN0ZXJcbiAgfVxuXG4gIHJldHVybiBgJHtlbWl0dGVkfVwiYFxufVxuXG4vKipcbiAqIEVtaXRzIGFuIG9yZGluYXJ5IG5vbmludGVycG9sYXRlZCBLb3RsaW4gc3RyaW5nIG92ZXIgVW5pY29kZSBzY2FsYXIgdmFsdWVzLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsaWQgVW5pY29kZSBzY2FsYXIgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gS290bGluIHN0cmluZyBsaXRlcmFsLlxuICovXG5mdW5jdGlvbiBlbWl0S290bGluU3RyaW5nKHZhbHVlKSB7XG4gIGxldCBlbWl0dGVkID0gXCJcXFwiXCJcblxuICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiB2YWx1ZSkge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IC8qKiBAdHlwZSB7bnVtYmVyfSAqLyAoY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApKVxuXG4gICAgaWYgKGNoYXJhY3RlciA9PSBcIlxcXCJcIikgZW1pdHRlZCArPSBcIlxcXFxcXFwiXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFxcXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcXFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiJFwiKSBlbWl0dGVkICs9IFwiXFxcXCRcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcYlwiKSBlbWl0dGVkICs9IFwiXFxcXGJcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcdFwiKSBlbWl0dGVkICs9IFwiXFxcXHRcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcblwiKSBlbWl0dGVkICs9IFwiXFxcXG5cIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcclwiKSBlbWl0dGVkICs9IFwiXFxcXHJcIlxuICAgIGVsc2UgaWYgKGNvZGVQb2ludCA8IDMyIHx8IGNvZGVQb2ludCA9PSAxMjcpIGVtaXR0ZWQgKz0gYFxcXFx1JHtjb2RlUG9pbnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDQsIFwiMFwiKX1gXG4gICAgZWxzZSBlbWl0dGVkICs9IGNoYXJhY3RlclxuICB9XG5cbiAgcmV0dXJuIGAke2VtaXR0ZWR9XCJgXG59XG4iXX0=
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kcy9zY2FsYXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixvS0FBb0s7QUFDcEssTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3pGLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3RGLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3pGLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ3BGLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ25HLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDbEcsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDekYsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDdEYsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDekYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDNUYsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDbEcsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDckYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDckYsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDMUYsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUM7Q0FDbkcsQ0FBQyxDQUFBO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJO0lBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQ25GLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEdBQUcsS0FBSztJQUNoRSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUYsTUFBTSxJQUFJLFNBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksbUJBQW1CLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQzFFLE1BQU0sSUFBSSxTQUFTLENBQUMsbURBQW1ELENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLHVCQUF1QjtRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsc0RBQXNELENBQUMsQ0FBQTtJQUNySCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksY0FBYztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsMERBQTBELENBQUMsQ0FBQTtJQUNoSCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksZUFBZSxFQUFFLENBQUM7UUFDakMsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBQzVILENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQzNFLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxDQUFBO0lBRXRFLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM1QixJQUFJLFFBQVEsSUFBSSxNQUFNO1lBQUUsT0FBTyxTQUFTLE1BQU0sR0FBRyxDQUFBO1FBQ2pELElBQUksUUFBUSxJQUFJLEtBQUs7WUFBRSxPQUFPLFFBQVEsTUFBTSxHQUFHLENBQUE7UUFDL0MsSUFBSSxRQUFRLElBQUksWUFBWSxJQUFJLFFBQVEsSUFBSSxZQUFZO1lBQUUsT0FBTyxpQkFBaUIsTUFBTSxHQUFHLENBQUE7UUFDM0YsSUFBSSxRQUFRLElBQUksTUFBTTtZQUFFLE9BQU8sa0JBQWtCLE1BQU0sR0FBRyxDQUFBO0lBQzVELENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxRQUFRLElBQUksTUFBTTtZQUFFLE9BQU8sZUFBZSxNQUFNLEdBQUcsQ0FBQTtRQUN2RCxJQUFJLFFBQVEsSUFBSSxLQUFLO1lBQUUsT0FBTyxnQkFBZ0IsTUFBTSxHQUFHLENBQUE7UUFDdkQsSUFBSSxRQUFRLElBQUksWUFBWSxJQUFJLFFBQVEsSUFBSSxZQUFZO1lBQUUsT0FBTyx1QkFBdUIsTUFBTSxHQUFHLENBQUE7UUFDakcsSUFBSSxRQUFRLElBQUksTUFBTTtZQUFFLE9BQU8sd0JBQXdCLE1BQU0sR0FBRyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsS0FBSztJQUMvQyxJQUFJLFFBQVEsSUFBSSxNQUFNO1FBQUUsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEQsSUFBSSxRQUFRLElBQUksT0FBTztRQUFFLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RELElBQUksUUFBUSxJQUFJLEtBQUs7UUFBRSxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRCxJQUFJLFFBQVEsSUFBSSxNQUFNO1FBQUUsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEQsSUFBSSxRQUFRLElBQUksTUFBTTtRQUFFLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BELElBQUksUUFBUSxJQUFJLFFBQVE7UUFBRSxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXhELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFckMsSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRO1FBQUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO0lBRXJHLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUVyRyxPQUFPLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFBO0FBQzdHLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxjQUFjLENBQUMsS0FBSztJQUMzQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFFbEIsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUVsRSxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQTthQUNuQyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQTthQUN4QyxJQUFJLFNBQVMsSUFBSSxHQUFHO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN0QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsR0FBRyxFQUFFLElBQUksU0FBUyxJQUFJLEdBQUcsSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQy9HLE9BQU8sSUFBSSxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQTtRQUM3QyxDQUFDOztZQUFNLE9BQU8sSUFBSSxTQUFTLENBQUE7SUFDN0IsQ0FBQztJQUNELE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQTtBQUN0QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZUFBZSxDQUFDLEtBQUs7SUFDNUIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBRWxCLEtBQUssTUFBTSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFbEUsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxNQUFNLENBQUE7YUFDbkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxNQUFNLENBQUE7YUFDeEMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLEdBQUcsRUFBRSxJQUFJLFNBQVMsSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMvRyxPQUFPLElBQUksT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUE7UUFDN0MsQ0FBQzs7WUFBTSxPQUFPLElBQUksU0FBUyxDQUFBO0lBQzdCLENBQUM7SUFFRCxPQUFPLEdBQUcsT0FBTyxHQUFHLENBQUE7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxLQUFLO0lBQzFCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQTtJQUVsQixLQUFLLE1BQU0sU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzlCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxNQUFNLENBQUE7YUFDbkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxNQUFNLENBQUE7YUFDeEMsSUFBSSxTQUFTLElBQUksR0FBRztZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdEMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDdkMsSUFBSSxTQUFTLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7YUFDckMsSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsSUFBSSxTQUFTLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6RSxPQUFPLElBQUksTUFBTSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQTtRQUM1RCxDQUFDOztZQUFNLE9BQU8sSUFBSSxTQUFTLENBQUE7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQTtBQUN0QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsY0FBYyxDQUFDLEtBQUs7SUFDM0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBRWxCLEtBQUssTUFBTSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxQyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQTthQUNuQyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQTthQUN4QyxJQUFJLFNBQVMsSUFBSSxHQUFHO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN0QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxFQUFFO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUNyQyxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE9BQU8sSUFBSSxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQTtRQUM3QyxDQUFDOztZQUFNLE9BQU8sSUFBSSxTQUFTLENBQUE7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQTtBQUN0QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsY0FBYyxDQUFDLEtBQUs7SUFDM0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBRWxCLEtBQUssTUFBTSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxQyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQTthQUNuQyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQTthQUN4QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQTthQUN2QyxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBO1FBQzFELENBQUM7O1lBQU0sT0FBTyxJQUFJLFNBQVMsQ0FBQTtJQUM3QixDQUFDO0lBRUQsT0FBTyxHQUFHLE9BQU8sR0FBRyxDQUFBO0FBQ3RCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFLO0lBQzdCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQTtJQUVsQixLQUFLLE1BQU0sU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzlCLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWxFLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksTUFBTSxDQUFBO2FBQ25DLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksTUFBTSxDQUFBO2FBQ3hDLElBQUksU0FBUyxJQUFJLEdBQUc7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3RDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksS0FBSyxDQUFBO2FBQ3ZDLElBQUksU0FBUyxHQUFHLEVBQUUsSUFBSSxTQUFTLElBQUksR0FBRztZQUFFLE9BQU8sSUFBSSxNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFBOztZQUNsRyxPQUFPLElBQUksU0FBUyxDQUFBO0lBQzNCLENBQUM7SUFFRCxPQUFPLEdBQUcsT0FBTyxHQUFHLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKiogQHR5cGUge1JlYWRvbmx5PFJlY29yZDxpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UZXh0QmFja2VuZExhbmd1YWdlLCBSZWFkb25seTxSZWNvcmQ8aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuRnVuY3Rpb25SZXR1cm5UeXBlTmFtZSwgc3RyaW5nPj4+Pn0gKi9cbmNvbnN0IHRhcmdldFNjYWxhclR5cGVzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHppZzogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sXCIsIGludGVnZXI6IFwiaTY0XCIsIHN0cmluZzogXCJbXWNvbnN0IHU4XCIsIHZvaWQ6IFwidm9pZFwifSksXG4gIGRhcnQ6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImludFwiLCBzdHJpbmc6IFwiU3RyaW5nXCIsIHZvaWQ6IFwidm9pZFwifSksXG4gIHN3aWZ0OiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcIkJvb2xcIiwgaW50ZWdlcjogXCJJbnQ2NFwiLCBzdHJpbmc6IFwiU3RyaW5nXCIsIHZvaWQ6IFwiVm9pZFwifSksXG4gIHJ1c3Q6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImk2NFwiLCBzdHJpbmc6IFwiU3RyaW5nXCIsIHZvaWQ6IFwiKClcIn0pLFxuICBjcHA6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcInN0ZDo6aW50NjRfdFwiLCBzdHJpbmc6IFwic3RkOjpzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgYzogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sXCIsIGludGVnZXI6IFwiaW50NjRfdFwiLCBzdHJpbmc6IFwiU2VtYW50aWZvbGRTdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgY3NoYXJwOiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcImJvb2xcIiwgaW50ZWdlcjogXCJsb25nXCIsIHN0cmluZzogXCJzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgZ286IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImludDY0XCIsIHN0cmluZzogXCJzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgamF2YTogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sZWFuXCIsIGludGVnZXI6IFwiaW50XCIsIHN0cmluZzogXCJTdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAga290bGluOiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcIkJvb2xlYW5cIiwgaW50ZWdlcjogXCJMb25nXCIsIHN0cmluZzogXCJTdHJpbmdcIiwgdm9pZDogXCJVbml0XCJ9KSxcbiAgamF2YXNjcmlwdDogT2JqZWN0LmZyZWV6ZSh7Ym9vbGVhbjogXCJib29sZWFuXCIsIGludGVnZXI6IFwibnVtYmVyXCIsIHN0cmluZzogXCJzdHJpbmdcIiwgdm9pZDogXCJ2b2lkXCJ9KSxcbiAgcGhwOiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcImJvb2xcIiwgaW50ZWdlcjogXCJpbnRcIiwgc3RyaW5nOiBcInN0cmluZ1wiLCB2b2lkOiBcInZvaWRcIn0pLFxuICBweXRob246IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcImludFwiLCBzdHJpbmc6IFwic3RyXCIsIHZvaWQ6IFwiTm9uZVwifSksXG4gIHJ1Ynk6IE9iamVjdC5mcmVlemUoe2Jvb2xlYW46IFwiYm9vbFwiLCBpbnRlZ2VyOiBcIkludGVnZXJcIiwgc3RyaW5nOiBcIlN0cmluZ1wiLCB2b2lkOiBcInZvaWRcIn0pLFxuICB0eXBlc2NyaXB0OiBPYmplY3QuZnJlZXplKHtib29sZWFuOiBcImJvb2xlYW5cIiwgaW50ZWdlcjogXCJudW1iZXJcIiwgc3RyaW5nOiBcInN0cmluZ1wiLCB2b2lkOiBcInZvaWRcIn0pXG59KVxuXG4vKipcbiAqIEVtaXRzIG9uZSB0YXJnZXQtbGFuZ3VhZ2Ugc2NhbGFyIG9yIGZ1bmN0aW9uLXJldHVybiB0eXBlIHNwZWxsaW5nLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UZXh0QmFja2VuZExhbmd1YWdlfSBsYW5ndWFnZSAtIFRhcmdldCBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNGdW5jdGlvblJldHVyblR5cGV9IHR5cGUgLSBTZW1hbnRpYyB0eXBlLlxuICogQHJldHVybnMge3N0cmluZ30gVGFyZ2V0IHR5cGUgc3BlbGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWl0U2NhbGFyVHlwZShsYW5ndWFnZSwgdHlwZSkge1xuICByZXR1cm4gdHlwZS5raW5kID09IFwiVHlwZVJlZmVyZW5jZVwiID8gdGFyZ2V0U2NhbGFyVHlwZXNbbGFuZ3VhZ2VdW3R5cGUubmFtZV0gOiBcIlwiXG59XG5cbi8qKlxuICogRW1pdHMgb25lIHJlY3Vyc2l2ZWx5IHBhcmFtZXRlcml6ZWQgc2VtYW50aWMgdHlwZSBmb3IgdGhlIFRhc2sgMDA2IGNvaG9ydC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuVGV4dEJhY2tlbmRMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljRnVuY3Rpb25SZXR1cm5UeXBlfSB0eXBlIC0gU2VtYW50aWMgdHlwZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2phdmFCb3hlZF0gLSBXaGV0aGVyIEphdmEgc2NhbGFyIGFyZ3VtZW50cyByZXF1aXJlIGJveGVkIHNwZWxsaW5ncy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEV4YWN0IHRhcmdldCBzcGVsbGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRTZW1hbnRpY1R5cGUobGFuZ3VhZ2UsIHR5cGUsIGphdmFCb3hlZCA9IGZhbHNlKSB7XG4gIGlmICh0eXBlLmtpbmQgPT0gXCJSZWNvcmRUeXBlXCIgfHwgdHlwZS5raW5kID09IFwiUmVmZXJlbmNlVHlwZVwiIHx8IHR5cGUua2luZCA9PSBcIkludGVyZmFjZVR5cGVcIikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJOb21pbmFsIHR5cGUgZW1pc3Npb24gcmVxdWlyZXMgZGVjbGFyYXRpb24gY29udGV4dC5cIilcbiAgfVxuICBpZiAodHlwZS5raW5kID09IFwiT3duZWRSZXNvdXJjZVR5cGVcIiB8fCB0eXBlLmtpbmQgPT0gXCJPd25lZFJlZmVyZW5jZVR5cGVcIikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPd25lZCB0eXBlIGVtaXNzaW9uIHJlcXVpcmVzIGRlY2xhcmF0aW9uIGNvbnRleHQuXCIpXG4gIH1cbiAgaWYgKHR5cGUua2luZCA9PSBcIlR5cGVWYXJpYWJsZVJlZmVyZW5jZVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVHlwZS12YXJpYWJsZSBlbWlzc2lvbiByZXF1aXJlcyBkZWNsYXJhdGlvbiBjb250ZXh0LlwiKVxuICBpZiAodHlwZS5raW5kID09IFwiT3B0aW9uYWxUeXBlXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPcHRpb25hbCB0eXBlIGVtaXNzaW9uIHJlcXVpcmVzIHRhcmdldC1zcGVjaWZpYyBjb250ZXh0LlwiKVxuICBpZiAodHlwZS5raW5kID09IFwiVHlwZVJlZmVyZW5jZVwiKSB7XG4gICAgaWYgKGxhbmd1YWdlID09IFwiamF2YVwiICYmIGphdmFCb3hlZCkge1xuICAgICAgcmV0dXJuIHR5cGUubmFtZSA9PSBcImludGVnZXJcIiA/IFwiSW50ZWdlclwiIDogdHlwZS5uYW1lID09IFwiYm9vbGVhblwiID8gXCJCb29sZWFuXCIgOiB0eXBlLm5hbWUgPT0gXCJzdHJpbmdcIiA/IFwiU3RyaW5nXCIgOiBcInZvaWRcIlxuICAgIH1cblxuICAgIHJldHVybiBlbWl0U2NhbGFyVHlwZShsYW5ndWFnZSwgdHlwZSlcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnQgPSB0eXBlLmtpbmQgPT0gXCJMaXN0VHlwZVwiID8gdHlwZS5lbGVtZW50VHlwZSA6IHR5cGUudmFsdWVUeXBlXG4gIGNvbnN0IG5lc3RlZCA9IGVtaXRTZW1hbnRpY1R5cGUobGFuZ3VhZ2UsIGVsZW1lbnQsIGxhbmd1YWdlID09IFwiamF2YVwiKVxuXG4gIGlmICh0eXBlLmtpbmQgPT0gXCJMaXN0VHlwZVwiKSB7XG4gICAgaWYgKGxhbmd1YWdlID09IFwicnVieVwiKSByZXR1cm4gYEFycmF5WyR7bmVzdGVkfV1gXG4gICAgaWYgKGxhbmd1YWdlID09IFwicGhwXCIpIHJldHVybiBgbGlzdDwke25lc3RlZH0+YFxuICAgIGlmIChsYW5ndWFnZSA9PSBcImphdmFzY3JpcHRcIiB8fCBsYW5ndWFnZSA9PSBcInR5cGVzY3JpcHRcIikgcmV0dXJuIGBSZWFkb25seUFycmF5PCR7bmVzdGVkfT5gXG4gICAgaWYgKGxhbmd1YWdlID09IFwiamF2YVwiKSByZXR1cm4gYGphdmEudXRpbC5MaXN0PCR7bmVzdGVkfT5gXG4gIH0gZWxzZSB7XG4gICAgaWYgKGxhbmd1YWdlID09IFwicnVieVwiKSByZXR1cm4gYEhhc2hbU3RyaW5nLCR7bmVzdGVkfV1gXG4gICAgaWYgKGxhbmd1YWdlID09IFwicGhwXCIpIHJldHVybiBgYXJyYXk8c3RyaW5nLCR7bmVzdGVkfT5gXG4gICAgaWYgKGxhbmd1YWdlID09IFwiamF2YXNjcmlwdFwiIHx8IGxhbmd1YWdlID09IFwidHlwZXNjcmlwdFwiKSByZXR1cm4gYFJlYWRvbmx5TWFwPHN0cmluZywgJHtuZXN0ZWR9PmBcbiAgICBpZiAobGFuZ3VhZ2UgPT0gXCJqYXZhXCIpIHJldHVybiBgamF2YS51dGlsLk1hcDxTdHJpbmcsJHtuZXN0ZWR9PmBcbiAgfVxuXG4gIHJldHVybiBcIlwiXG59XG5cbi8qKlxuICogRW1pdHMgYSBzYWZlbHkgZXNjYXBlZCB0YXJnZXQtbGFuZ3VhZ2Ugc3RyaW5nIGxpdGVyYWwuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlRleHRCYWNrZW5kTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gVGFyZ2V0IGxhbmd1YWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsaWQgVW5pY29kZSBzY2FsYXIgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gVGFyZ2V0IHN0cmluZyBsaXRlcmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdFN0cmluZ0xpdGVyYWwobGFuZ3VhZ2UsIHZhbHVlKSB7XG4gIGlmIChsYW5ndWFnZSA9PSBcImRhcnRcIikgcmV0dXJuIGVtaXREYXJ0U3RyaW5nKHZhbHVlKVxuICBpZiAobGFuZ3VhZ2UgPT0gXCJzd2lmdFwiKSByZXR1cm4gZW1pdFN3aWZ0U3RyaW5nKHZhbHVlKVxuICBpZiAobGFuZ3VhZ2UgPT0gXCJwaHBcIikgcmV0dXJuIGVtaXRQaHBTdHJpbmcodmFsdWUpXG4gIGlmIChsYW5ndWFnZSA9PSBcInJ1YnlcIikgcmV0dXJuIGVtaXRSdWJ5U3RyaW5nKHZhbHVlKVxuICBpZiAobGFuZ3VhZ2UgPT0gXCJqYXZhXCIpIHJldHVybiBlbWl0SmF2YVN0cmluZyh2YWx1ZSlcbiAgaWYgKGxhbmd1YWdlID09IFwia290bGluXCIpIHJldHVybiBlbWl0S290bGluU3RyaW5nKHZhbHVlKVxuXG4gIGNvbnN0IGxpdGVyYWwgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSlcblxuICBpZiAodHlwZW9mIGxpdGVyYWwgIT0gXCJzdHJpbmdcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkEgdmFsaWRhdGVkIHNlbWFudGljIHN0cmluZyBkaWQgbm90IHNlcmlhbGl6ZS5cIilcblxuICBjb25zdCBlc2NhcGVkTGluZVNlcGFyYXRvcnMgPSBsaXRlcmFsLnJlcGxhY2VBbGwoXCJcXHUyMDI4XCIsIFwiXFxcXHUyMDI4XCIpLnJlcGxhY2VBbGwoXCJcXHUyMDI5XCIsIFwiXFxcXHUyMDI5XCIpXG5cbiAgcmV0dXJuIGxhbmd1YWdlID09IFwiY3NoYXJwXCIgPyBlc2NhcGVkTGluZVNlcGFyYXRvcnMucmVwbGFjZUFsbChcIlxcdTAwODVcIiwgXCJcXFxcdTAwODVcIikgOiBlc2NhcGVkTGluZVNlcGFyYXRvcnNcbn1cblxuLyoqXG4gKiBFbWl0cyBhbiBvcmRpbmFyeSBub25pbnRlcnBvbGF0ZWQgRGFydCBzdHJpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgVmFsaWQgVW5pY29kZSBzY2FsYXIgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gRGFydCBzdHJpbmcgbGl0ZXJhbC5cbiAqL1xuZnVuY3Rpb24gZW1pdERhcnRTdHJpbmcodmFsdWUpIHtcbiAgbGV0IGVtaXR0ZWQgPSBcIlxcXCJcIlxuXG4gIGZvciAoY29uc3QgY2hhcmFjdGVyIG9mIHZhbHVlKSB7XG4gICAgY29uc3QgY29kZVBvaW50ID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChjaGFyYWN0ZXIuY29kZVBvaW50QXQoMCkpXG5cbiAgICBpZiAoY2hhcmFjdGVyID09IFwiXFxcIlwiKSBlbWl0dGVkICs9IFwiXFxcXFxcXCJcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcXFxcIikgZW1pdHRlZCArPSBcIlxcXFxcXFxcXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCIkXCIpIGVtaXR0ZWQgKz0gXCJcXFxcJFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxuXCIpIGVtaXR0ZWQgKz0gXCJcXFxcblwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxyXCIpIGVtaXR0ZWQgKz0gXCJcXFxcclwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFx0XCIpIGVtaXR0ZWQgKz0gXCJcXFxcdFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxiXCIpIGVtaXR0ZWQgKz0gXCJcXFxcYlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxmXCIpIGVtaXR0ZWQgKz0gXCJcXFxcZlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFx2XCIpIGVtaXR0ZWQgKz0gXCJcXFxcdlwiXG4gICAgZWxzZSBpZiAoY29kZVBvaW50IDwgMzIgfHwgY29kZVBvaW50ID09IDEyNyB8fCBjb2RlUG9pbnQgPT0gMHg4NSB8fCBjb2RlUG9pbnQgPT0gMHgyMDI4IHx8IGNvZGVQb2ludCA9PSAweDIwMjkpIHtcbiAgICAgIGVtaXR0ZWQgKz0gYFxcXFx1eyR7Y29kZVBvaW50LnRvU3RyaW5nKDE2KX19YFxuICAgIH0gZWxzZSBlbWl0dGVkICs9IGNoYXJhY3RlclxuICB9XG4gIHJldHVybiBgJHtlbWl0dGVkfVwiYFxufVxuXG4vKipcbiAqIEVtaXRzIG9uZSBub25pbnRlcnBvbGF0ZWQgU3dpZnQgc3RyaW5nIG92ZXIgVW5pY29kZSBzY2FsYXIgdmFsdWVzLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsaWQgVW5pY29kZSBzY2FsYXIgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gU3dpZnQgc3RyaW5nIGxpdGVyYWwuXG4gKi9cbmZ1bmN0aW9uIGVtaXRTd2lmdFN0cmluZyh2YWx1ZSkge1xuICBsZXQgZW1pdHRlZCA9IFwiXFxcIlwiXG5cbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdmFsdWUpIHtcbiAgICBjb25zdCBjb2RlUG9pbnQgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKGNoYXJhY3Rlci5jb2RlUG9pbnRBdCgwKSlcblxuICAgIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFwiXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcIlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxcXFwiKSBlbWl0dGVkICs9IFwiXFxcXFxcXFxcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcblwiKSBlbWl0dGVkICs9IFwiXFxcXG5cIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcclwiKSBlbWl0dGVkICs9IFwiXFxcXHJcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcdFwiKSBlbWl0dGVkICs9IFwiXFxcXHRcIlxuICAgIGVsc2UgaWYgKGNvZGVQb2ludCA8IDMyIHx8IGNvZGVQb2ludCA9PSAxMjcgfHwgY29kZVBvaW50ID09IDB4ODUgfHwgY29kZVBvaW50ID09IDB4MjAyOCB8fCBjb2RlUG9pbnQgPT0gMHgyMDI5KSB7XG4gICAgICBlbWl0dGVkICs9IGBcXFxcdXske2NvZGVQb2ludC50b1N0cmluZygxNil9fWBcbiAgICB9IGVsc2UgZW1pdHRlZCArPSBjaGFyYWN0ZXJcbiAgfVxuXG4gIHJldHVybiBgJHtlbWl0dGVkfVwiYFxufVxuXG4vKipcbiAqIEVtaXRzIGEgUEhQIGRvdWJsZS1xdW90ZWQgc3RyaW5nIHdoaWxlIHByZXZlbnRpbmcgaW50ZXJwb2xhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFZhbGlkIFVuaWNvZGUgc2NhbGFyIHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFBIUCBzdHJpbmcgbGl0ZXJhbC5cbiAqL1xuZnVuY3Rpb24gZW1pdFBocFN0cmluZyh2YWx1ZSkge1xuICBsZXQgZW1pdHRlZCA9IFwiXFxcIlwiXG5cbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdmFsdWUpIHtcbiAgICBjb25zdCBjb2RlUG9pbnQgPSBjaGFyYWN0ZXIuY29kZVBvaW50QXQoMClcblxuICAgIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFwiXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcIlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxcXFwiKSBlbWl0dGVkICs9IFwiXFxcXFxcXFxcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIiRcIikgZW1pdHRlZCArPSBcIlxcXFwkXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXG5cIikgZW1pdHRlZCArPSBcIlxcXFxuXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHJcIikgZW1pdHRlZCArPSBcIlxcXFxyXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHRcIikgZW1pdHRlZCArPSBcIlxcXFx0XCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXGZcIikgZW1pdHRlZCArPSBcIlxcXFxmXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHZcIikgZW1pdHRlZCArPSBcIlxcXFx2XCJcbiAgICBlbHNlIGlmIChjb2RlUG9pbnQgPT0gMjcpIGVtaXR0ZWQgKz0gXCJcXFxcZVwiXG4gICAgZWxzZSBpZiAoY29kZVBvaW50ICE9PSB1bmRlZmluZWQgJiYgKGNvZGVQb2ludCA8IDMyIHx8IGNvZGVQb2ludCA9PSAxMjcpKSB7XG4gICAgICBlbWl0dGVkICs9IGBcXFxceCR7Y29kZVBvaW50LnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIil9YFxuICAgIH0gZWxzZSBlbWl0dGVkICs9IGNoYXJhY3RlclxuICB9XG5cbiAgcmV0dXJuIGAke2VtaXR0ZWR9XCJgXG59XG5cbi8qKlxuICogRW1pdHMgYSBSdWJ5IGRvdWJsZS1xdW90ZWQgc3RyaW5nIHdoaWxlIHByZXZlbnRpbmcgaW50ZXJwb2xhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFZhbGlkIFVuaWNvZGUgc2NhbGFyIHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJ1Ynkgc3RyaW5nIGxpdGVyYWwuXG4gKi9cbmZ1bmN0aW9uIGVtaXRSdWJ5U3RyaW5nKHZhbHVlKSB7XG4gIGxldCBlbWl0dGVkID0gXCJcXFwiXCJcblxuICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiB2YWx1ZSkge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNoYXJhY3Rlci5jb2RlUG9pbnRBdCgwKVxuXG4gICAgaWYgKGNoYXJhY3RlciA9PSBcIlxcXCJcIikgZW1pdHRlZCArPSBcIlxcXFxcXFwiXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFxcXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcXFwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiI1wiKSBlbWl0dGVkICs9IFwiXFxcXCNcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcblwiKSBlbWl0dGVkICs9IFwiXFxcXG5cIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcclwiKSBlbWl0dGVkICs9IFwiXFxcXHJcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcdFwiKSBlbWl0dGVkICs9IFwiXFxcXHRcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcZlwiKSBlbWl0dGVkICs9IFwiXFxcXGZcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcdlwiKSBlbWl0dGVkICs9IFwiXFxcXHZcIlxuICAgIGVsc2UgaWYgKGNvZGVQb2ludCA9PSAyNykgZW1pdHRlZCArPSBcIlxcXFxlXCJcbiAgICBlbHNlIGlmIChjb2RlUG9pbnQgIT09IHVuZGVmaW5lZCAmJiAoY29kZVBvaW50IDwgMzIgfHwgY29kZVBvaW50ID09IDEyNykpIHtcbiAgICAgIGVtaXR0ZWQgKz0gYFxcXFx1eyR7Y29kZVBvaW50LnRvU3RyaW5nKDE2KX19YFxuICAgIH0gZWxzZSBlbWl0dGVkICs9IGNoYXJhY3RlclxuICB9XG5cbiAgcmV0dXJuIGAke2VtaXR0ZWR9XCJgXG59XG5cbi8qKlxuICogRW1pdHMgYSBKYXZhIHN0cmluZyB1c2luZyBzdGFuZGFyZCBvciBmaXhlZC13aWR0aCBvY3RhbCBjb250cm9sIGVzY2FwZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBWYWxpZCBVbmljb2RlIHNjYWxhciBzdHJpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBKYXZhIHN0cmluZyBsaXRlcmFsLlxuICovXG5mdW5jdGlvbiBlbWl0SmF2YVN0cmluZyh2YWx1ZSkge1xuICBsZXQgZW1pdHRlZCA9IFwiXFxcIlwiXG5cbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdmFsdWUpIHtcbiAgICBjb25zdCBjb2RlUG9pbnQgPSBjaGFyYWN0ZXIuY29kZVBvaW50QXQoMClcblxuICAgIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFwiXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcIlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxcXFwiKSBlbWl0dGVkICs9IFwiXFxcXFxcXFxcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcYlwiKSBlbWl0dGVkICs9IFwiXFxcXGJcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcdFwiKSBlbWl0dGVkICs9IFwiXFxcXHRcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcblwiKSBlbWl0dGVkICs9IFwiXFxcXG5cIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcZlwiKSBlbWl0dGVkICs9IFwiXFxcXGZcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIlxcclwiKSBlbWl0dGVkICs9IFwiXFxcXHJcIlxuICAgIGVsc2UgaWYgKGNvZGVQb2ludCAhPT0gdW5kZWZpbmVkICYmIChjb2RlUG9pbnQgPCAzMiB8fCBjb2RlUG9pbnQgPT0gMTI3KSkge1xuICAgICAgZW1pdHRlZCArPSBgXFxcXCR7Y29kZVBvaW50LnRvU3RyaW5nKDgpLnBhZFN0YXJ0KDMsIFwiMFwiKX1gXG4gICAgfSBlbHNlIGVtaXR0ZWQgKz0gY2hhcmFjdGVyXG4gIH1cblxuICByZXR1cm4gYCR7ZW1pdHRlZH1cImBcbn1cblxuLyoqXG4gKiBFbWl0cyBhbiBvcmRpbmFyeSBub25pbnRlcnBvbGF0ZWQgS290bGluIHN0cmluZyBvdmVyIFVuaWNvZGUgc2NhbGFyIHZhbHVlcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFZhbGlkIFVuaWNvZGUgc2NhbGFyIHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEtvdGxpbiBzdHJpbmcgbGl0ZXJhbC5cbiAqL1xuZnVuY3Rpb24gZW1pdEtvdGxpblN0cmluZyh2YWx1ZSkge1xuICBsZXQgZW1pdHRlZCA9IFwiXFxcIlwiXG5cbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdmFsdWUpIHtcbiAgICBjb25zdCBjb2RlUG9pbnQgPSAvKiogQHR5cGUge251bWJlcn0gKi8gKGNoYXJhY3Rlci5jb2RlUG9pbnRBdCgwKSlcblxuICAgIGlmIChjaGFyYWN0ZXIgPT0gXCJcXFwiXCIpIGVtaXR0ZWQgKz0gXCJcXFxcXFxcIlwiXG4gICAgZWxzZSBpZiAoY2hhcmFjdGVyID09IFwiXFxcXFwiKSBlbWl0dGVkICs9IFwiXFxcXFxcXFxcIlxuICAgIGVsc2UgaWYgKGNoYXJhY3RlciA9PSBcIiRcIikgZW1pdHRlZCArPSBcIlxcXFwkXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXGJcIikgZW1pdHRlZCArPSBcIlxcXFxiXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHRcIikgZW1pdHRlZCArPSBcIlxcXFx0XCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXG5cIikgZW1pdHRlZCArPSBcIlxcXFxuXCJcbiAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT0gXCJcXHJcIikgZW1pdHRlZCArPSBcIlxcXFxyXCJcbiAgICBlbHNlIGlmIChjb2RlUG9pbnQgPCAzMiB8fCBjb2RlUG9pbnQgPT0gMTI3KSBlbWl0dGVkICs9IGBcXFxcdSR7Y29kZVBvaW50LnRvU3RyaW5nKDE2KS5wYWRTdGFydCg0LCBcIjBcIil9YFxuICAgIGVsc2UgZW1pdHRlZCArPSBjaGFyYWN0ZXJcbiAgfVxuXG4gIHJldHVybiBgJHtlbWl0dGVkfVwiYFxufVxuIl19
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Checks the intentionally narrow backend contract.
|
|
3
3
|
* @param {import("../semantic/types.js").SemanticModule} module - Semantic module.
|
|
4
4
|
* @param {import("../semantic/types.js").BackendLanguage} language - Backend language or binary target.
|
|
5
|
-
* @param {{externalDeclarationIds?: Set<string>, program?: boolean, visibleFunctions?: Map<string, import("../semantic/types.js").FunctionDeclaration>, visibleRecords?: Map<string, import("../semantic/types.js").RecordDeclaration>, visibleClasses?: Map<string, import("../semantic/types.js").ClassDeclaration>, visibleErrors?: Map<string, import("../semantic/types.js").ErrorDeclaration>, visibleCallEffects?: Map<string, Set<string>>}} [options] - Resolved program validation context.
|
|
5
|
+
* @param {{externalDeclarationIds?: Set<string>, program?: boolean, visibleFunctions?: Map<string, import("../semantic/types.js").FunctionDeclaration>, visibleRecords?: Map<string, import("../semantic/types.js").RecordDeclaration>, visibleClasses?: Map<string, import("../semantic/types.js").ClassDeclaration>, visibleInterfaces?: Map<string, import("../semantic/types.js").InterfaceDeclaration>, visibleErrors?: Map<string, import("../semantic/types.js").ErrorDeclaration>, visibleCallEffects?: Map<string, Set<string>>}} [options] - Resolved program validation context.
|
|
6
6
|
* @returns {void}
|
|
7
7
|
*/
|
|
8
8
|
export declare function validateBackendModule(module: import("../semantic/types.js").SemanticModule, language: import("../semantic/types.js").BackendLanguage, options?: {
|
|
@@ -11,6 +11,7 @@ export declare function validateBackendModule(module: import("../semantic/types.
|
|
|
11
11
|
visibleFunctions?: Map<string, import("../semantic/types.js").FunctionDeclaration>;
|
|
12
12
|
visibleRecords?: Map<string, import("../semantic/types.js").RecordDeclaration>;
|
|
13
13
|
visibleClasses?: Map<string, import("../semantic/types.js").ClassDeclaration>;
|
|
14
|
+
visibleInterfaces?: Map<string, import("../semantic/types.js").InterfaceDeclaration>;
|
|
14
15
|
visibleErrors?: Map<string, import("../semantic/types.js").ErrorDeclaration>;
|
|
15
16
|
visibleCallEffects?: Map<string, Set<string>>;
|
|
16
17
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/backends/shared.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/backends/shared.js"],"names":[],"mappings":"AAuDA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EALjC,OAAO,sBAAsB,EAAE,cAKE,EAAE,QAAQ,EAJ3C,OAAO,sBAAsB,EAAE,eAIY,EAAE,OAAO,AAH5D,CACA,EADQ;IAAC,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAGrc,GAFvD,IAAI,CAqHhB;AA2hED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAPpB,OAAO,aAAa,EAAE,YAOF,EAAE,IAAI,EAN1B,OAAO,sBAAsB,EAAE,0BAML,EAAE,IAAI,EALhC,MAKgC,EAAE,QAAQ,EAJ1C,OAAO,sBAAsB,EAAE,mBAIW,EAAE,SAAS,AAH7D,CACA,EADQ,OAG6D,GAF3D,IAAI,CAoFhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAP1B,OAAO,aAAa,EAAE,YAOI,EAAE,UAAU,EANtC,OAAO,sBAAsB,EAAE,UAMO,EAAE,IAAI,EAL5C,MAK4C,EAAE,QAAQ,EAJtD,OAAO,sBAAsB,EAAE,mBAIuB,EAAE,cAAc,EAHtE,CAAC,IAAI,EAAE,MAAM,KAAK,MAGoD,GAFpE,IAAI,CAgahB;AAkED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAJ9B,OAAO,aAAa,EAAE,YAIQ,EAAE,UAAU,EAH1C,OAAO,sBAAsB,EAAE,UAGW,GAFxC,MAAM,CAiClB;AAWD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAH1C,OAAO,sBAAsB,EAAE,cAGW,GAFxC,OAAO,CAKnB"}
|