1 | /**
|
---|
2 | * @license
|
---|
3 | * Copyright Google LLC All Rights Reserved.
|
---|
4 | *
|
---|
5 | * Use of this source code is governed by an MIT-style license that can be
|
---|
6 | * found in the LICENSE file at https://angular.io/license
|
---|
7 | */
|
---|
8 | (function (factory) {
|
---|
9 | if (typeof module === "object" && typeof module.exports === "object") {
|
---|
10 | var v = factory(require, exports);
|
---|
11 | if (v !== undefined) module.exports = v;
|
---|
12 | }
|
---|
13 | else if (typeof define === "function" && define.amd) {
|
---|
14 | define("@angular/compiler-cli/src/ngtsc/partial_evaluator/src/dynamic", ["require", "exports"], factory);
|
---|
15 | }
|
---|
16 | })(function (require, exports) {
|
---|
17 | "use strict";
|
---|
18 | Object.defineProperty(exports, "__esModule", { value: true });
|
---|
19 | exports.DynamicValue = void 0;
|
---|
20 | /**
|
---|
21 | * Represents a value which cannot be determined statically.
|
---|
22 | */
|
---|
23 | var DynamicValue = /** @class */ (function () {
|
---|
24 | function DynamicValue(node, reason, code) {
|
---|
25 | this.node = node;
|
---|
26 | this.reason = reason;
|
---|
27 | this.code = code;
|
---|
28 | }
|
---|
29 | DynamicValue.fromDynamicInput = function (node, input) {
|
---|
30 | return new DynamicValue(node, input, 0 /* DYNAMIC_INPUT */);
|
---|
31 | };
|
---|
32 | DynamicValue.fromDynamicString = function (node) {
|
---|
33 | return new DynamicValue(node, undefined, 1 /* DYNAMIC_STRING */);
|
---|
34 | };
|
---|
35 | DynamicValue.fromExternalReference = function (node, ref) {
|
---|
36 | return new DynamicValue(node, ref, 2 /* EXTERNAL_REFERENCE */);
|
---|
37 | };
|
---|
38 | DynamicValue.fromUnsupportedSyntax = function (node) {
|
---|
39 | return new DynamicValue(node, undefined, 3 /* UNSUPPORTED_SYNTAX */);
|
---|
40 | };
|
---|
41 | DynamicValue.fromUnknownIdentifier = function (node) {
|
---|
42 | return new DynamicValue(node, undefined, 4 /* UNKNOWN_IDENTIFIER */);
|
---|
43 | };
|
---|
44 | DynamicValue.fromInvalidExpressionType = function (node, value) {
|
---|
45 | return new DynamicValue(node, value, 5 /* INVALID_EXPRESSION_TYPE */);
|
---|
46 | };
|
---|
47 | DynamicValue.fromComplexFunctionCall = function (node, fn) {
|
---|
48 | return new DynamicValue(node, fn, 6 /* COMPLEX_FUNCTION_CALL */);
|
---|
49 | };
|
---|
50 | DynamicValue.fromDynamicType = function (node) {
|
---|
51 | return new DynamicValue(node, undefined, 7 /* DYNAMIC_TYPE */);
|
---|
52 | };
|
---|
53 | DynamicValue.fromUnknown = function (node) {
|
---|
54 | return new DynamicValue(node, undefined, 8 /* UNKNOWN */);
|
---|
55 | };
|
---|
56 | DynamicValue.prototype.isFromDynamicInput = function () {
|
---|
57 | return this.code === 0 /* DYNAMIC_INPUT */;
|
---|
58 | };
|
---|
59 | DynamicValue.prototype.isFromDynamicString = function () {
|
---|
60 | return this.code === 1 /* DYNAMIC_STRING */;
|
---|
61 | };
|
---|
62 | DynamicValue.prototype.isFromExternalReference = function () {
|
---|
63 | return this.code === 2 /* EXTERNAL_REFERENCE */;
|
---|
64 | };
|
---|
65 | DynamicValue.prototype.isFromUnsupportedSyntax = function () {
|
---|
66 | return this.code === 3 /* UNSUPPORTED_SYNTAX */;
|
---|
67 | };
|
---|
68 | DynamicValue.prototype.isFromUnknownIdentifier = function () {
|
---|
69 | return this.code === 4 /* UNKNOWN_IDENTIFIER */;
|
---|
70 | };
|
---|
71 | DynamicValue.prototype.isFromInvalidExpressionType = function () {
|
---|
72 | return this.code === 5 /* INVALID_EXPRESSION_TYPE */;
|
---|
73 | };
|
---|
74 | DynamicValue.prototype.isFromComplexFunctionCall = function () {
|
---|
75 | return this.code === 6 /* COMPLEX_FUNCTION_CALL */;
|
---|
76 | };
|
---|
77 | DynamicValue.prototype.isFromDynamicType = function () {
|
---|
78 | return this.code === 7 /* DYNAMIC_TYPE */;
|
---|
79 | };
|
---|
80 | DynamicValue.prototype.isFromUnknown = function () {
|
---|
81 | return this.code === 8 /* UNKNOWN */;
|
---|
82 | };
|
---|
83 | DynamicValue.prototype.accept = function (visitor) {
|
---|
84 | switch (this.code) {
|
---|
85 | case 0 /* DYNAMIC_INPUT */:
|
---|
86 | return visitor.visitDynamicInput(this);
|
---|
87 | case 1 /* DYNAMIC_STRING */:
|
---|
88 | return visitor.visitDynamicString(this);
|
---|
89 | case 2 /* EXTERNAL_REFERENCE */:
|
---|
90 | return visitor.visitExternalReference(this);
|
---|
91 | case 3 /* UNSUPPORTED_SYNTAX */:
|
---|
92 | return visitor.visitUnsupportedSyntax(this);
|
---|
93 | case 4 /* UNKNOWN_IDENTIFIER */:
|
---|
94 | return visitor.visitUnknownIdentifier(this);
|
---|
95 | case 5 /* INVALID_EXPRESSION_TYPE */:
|
---|
96 | return visitor.visitInvalidExpressionType(this);
|
---|
97 | case 6 /* COMPLEX_FUNCTION_CALL */:
|
---|
98 | return visitor.visitComplexFunctionCall(this);
|
---|
99 | case 7 /* DYNAMIC_TYPE */:
|
---|
100 | return visitor.visitDynamicType(this);
|
---|
101 | case 8 /* UNKNOWN */:
|
---|
102 | return visitor.visitUnknown(this);
|
---|
103 | }
|
---|
104 | };
|
---|
105 | return DynamicValue;
|
---|
106 | }());
|
---|
107 | exports.DynamicValue = DynamicValue;
|
---|
108 | });
|
---|
109 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3Ivc3JjL2R5bmFtaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBK0VIOztPQUVHO0lBQ0g7UUFDRSxzQkFDYSxJQUFhLEVBQVcsTUFBUyxFQUFVLElBQXdCO1lBQW5FLFNBQUksR0FBSixJQUFJLENBQVM7WUFBVyxXQUFNLEdBQU4sTUFBTSxDQUFHO1lBQVUsU0FBSSxHQUFKLElBQUksQ0FBb0I7UUFBRyxDQUFDO1FBRTdFLDZCQUFnQixHQUF2QixVQUF3QixJQUFhLEVBQUUsS0FBbUI7WUFDeEQsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyx3QkFBbUMsQ0FBQztRQUN6RSxDQUFDO1FBRU0sOEJBQWlCLEdBQXhCLFVBQXlCLElBQWE7WUFDcEMsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyx5QkFBb0MsQ0FBQztRQUM5RSxDQUFDO1FBRU0sa0NBQXFCLEdBQTVCLFVBQTZCLElBQWEsRUFBRSxHQUE4QjtZQUV4RSxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLDZCQUF3QyxDQUFDO1FBQzVFLENBQUM7UUFFTSxrQ0FBcUIsR0FBNUIsVUFBNkIsSUFBYTtZQUN4QyxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLDZCQUF3QyxDQUFDO1FBQ2xGLENBQUM7UUFFTSxrQ0FBcUIsR0FBNUIsVUFBNkIsSUFBbUI7WUFDOUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyw2QkFBd0MsQ0FBQztRQUNsRixDQUFDO1FBRU0sc0NBQXlCLEdBQWhDLFVBQWlDLElBQWEsRUFBRSxLQUFjO1lBQzVELE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssa0NBQTZDLENBQUM7UUFDbkYsQ0FBQztRQUVNLG9DQUF1QixHQUE5QixVQUErQixJQUFhLEVBQUUsRUFBc0I7WUFFbEUsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxnQ0FBMkMsQ0FBQztRQUM5RSxDQUFDO1FBRU0sNEJBQWUsR0FBdEIsVUFBdUIsSUFBaUI7WUFDdEMsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyx1QkFBa0MsQ0FBQztRQUM1RSxDQUFDO1FBRU0sd0JBQVcsR0FBbEIsVUFBbUIsSUFBYTtZQUM5QixPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLGtCQUE2QixDQUFDO1FBQ3ZFLENBQUM7UUFFRCx5Q0FBa0IsR0FBbEI7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLDBCQUFxQyxDQUFDO1FBQ3hELENBQUM7UUFFRCwwQ0FBbUIsR0FBbkI7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLDJCQUFzQyxDQUFDO1FBQ3pELENBQUM7UUFFRCw4Q0FBdUIsR0FBdkI7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLCtCQUEwQyxDQUFDO1FBQzdELENBQUM7UUFFRCw4Q0FBdUIsR0FBdkI7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLCtCQUEwQyxDQUFDO1FBQzdELENBQUM7UUFFRCw4Q0FBdUIsR0FBdkI7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLCtCQUEwQyxDQUFDO1FBQzdELENBQUM7UUFFRCxrREFBMkIsR0FBM0I7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLG9DQUErQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxnREFBeUIsR0FBekI7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLGtDQUE2QyxDQUFDO1FBQ2hFLENBQUM7UUFFRCx3Q0FBaUIsR0FBakI7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLHlCQUFvQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxvQ0FBYSxHQUFiO1lBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxvQkFBK0IsQ0FBQztRQUNsRCxDQUFDO1FBRUQsNkJBQU0sR0FBTixVQUFVLE9BQStCO1lBQ3ZDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDakI7b0JBQ0UsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBNkMsQ0FBQyxDQUFDO2dCQUNsRjtvQkFDRSxPQUFPLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUM7b0JBQ0UsT0FBTyxPQUFPLENBQUMsc0JBQXNCLENBQ2pDLElBQTBELENBQUMsQ0FBQztnQkFDbEU7b0JBQ0UsT0FBTyxPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDO29CQUNFLE9BQU8sT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5QztvQkFDRSxPQUFPLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQ7b0JBQ0UsT0FBTyxPQUFPLENBQUMsd0JBQXdCLENBQ25DLElBQW1ELENBQUMsQ0FBQztnQkFDM0Q7b0JBQ0UsT0FBTyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDO29CQUNFLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUM7UUFDSCxtQkFBQztJQUFELENBQUMsQUF0R0QsSUFzR0M7SUF0R1ksb0NBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7RnVuY3Rpb25EZWZpbml0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuLyoqXG4gKiBUaGUgcmVhc29uIHdoeSBhIHZhbHVlIGNhbm5vdCBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIER5bmFtaWNWYWx1ZVJlYXNvbiB7XG4gIC8qKlxuICAgKiBBIHZhbHVlIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHksIGJlY2F1c2UgaXQgY29udGFpbnMgYSB0ZXJtIHRoYXQgY291bGQgbm90IGJlXG4gICAqIGRldGVybWluZWQgc3RhdGljYWxseS5cbiAgICogKEUuZy4gYSBwcm9wZXJ0eSBhc3NpZ25tZW50IG9yIGNhbGwgZXhwcmVzc2lvbiB3aGVyZSB0aGUgbGhzIGlzIGEgYER5bmFtaWNWYWx1ZWAsIGEgdGVtcGxhdGVcbiAgICogbGl0ZXJhbCB3aXRoIGEgZHluYW1pYyBleHByZXNzaW9uLCBhbiBvYmplY3QgbGl0ZXJhbCB3aXRoIGEgc3ByZWFkIGFzc2lnbm1lbnQgd2hpY2ggY291bGQgbm90XG4gICAqIGJlIGRldGVybWluZWQgc3RhdGljYWxseSwgZXRjLilcbiAgICovXG4gIERZTkFNSUNfSU5QVVQsXG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIGNvdWxkIG5vdCBiZSBzdGF0aWNhbGx5IGV2YWx1YXRlZC5cbiAgICogKEUuZy4gYSBkeW5hbWljYWxseSBjb25zdHJ1Y3RlZCBvYmplY3QgcHJvcGVydHkgbmFtZSBvciBhIHRlbXBsYXRlIGxpdGVyYWwgZXhwcmVzc2lvbiB0aGF0XG4gICAqIGNvdWxkIG5vdCBiZSBzdGF0aWNhbGx5IHJlc29sdmVkIHRvIGEgcHJpbWl0aXZlIHZhbHVlLilcbiAgICovXG4gIERZTkFNSUNfU1RSSU5HLFxuXG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbCByZWZlcmVuY2UgY291bGQgbm90IGJlIHJlc29sdmVkIHRvIGEgdmFsdWUgd2hpY2ggY2FuIGJlIGV2YWx1YXRlZC5cbiAgICogRm9yIGV4YW1wbGUgYSBjYWxsIGV4cHJlc3Npb24gZm9yIGEgZnVuY3Rpb24gZGVjbGFyZWQgaW4gYC5kLnRzYCwgb3IgYWNjZXNzaW5nIG5hdGl2ZSBnbG9iYWxzXG4gICAqIHN1Y2ggYXMgYHdpbmRvd2AuXG4gICAqL1xuICBFWFRFUk5BTF9SRUZFUkVOQ0UsXG5cbiAgLyoqXG4gICAqIFN5bnRheCB0aGF0IGBTdGF0aWNJbnRlcnByZXRlcmAgZG9lc24ndCBrbm93IGhvdyB0byBldmFsdWF0ZSwgZm9yIGV4YW1wbGUgYSB0eXBlIG9mXG4gICAqIGB0cy5FeHByZXNzaW9uYCB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQuXG4gICAqL1xuICBVTlNVUFBPUlRFRF9TWU5UQVgsXG5cbiAgLyoqXG4gICAqIEEgZGVjbGFyYXRpb24gb2YgYSBgdHMuSWRlbnRpZmllcmAgY291bGQgbm90IGJlIGZvdW5kLlxuICAgKi9cbiAgVU5LTk9XTl9JREVOVElGSUVSLFxuXG4gIC8qKlxuICAgKiBBIHZhbHVlIGNvdWxkIGJlIHJlc29sdmVkLCBidXQgaXMgbm90IGFuIGFjY2VwdGFibGUgdHlwZSBmb3IgdGhlIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWQuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBhdHRlbXB0aW5nIHRvIGNhbGwgYSBub24tY2FsbGFibGUgZXhwcmVzc2lvbi5cbiAgICovXG4gIElOVkFMSURfRVhQUkVTU0lPTl9UWVBFLFxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIGNhbGwgY291bGQgbm90IGJlIGV2YWx1YXRlZCBhcyB0aGUgZnVuY3Rpb24ncyBib2R5IGlzIG5vdCBhIHNpbmdsZSByZXR1cm4gc3RhdGVtZW50LlxuICAgKi9cbiAgQ09NUExFWF9GVU5DVElPTl9DQUxMLFxuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgY291bGQgbm90IGJlIGRldGVybWluZWQgYmVjYXVzZSBpdCBjb250YWlucyB0eXBlIGluZm9ybWF0aW9uIHRoYXQgY2Fubm90IGJlXG4gICAqIHN0YXRpY2FsbHkgZXZhbHVhdGVkLiBUaGlzIGhhcHBlbnMgd2hlbiBwcm9kdWNpbmcgYSB2YWx1ZSBmcm9tIHR5cGUgaW5mb3JtYXRpb24sIGJ1dCB0aGUgdmFsdWVcbiAgICogb2YgdGhlIGdpdmVuIHR5cGUgY2Fubm90IGJlIGRldGVybWluZWQgc3RhdGljYWxseS5cbiAgICpcbiAgICogRS5nLiBldmFsdWF0aW5nIGEgdHVwbGUuXG4gICAqXG4gICAqICAgYGRlY2xhcmUgY29uc3QgZm9vOiBbc3RyaW5nXTtgXG4gICAqXG4gICAqICBFdmFsdWF0aW5nIGBmb29gIGdpdmVzIGEgRHluYW1pY1ZhbHVlIHdyYXBwZWQgaW4gYW4gYXJyYXkgd2l0aCBhIHJlYXNvbiBvZiBEWU5BTUlDX1RZUEUuIFRoaXNcbiAgICogaXMgYmVjYXVzZSB0aGUgc3RhdGljIGV2YWx1YXRvciBoYXMgYSBgc3RyaW5nYCB0eXBlIGZvciB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGlzIHR1cGxlLCBhbmRcbiAgICogdGhlIHZhbHVlIG9mIHRoYXQgc3RyaW5nIGNhbm5vdCBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkuIFRoZSB0eXBlIGBzdHJpbmdgIHBlcm1pdHMgaXQgdG8gYmVcbiAgICogJ2ZvbycsICdiYXInIG9yIGFueSBhcmJpdHJhcnkgc3RyaW5nLCBzbyB3ZSBldmFsdWF0ZSBpdCB0byBhIER5bmFtaWNWYWx1ZS5cbiAgICovXG4gIERZTkFNSUNfVFlQRSxcblxuICAvKipcbiAgICogQSB2YWx1ZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBzdGF0aWNhbGx5IGZvciBhbnkgcmVhc29uIG90aGVyIHRoZSBhYm92ZS5cbiAgICovXG4gIFVOS05PV04sXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHZhbHVlIHdoaWNoIGNhbm5vdCBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEeW5hbWljVmFsdWU8UiA9IHVua25vd24+IHtcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAgIHJlYWRvbmx5IG5vZGU6IHRzLk5vZGUsIHJlYWRvbmx5IHJlYXNvbjogUiwgcHJpdmF0ZSBjb2RlOiBEeW5hbWljVmFsdWVSZWFzb24pIHt9XG5cbiAgc3RhdGljIGZyb21EeW5hbWljSW5wdXQobm9kZTogdHMuTm9kZSwgaW5wdXQ6IER5bmFtaWNWYWx1ZSk6IER5bmFtaWNWYWx1ZTxEeW5hbWljVmFsdWU+IHtcbiAgICByZXR1cm4gbmV3IER5bmFtaWNWYWx1ZShub2RlLCBpbnB1dCwgRHluYW1pY1ZhbHVlUmVhc29uLkRZTkFNSUNfSU5QVVQpO1xuICB9XG5cbiAgc3RhdGljIGZyb21EeW5hbWljU3RyaW5nKG5vZGU6IHRzLk5vZGUpOiBEeW5hbWljVmFsdWUge1xuICAgIHJldHVybiBuZXcgRHluYW1pY1ZhbHVlKG5vZGUsIHVuZGVmaW5lZCwgRHluYW1pY1ZhbHVlUmVhc29uLkRZTkFNSUNfU1RSSU5HKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRXh0ZXJuYWxSZWZlcmVuY2Uobm9kZTogdHMuTm9kZSwgcmVmOiBSZWZlcmVuY2U8dHMuRGVjbGFyYXRpb24+KTpcbiAgICAgIER5bmFtaWNWYWx1ZTxSZWZlcmVuY2U8dHMuRGVjbGFyYXRpb24+PiB7XG4gICAgcmV0dXJuIG5ldyBEeW5hbWljVmFsdWUobm9kZSwgcmVmLCBEeW5hbWljVmFsdWVSZWFzb24uRVhURVJOQUxfUkVGRVJFTkNFKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVW5zdXBwb3J0ZWRTeW50YXgobm9kZTogdHMuTm9kZSk6IER5bmFtaWNWYWx1ZSB7XG4gICAgcmV0dXJuIG5ldyBEeW5hbWljVmFsdWUobm9kZSwgdW5kZWZpbmVkLCBEeW5hbWljVmFsdWVSZWFzb24uVU5TVVBQT1JURURfU1lOVEFYKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVW5rbm93bklkZW50aWZpZXIobm9kZTogdHMuSWRlbnRpZmllcik6IER5bmFtaWNWYWx1ZSB7XG4gICAgcmV0dXJuIG5ldyBEeW5hbWljVmFsdWUobm9kZSwgdW5kZWZpbmVkLCBEeW5hbWljVmFsdWVSZWFzb24uVU5LTk9XTl9JREVOVElGSUVSKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSW52YWxpZEV4cHJlc3Npb25UeXBlKG5vZGU6IHRzLk5vZGUsIHZhbHVlOiB1bmtub3duKTogRHluYW1pY1ZhbHVlPHVua25vd24+IHtcbiAgICByZXR1cm4gbmV3IER5bmFtaWNWYWx1ZShub2RlLCB2YWx1ZSwgRHluYW1pY1ZhbHVlUmVhc29uLklOVkFMSURfRVhQUkVTU0lPTl9UWVBFKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29tcGxleEZ1bmN0aW9uQ2FsbChub2RlOiB0cy5Ob2RlLCBmbjogRnVuY3Rpb25EZWZpbml0aW9uKTpcbiAgICAgIER5bmFtaWNWYWx1ZTxGdW5jdGlvbkRlZmluaXRpb24+IHtcbiAgICByZXR1cm4gbmV3IER5bmFtaWNWYWx1ZShub2RlLCBmbiwgRHluYW1pY1ZhbHVlUmVhc29uLkNPTVBMRVhfRlVOQ1RJT05fQ0FMTCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUR5bmFtaWNUeXBlKG5vZGU6IHRzLlR5cGVOb2RlKTogRHluYW1pY1ZhbHVlIHtcbiAgICByZXR1cm4gbmV3IER5bmFtaWNWYWx1ZShub2RlLCB1bmRlZmluZWQsIER5bmFtaWNWYWx1ZVJlYXNvbi5EWU5BTUlDX1RZUEUpO1xuICB9XG5cbiAgc3RhdGljIGZyb21Vbmtub3duKG5vZGU6IHRzLk5vZGUpOiBEeW5hbWljVmFsdWUge1xuICAgIHJldHVybiBuZXcgRHluYW1pY1ZhbHVlKG5vZGUsIHVuZGVmaW5lZCwgRHluYW1pY1ZhbHVlUmVhc29uLlVOS05PV04pO1xuICB9XG5cbiAgaXNGcm9tRHluYW1pY0lucHV0KHRoaXM6IER5bmFtaWNWYWx1ZTxSPik6IHRoaXMgaXMgRHluYW1pY1ZhbHVlPER5bmFtaWNWYWx1ZT4ge1xuICAgIHJldHVybiB0aGlzLmNvZGUgPT09IER5bmFtaWNWYWx1ZVJlYXNvbi5EWU5BTUlDX0lOUFVUO1xuICB9XG5cbiAgaXNGcm9tRHluYW1pY1N0cmluZyh0aGlzOiBEeW5hbWljVmFsdWU8Uj4pOiB0aGlzIGlzIER5bmFtaWNWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuY29kZSA9PT0gRHluYW1pY1ZhbHVlUmVhc29uLkRZTkFNSUNfU1RSSU5HO1xuICB9XG5cbiAgaXNGcm9tRXh0ZXJuYWxSZWZlcmVuY2UodGhpczogRHluYW1pY1ZhbHVlPFI+KTogdGhpcyBpcyBEeW5hbWljVmFsdWU8UmVmZXJlbmNlPHRzLkRlY2xhcmF0aW9uPj4ge1xuICAgIHJldHVybiB0aGlzLmNvZGUgPT09IER5bmFtaWNWYWx1ZVJlYXNvbi5FWFRFUk5BTF9SRUZFUkVOQ0U7XG4gIH1cblxuICBpc0Zyb21VbnN1cHBvcnRlZFN5bnRheCh0aGlzOiBEeW5hbWljVmFsdWU8Uj4pOiB0aGlzIGlzIER5bmFtaWNWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuY29kZSA9PT0gRHluYW1pY1ZhbHVlUmVhc29uLlVOU1VQUE9SVEVEX1NZTlRBWDtcbiAgfVxuXG4gIGlzRnJvbVVua25vd25JZGVudGlmaWVyKHRoaXM6IER5bmFtaWNWYWx1ZTxSPik6IHRoaXMgaXMgRHluYW1pY1ZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5jb2RlID09PSBEeW5hbWljVmFsdWVSZWFzb24uVU5LTk9XTl9JREVOVElGSUVSO1xuICB9XG5cbiAgaXNGcm9tSW52YWxpZEV4cHJlc3Npb25UeXBlKHRoaXM6IER5bmFtaWNWYWx1ZTxSPik6IHRoaXMgaXMgRHluYW1pY1ZhbHVlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5jb2RlID09PSBEeW5hbWljVmFsdWVSZWFzb24uSU5WQUxJRF9FWFBSRVNTSU9OX1RZUEU7XG4gIH1cblxuICBpc0Zyb21Db21wbGV4RnVuY3Rpb25DYWxsKHRoaXM6IER5bmFtaWNWYWx1ZTxSPik6IHRoaXMgaXMgRHluYW1pY1ZhbHVlPEZ1bmN0aW9uRGVmaW5pdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNvZGUgPT09IER5bmFtaWNWYWx1ZVJlYXNvbi5DT01QTEVYX0ZVTkNUSU9OX0NBTEw7XG4gIH1cblxuICBpc0Zyb21EeW5hbWljVHlwZSh0aGlzOiBEeW5hbWljVmFsdWU8Uj4pOiB0aGlzIGlzIER5bmFtaWNWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMuY29kZSA9PT0gRHluYW1pY1ZhbHVlUmVhc29uLkRZTkFNSUNfVFlQRTtcbiAgfVxuXG4gIGlzRnJvbVVua25vd24odGhpczogRHluYW1pY1ZhbHVlPFI+KTogdGhpcyBpcyBEeW5hbWljVmFsdWUge1xuICAgIHJldHVybiB0aGlzLmNvZGUgPT09IER5bmFtaWNWYWx1ZVJlYXNvbi5VTktOT1dOO1xuICB9XG5cbiAgYWNjZXB0PFI+KHZpc2l0b3I6IER5bmFtaWNWYWx1ZVZpc2l0b3I8Uj4pOiBSIHtcbiAgICBzd2l0Y2ggKHRoaXMuY29kZSkge1xuICAgICAgY2FzZSBEeW5hbWljVmFsdWVSZWFzb24uRFlOQU1JQ19JTlBVVDpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3IudmlzaXREeW5hbWljSW5wdXQodGhpcyBhcyB1bmtub3duIGFzIER5bmFtaWNWYWx1ZTxEeW5hbWljVmFsdWU+KTtcbiAgICAgIGNhc2UgRHluYW1pY1ZhbHVlUmVhc29uLkRZTkFNSUNfU1RSSU5HOlxuICAgICAgICByZXR1cm4gdmlzaXRvci52aXNpdER5bmFtaWNTdHJpbmcodGhpcyk7XG4gICAgICBjYXNlIER5bmFtaWNWYWx1ZVJlYXNvbi5FWFRFUk5BTF9SRUZFUkVOQ0U6XG4gICAgICAgIHJldHVybiB2aXNpdG9yLnZpc2l0RXh0ZXJuYWxSZWZlcmVuY2UoXG4gICAgICAgICAgICB0aGlzIGFzIHVua25vd24gYXMgRHluYW1pY1ZhbHVlPFJlZmVyZW5jZTx0cy5EZWNsYXJhdGlvbj4+KTtcbiAgICAgIGNhc2UgRHluYW1pY1ZhbHVlUmVhc29uLlVOU1VQUE9SVEVEX1NZTlRBWDpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3IudmlzaXRVbnN1cHBvcnRlZFN5bnRheCh0aGlzKTtcbiAgICAgIGNhc2UgRHluYW1pY1ZhbHVlUmVhc29uLlVOS05PV05fSURFTlRJRklFUjpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3IudmlzaXRVbmtub3duSWRlbnRpZmllcih0aGlzKTtcbiAgICAgIGNhc2UgRHluYW1pY1ZhbHVlUmVhc29uLklOVkFMSURfRVhQUkVTU0lPTl9UWVBFOlxuICAgICAgICByZXR1cm4gdmlzaXRvci52aXNpdEludmFsaWRFeHByZXNzaW9uVHlwZSh0aGlzKTtcbiAgICAgIGNhc2UgRHluYW1pY1ZhbHVlUmVhc29uLkNPTVBMRVhfRlVOQ1RJT05fQ0FMTDpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3IudmlzaXRDb21wbGV4RnVuY3Rpb25DYWxsKFxuICAgICAgICAgICAgdGhpcyBhcyB1bmtub3duIGFzIER5bmFtaWNWYWx1ZTxGdW5jdGlvbkRlZmluaXRpb24+KTtcbiAgICAgIGNhc2UgRHluYW1pY1ZhbHVlUmVhc29uLkRZTkFNSUNfVFlQRTpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3IudmlzaXREeW5hbWljVHlwZSh0aGlzKTtcbiAgICAgIGNhc2UgRHluYW1pY1ZhbHVlUmVhc29uLlVOS05PV046XG4gICAgICAgIHJldHVybiB2aXNpdG9yLnZpc2l0VW5rbm93bih0aGlzKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljVmFsdWVWaXNpdG9yPFI+IHtcbiAgdmlzaXREeW5hbWljSW5wdXQodmFsdWU6IER5bmFtaWNWYWx1ZTxEeW5hbWljVmFsdWU+KTogUjtcbiAgdmlzaXREeW5hbWljU3RyaW5nKHZhbHVlOiBEeW5hbWljVmFsdWUpOiBSO1xuICB2aXNpdEV4dGVybmFsUmVmZXJlbmNlKHZhbHVlOiBEeW5hbWljVmFsdWU8UmVmZXJlbmNlPHRzLkRlY2xhcmF0aW9uPj4pOiBSO1xuICB2aXNpdFVuc3VwcG9ydGVkU3ludGF4KHZhbHVlOiBEeW5hbWljVmFsdWUpOiBSO1xuICB2aXNpdFVua25vd25JZGVudGlmaWVyKHZhbHVlOiBEeW5hbWljVmFsdWUpOiBSO1xuICB2aXNpdEludmFsaWRFeHByZXNzaW9uVHlwZSh2YWx1ZTogRHluYW1pY1ZhbHVlKTogUjtcbiAgdmlzaXRDb21wbGV4RnVuY3Rpb25DYWxsKHZhbHVlOiBEeW5hbWljVmFsdWU8RnVuY3Rpb25EZWZpbml0aW9uPik6IFI7XG4gIHZpc2l0RHluYW1pY1R5cGUodmFsdWU6IER5bmFtaWNWYWx1ZSk6IFI7XG4gIHZpc2l0VW5rbm93bih2YWx1ZTogRHluYW1pY1ZhbHVlKTogUjtcbn1cbiJdfQ== |
---|