@tilde-nlp/ngx-translate 2.1.2 → 2.1.4
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/esm2020/lib/i18n/en.mjs +2 -2
- package/esm2020/lib/modules/tld-common/models/configs/tld-term-config.model.mjs +1 -1
- package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +2 -2
- package/esm2020/lib/modules/tld-term/services/api-v2/mt-term-v2.service.mjs +2 -2
- package/esm2020/lib/modules/tld-term/services/models/combined-collection.model.mjs +3 -8
- package/esm2020/lib/modules/tld-term/services/term-api/term-api.service.mjs +3 -3
- package/esm2020/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.mjs +2 -7
- package/fesm2015/tilde-nlp-ngx-translate.mjs +8 -19
- package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/fesm2020/tilde-nlp-ngx-translate.mjs +8 -18
- package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/lib/modules/tld-common/models/configs/tld-term-config.model.d.ts +1 -1
- package/lib/modules/tld-term/services/models/combined-collection.model.d.ts +4 -4
- package/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.d.ts +0 -1
- package/package.json +1 -1
- package/src/assets/webcomponent/tld-translate.js +1 -1
- package/tilde-nlp-ngx-translate-2.1.4.tgz +0 -0
- package/tilde-nlp-ngx-translate-2.1.2.tgz +0 -0
|
@@ -67,12 +67,6 @@ export class CombinedCollection {
|
|
|
67
67
|
get mtStatus() {
|
|
68
68
|
return this.mtCollection?.status;
|
|
69
69
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Last updated date from mt api.
|
|
72
|
-
*/
|
|
73
|
-
get lastUpdated() {
|
|
74
|
-
return this.mtCollection?.lastUpdated;
|
|
75
|
-
}
|
|
76
70
|
/**
|
|
77
71
|
* Collection name. If has term collection, takes from there. If not, then returns mt collection name.
|
|
78
72
|
*/
|
|
@@ -142,7 +136,7 @@ export class CombinedCollection {
|
|
|
142
136
|
*/
|
|
143
137
|
deleteTerms() {
|
|
144
138
|
this.termCollection = null;
|
|
145
|
-
this.update(null);
|
|
139
|
+
this.update(null, false);
|
|
146
140
|
}
|
|
147
141
|
/**
|
|
148
142
|
* Deletes mt collection and its properties.
|
|
@@ -159,6 +153,7 @@ export class CombinedCollection {
|
|
|
159
153
|
if (termModified && lastMtUpdated) {
|
|
160
154
|
isSynchronized = termModified < lastMtUpdated;
|
|
161
155
|
}
|
|
156
|
+
this.lastUpdated = termModified ?? lastMtUpdated;
|
|
162
157
|
this._isSynchronized = isSynchronized;
|
|
163
158
|
}
|
|
164
159
|
updateSource() {
|
|
@@ -187,4 +182,4 @@ export class CombinedCollection {
|
|
|
187
182
|
}
|
|
188
183
|
//#region Static properties
|
|
189
184
|
CombinedCollection.importingStatuses = [MtCollectionStatus.FETCHING, MtCollectionStatus.PREPROCESSING, MtCollectionStatus.PROCESSING, MtCollectionStatus.QUEUING];
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2pFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQW1IN0IsWUFBWTtJQUVaLFlBQVksaUJBQXFDLEVBQUUsWUFBMEI7UUF2RjdFLFlBQVk7UUFFWixxQ0FBcUM7UUFDckMsY0FBUyxHQUdMLEVBQUUsQ0FBQztRQUNQLFlBQVk7UUFFWixtQ0FBbUM7UUFDbkMsZ0pBQWdKO1FBQ2hKLDBGQUEwRjtRQUVsRixvQkFBZSxHQUFZLElBQUksQ0FBQztRQTJFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFoSEQsTUFBTSxDQUFDLDhCQUE4QixDQUFDLFdBQXlDLEVBQUUsVUFBOEI7UUFDN0csS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FB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RW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UgfSBmcm9tIFwiLi4vZW5naW5lLXRlcm0vbW9kZWxzXCI7XHJcbmltcG9ydCB7IElUbGRUZXJtQ29sbGVjdGlvbiB9IGZyb20gXCIuLi90ZXJtLWFwaS9tb2RlbHMvdGxkLXRlcm0tY29sbGVjdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5IH0gZnJvbSBcIi4vY29tYmluZWQtY29sbGVjdGlvbi10b29sdGlwLWtleS5lbnVtXCI7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvblN0YXR1cyB9IGZyb20gXCIuL210LWNvbGxlY3Rpb24tc3RhdHVzLmVudW1cIjtcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uIH0gZnJvbSBcIi4vbXQtY29sbGVjdGlvbi5tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIHRoYXQgam9pbnMgY29sbGVjdGlvbiBmcm9tIHRlcm0gYXBpIGFuZCBpdHMgaW1wb3J0ZWQgY29sbGVjdGlvbiBmcm9tIE1UIGFwaS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb21iaW5lZENvbGxlY3Rpb24ge1xyXG4gIG10Q29sbGVjdGlvbjogTXRDb2xsZWN0aW9uO1xyXG4gIHRlcm1Db2xsZWN0aW9uOiBJVGxkVGVybUNvbGxlY3Rpb247XHJcbiAgdGVybVRvb2x0aXBLZXk6IENvbWJpbmVkQ29sbGVjdGlvblRvb2x0aXBLZXk7XHJcbiAgc291cmNlOiBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZTtcclxuXHJcbiAgLy8jcmVnaW9uIFN0YXRpYyBwcm9wZXJ0aWVzXHJcbiAgc3RhdGljIGltcG9ydGluZ1N0YXR1c2VzID0gW010Q29sbGVjdGlvblN0YXR1cy5GRVRDSElORywgTXRDb2xsZWN0aW9uU3RhdHVzLlBSRVBST0NFU1NJTkcsIE10Q29sbGVjdGlvblN0YXR1cy5QUk9DRVNTSU5HLCBNdENvbGxlY3Rpb25TdGF0dXMuUVVFVUlOR107XHJcblxyXG4gIHN0YXRpYyBmaW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QoY29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sbGVjdGlvbnMpIHtcclxuICAgICAgaWYgKChjb2wudGVybUlkICYmIGNvbC50ZXJtSWQgPT0gY29sbGVjdGlvbi50ZXJtSWQpIHx8XHJcbiAgICAgICAgKGNvbC5tdENvbGxlY3Rpb24/LmlkICYmIGNvbC5tdENvbGxlY3Rpb24uaWQgPT0gY29sbGVjdGlvbi5tdENvbGxlY3Rpb24/LmlkKSkge1xyXG4gICAgICAgIHJldHVybiBjb2w7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QoY29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IG51bWJlciB7XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xsZWN0aW9ucykge1xyXG4gICAgICBpZiAoKGNvbC50ZXJtSWQgJiYgY29sLnRlcm1JZCA9PSBjb2xsZWN0aW9uLnRlcm1JZCkgfHxcclxuICAgICAgICAoY29sLm10Q29sbGVjdGlvbj8uaWQgJiYgY29sLm10Q29sbGVjdGlvbi5pZCA9PSBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbj8uaWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgICAgaSArPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gRWRpdGFibGUgTVQgKGFwaSB2MikgZmllbGRzXHJcbiAgZWRpdGFibGVzOiB7XHJcbiAgICBkZWZhdWx0PzogYm9vbGVhbjtcclxuICAgIHNjb3BlPzogRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZTtcclxuICB9ID0ge307XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBHZXR0ZXJzIGZvciBjb21tb24gZmllbGRzXHJcbiAgLy8gSXQgaXMgcG9zc2libGUgdG8gb3B0aW1pemUgZ2V0dGVycywgYnkgc2V0dGluZyBzb21lIG9mIHRoZSB2YWx1ZXMgaW4gdXBkYXRlIG1ldGhvZCwgYnV0IGl0IGlzIGxlZnQgdGhpcyB3YXksIHNvIHRoYXQgZGF0YSBpcyBtb3JlIGNvbnNpc3RlbnQuXHJcbiAgLy8gT3RoZXJ3aXNlIGl0IG1pZ2h0IGJlIGVhc3kgdG8gbWlzcyBzb21lIHByb3BlcnR5IHVwZGF0aW5nIGFuZCBnZXQgd3JvbmcgZGF0YSBpbiBmdXR1cmUuXHJcblxyXG4gIHByaXZhdGUgX2lzU3luY2hyb25pemVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBXZWF0aGVyIGNvbGxlY3Rpb24gaXMgc3luY2hyb25pemVkIHdpdGggdGVybSBwb3J0YWwgY29sbGVjdGlvbi4gSWYgbm8gdGVybSBjb2xsZWN0aW9uLCB2YWx1ZSBpcyBzZXQgdG8gdHJ1ZS5cclxuICAgKi9cclxuICBnZXQgaXNTeW5jaHJvbml6ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNTeW5jaHJvbml6ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIGlmIGNvbGxlY3Rpb25zIGlzICdzeW5jYWJsZScuIFJldHVybnMgdHJ1ZSBpZiBpdCBpcyBub3Qgc3luY2VkIG9yIGlmIHN5bmNocm9uaXphdGlvbiBoYXMgZmFpbGVkIGFuZCBzdGF0dXMgaXMgZXJyb3IuXHJcbiAgICovXHJcbiAgZ2V0IHN5bmNCdXR0b25WaXNzaWJsZSgpIHtcclxuICAgIHJldHVybiAhdGhpcy5pc1N5bmNocm9uaXplZCB8fCAodGhpcy50ZXJtQ29sbGVjdGlvbj8ubW9kaWZ5RGF0ZSAmJiB0aGlzLm10U3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1IpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgbm90IHJlYWR5IG9yIGVycm9yLCB0aGVuIGNvbGxlY3Rpb24gaXMgaW1wb3J0aW5nLlxyXG4gICAqL1xyXG4gIGdldCBpc0ltcG9ydGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm10Q29sbGVjdGlvbiAmJiBDb21iaW5lZENvbGxlY3Rpb24uaW1wb3J0aW5nU3RhdHVzZXMuaW5jbHVkZXModGhpcy5tdENvbGxlY3Rpb24/LnN0YXR1cyk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGVybSBjb2xsZWN0aW9uIGlkLiBSZXR1cm5zIHZhbHVlIGZyb20gdGVybSBjb2xsZWN0aW9uIG9yIGZyb20gbXQsIGlmIHRlcm0gY29sbGVjdGlvbiBub3QgZXhpc3RpbmcuXHJcbiAgICovXHJcbiAgZ2V0IHRlcm1JZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5pZCA/PyB0aGlzLm10Q29sbGVjdGlvbj8udGVybUlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG10U3RhdHVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uPy5zdGF0dXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMYXN0IHVwZGF0ZWQgZGF0ZSBmcm9tIG10IGFwaS5cclxuICAgKi9cclxuICBnZXQgbGFzdFVwZGF0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdENvbGxlY3Rpb24/Lmxhc3RVcGRhdGVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29sbGVjdGlvbiBuYW1lLiBJZiBoYXMgdGVybSBjb2xsZWN0aW9uLCB0YWtlcyBmcm9tIHRoZXJlLiBJZiBub3QsIHRoZW4gcmV0dXJucyBtdCBjb2xsZWN0aW9uIG5hbWUuXHJcbiAgICovXHJcbiAgZ2V0IG5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtQ29sbGVjdGlvbj8ubmFtZSA/PyB0aGlzLm10Q29sbGVjdGlvbj8ubmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVudHJ5IGNvdW50IGZyb20gdGVybSBhcGkuXHJcbiAgICovXHJcbiAgZ2V0IHRlcm1FbnRyaWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb24/LmVudHJ5Q291bnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVmYXVsdCgpIHtcclxuICAgIHJldHVybiB0aGlzLm10Q29sbGVjdGlvbj8uZGVmYXVsdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXR1cyBmcm9tIG10IGFwaSBvciBjdXN0b20gXCJOT1RfSU5fVVNFXCIgc3RhdHVzIGlmIG5vdCBpbXBvcnRlZCBpbiBtdC5zXHJcbiAgICovXHJcbiAgZ2V0IHN0YXR1cygpIHtcclxuICAgIHJldHVybiB0aGlzLm10U3RhdHVzID8/IE10Q29sbGVjdGlvblN0YXR1cy5OT1RfSU5fVVNFO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2NvcGUgY2FuIGJlIGVkaXRlZCBvbmx5IGlmIGhhcyBtdCBjb2xsY2V0aW9uIG9yIHRlcm0gY29sbGVjdGlvbiBpcyBiZWluZyBwcmVwYXJlZCBmb3IgaW1wb3J0LlxyXG4gICAqL1xyXG4gIGdldCBjYW5FZGl0U2NvcGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdENvbGxlY3Rpb24gfHwgdGhpcy5lZGl0YWJsZXMuZGVmYXVsdDtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBjb25zdHJ1Y3Rvcih0ZXJtQXBpQ29sbGVjdGlvbjogSVRsZFRlcm1Db2xsZWN0aW9uLCBtdENvbGxlY3Rpb246IE10Q29sbGVjdGlvbikge1xyXG4gICAgdGhpcy5tdENvbGxlY3Rpb24gPSBtdENvbGxlY3Rpb247XHJcbiAgICB0aGlzLnRlcm1Db2xsZWN0aW9uID0gdGVybUFwaUNvbGxlY3Rpb247XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgY29sbGVjdGlvbiB3aXRoIHZhbHVlcyBmcm9tIG5ldyBjb2xsZWN0aW9uLlxyXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uIGNvbGxlY3Rpb24gZnJvbSB3aGljaCBzaG91bGQgYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0gaW5pdGlhbFJlZnJlc2ggaWYgc2V0IHRvIHRydWUsIGVkaXRhYmxlIGZpZWxkcyB3aWxsIGFsc28gYmUgdXBkYXRlZC5cclxuICAgKi9cclxuICB1cGRhdGUoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBpbml0aWFsUmVmcmVzaCA9IHRydWUpIHtcclxuICAgIGlmIChjb2xsZWN0aW9uPy50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnRlcm1Db2xsZWN0aW9uID0gY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29sbGVjdGlvbj8ubXRDb2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMubXRDb2xsZWN0aW9uID0gY29sbGVjdGlvbi5tdENvbGxlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluaXRpYWxSZWZyZXNoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRWRpdGFibGVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVJc1N5bmNocm9uaXplZCgpO1xyXG4gICAgdGhpcy51cGRhdGVUb29sdGlwS2V5KCk7XHJcbiAgICB0aGlzLnVwZGF0ZVNvdXJjZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgc29tZSBvZiBlZGl0YWJsZXMgYXJlIGVkaXRlZC5cclxuICAgKlxyXG4gICAqIGlmIGNvbGxlY3Rpb24gbm90IGltcG9ydGVkIGFuZCBlbmFibGVkIG5vdCBzZXQsIG1ldGhvZCB3aWxsIHJldHVybiB0cnVlLCBiZWNhdXNlIHlvdSBjYW5ub3QgdXBkYXRlIGNvbGxlY3Rpb24gaWYgaXQgaXMgbm90IGltcG9ydGVkIG9yIGlzIG5vdCBtZWFudCB0byBiZSBpbXBvcnRlZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgY29sbGVjdGlvbiBpcyBlZGl0ZWQsIGZhbHNlIGlmIG5vdC5cclxuICAgKi9cclxuICBpc0VkaXRlZCgpIHtcclxuICAgIC8vIGlmIGNvbGxlY3Rpb24gbm90IGltcG9ydGVkIGFuZCBlbmFibGVkIG5vdCBzZXQsIHNob3VsZCBub3QgdXBkYXRlIGNvbGxlY3Rpb24uXHJcbiAgICBpZiAoIXRoaXMubXRDb2xsZWN0aW9uICYmICF0aGlzLmVkaXRhYmxlcy5kZWZhdWx0KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCh0aGlzLm10Q29sbGVjdGlvbj8uZGVmYXVsdCAhPT0gdGhpcy5lZGl0YWJsZXMuZGVmYXVsdClcclxuICAgICAgfHwgKHRoaXMubXRDb2xsZWN0aW9uICYmIHRoaXMuZWRpdGFibGVzLnNjb3BlICE9PSB0aGlzLm10Q29sbGVjdGlvbi5zY29wZSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIHRlcm0gY29sbGVjdGlvbiBhbmQgaXRzIHByb3BlcnRpZXMuXHJcbiAgICovXHJcbiAgZGVsZXRlVGVybXMoKSB7XHJcbiAgICB0aGlzLnRlcm1Db2xsZWN0aW9uID0gbnVsbDtcclxuICAgIHRoaXMudXBkYXRlKG51bGwpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgbXQgY29sbGVjdGlvbiBhbmQgaXRzIHByb3BlcnRpZXMuXHJcbiAgICovXHJcbiAgZGVsZXRlTVQoKSB7XHJcbiAgICB0aGlzLm10Q29sbGVjdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBQcml2YXRlIG1ldGhvZHNcclxuICBwcml2YXRlIHVwZGF0ZUlzU3luY2hyb25pemVkKCkge1xyXG4gICAgbGV0IGlzU3luY2hyb25pemVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHRlcm1Nb2RpZmllZCA9IHRoaXMudGVybUNvbGxlY3Rpb24/Lm1vZGlmeURhdGU7XHJcbiAgICBjb25zdCBsYXN0TXRVcGRhdGVkID0gdGhpcy5tdENvbGxlY3Rpb24/Lmxhc3RVcGRhdGVkO1xyXG4gICAgaWYgKHRlcm1Nb2RpZmllZCAmJiBsYXN0TXRVcGRhdGVkKSB7XHJcbiAgICAgIGlzU3luY2hyb25pemVkID0gdGVybU1vZGlmaWVkIDwgbGFzdE10VXBkYXRlZDtcclxuICAgIH1cclxuICAgIHRoaXMuX2lzU3luY2hyb25pemVkID0gaXNTeW5jaHJvbml6ZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNvdXJjZSgpIHtcclxuICAgIGlmICh0aGlzLnRlcm1Db2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc291cmNlID0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuVElMREVfVEVSTTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMubXRDb2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc291cmNlID0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuRklMRTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVG9vbHRpcEtleSgpIHtcclxuICAgIGlmICh0aGlzLnRlcm1Db2xsZWN0aW9uPy5lbnRyeUNvdW50ID09PSAwKSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5Lk5PX0VOVFJJRVM7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmlzSW1wb3J0aW5nKSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5LklNUE9SVElORztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRlcm1Ub29sdGlwS2V5ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRWRpdGFibGVzKCkge1xyXG4gICAgdGhpcy5lZGl0YWJsZXMuZGVmYXVsdCA9IHRoaXMubXRDb2xsZWN0aW9uPy5kZWZhdWx0O1xyXG4gICAgdGhpcy5lZGl0YWJsZXMuc2NvcGUgPSB0aGlzLm10Q29sbGVjdGlvbj8uc2NvcGUgPz8gRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZS5HTE9CQUw7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2pFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQWlIN0IsWUFBWTtJQUVaLFlBQVksaUJBQXFDLEVBQUUsWUFBMEI7UUFqRjdFLFlBQVk7UUFFWixxQ0FBcUM7UUFDckMsY0FBUyxHQUdMLEVBQUUsQ0FBQztRQUNQLFlBQVk7UUFFWixtQ0FBbUM7UUFDbkMsZ0pBQWdKO1FBQ2hKLDBGQUEwRjtRQUVsRixvQkFBZSxHQUFZLElBQUksQ0FBQztRQXFFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUExR0QsTUFBTSxDQUFDLDhCQUE4QixDQUFDLFdBQXlDLEVBQUUsVUFBOEI7UUFDN0csS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FB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R0FBRyxZQUFZLElBQUksYUFBYSxDQUFDO1FBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLFVBQVUsQ0FBQztTQUNyRDthQUNJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQztTQUMvQztJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQyxVQUFVLENBQUM7U0FDL0Q7YUFDSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQyxTQUFTLENBQUM7U0FDOUQ7YUFDSTtZQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUkseUJBQXlCLENBQUMsTUFBTSxDQUFDO0lBQ3RGLENBQUM7O0FBOU1ELDJCQUEyQjtBQUNwQixvQ0FBaUIsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZSwgRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UgfSBmcm9tIFwiLi4vZW5naW5lLXRlcm0vbW9kZWxzXCI7XHJcbmltcG9ydCB7IElUbGRUZXJtQ29sbGVjdGlvbiB9IGZyb20gXCIuLi90ZXJtLWFwaS9tb2RlbHMvdGxkLXRlcm0tY29sbGVjdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5IH0gZnJvbSBcIi4vY29tYmluZWQtY29sbGVjdGlvbi10b29sdGlwLWtleS5lbnVtXCI7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvblN0YXR1cyB9IGZyb20gXCIuL210LWNvbGxlY3Rpb24tc3RhdHVzLmVudW1cIjtcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uIH0gZnJvbSBcIi4vbXQtY29sbGVjdGlvbi5tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIHRoYXQgam9pbnMgY29sbGVjdGlvbiBmcm9tIHRlcm0gYXBpIGFuZCBpdHMgaW1wb3J0ZWQgY29sbGVjdGlvbiBmcm9tIE1UIGFwaS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb21iaW5lZENvbGxlY3Rpb24ge1xyXG4gIG10Q29sbGVjdGlvbjogTXRDb2xsZWN0aW9uO1xyXG4gIHRlcm1Db2xsZWN0aW9uOiBJVGxkVGVybUNvbGxlY3Rpb247XHJcbiAgdGVybVRvb2x0aXBLZXk6IENvbWJpbmVkQ29sbGVjdGlvblRvb2x0aXBLZXk7XHJcbiAgc291cmNlOiBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZTtcclxuICAvKipcclxuICAgKiBNb2RpZmllZCBkYXRlIGZyb20gdGVybSBhcGkgb3IgbGFzdCB1cGRhdGVkIGZyb20gbXQgYXBpLlxyXG4gICAqL1xyXG4gIGxhc3RVcGRhdGVkOiBEYXRlO1xyXG5cclxuICAvLyNyZWdpb24gU3RhdGljIHByb3BlcnRpZXNcclxuICBzdGF0aWMgaW1wb3J0aW5nU3RhdHVzZXMgPSBbTXRDb2xsZWN0aW9uU3RhdHVzLkZFVENISU5HLCBNdENvbGxlY3Rpb25TdGF0dXMuUFJFUFJPQ0VTU0lORywgTXRDb2xsZWN0aW9uU3RhdHVzLlBST0NFU1NJTkcsIE10Q29sbGVjdGlvblN0YXR1cy5RVUVVSU5HXTtcclxuXHJcbiAgc3RhdGljIGZpbmRFeGlzdGluZ0NvbGxlY3Rpb25Gcm9tTGlzdChjb2xsZWN0aW9uczogSXRlcmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiwgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xsZWN0aW9ucykge1xyXG4gICAgICBpZiAoKGNvbC50ZXJtSWQgJiYgY29sLnRlcm1JZCA9PSBjb2xsZWN0aW9uLnRlcm1JZCkgfHxcclxuICAgICAgICAoY29sLm10Q29sbGVjdGlvbj8uaWQgJiYgY29sLm10Q29sbGVjdGlvbi5pZCA9PSBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbj8uaWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZmluZEV4aXN0aW5nSW5kZXhGcm9tTGlzdChjb2xsZWN0aW9uczogSXRlcmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiwgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKTogbnVtYmVyIHtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIGlmICgoY29sLnRlcm1JZCAmJiBjb2wudGVybUlkID09IGNvbGxlY3Rpb24udGVybUlkKSB8fFxyXG4gICAgICAgIChjb2wubXRDb2xsZWN0aW9uPy5pZCAmJiBjb2wubXRDb2xsZWN0aW9uLmlkID09IGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uPy5pZCkpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgICBpICs9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBFZGl0YWJsZSBNVCAoYXBpIHYyKSBmaWVsZHNcclxuICBlZGl0YWJsZXM6IHtcclxuICAgIGRlZmF1bHQ/OiBib29sZWFuO1xyXG4gICAgc2NvcGU/OiBFbmdpbmVUZXJtQ29sbGVjdGlvblNjb3BlO1xyXG4gIH0gPSB7fTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIEdldHRlcnMgZm9yIGNvbW1vbiBmaWVsZHNcclxuICAvLyBJdCBpcyBwb3NzaWJsZSB0byBvcHRpbWl6ZSBnZXR0ZXJzLCBieSBzZXR0aW5nIHNvbWUgb2YgdGhlIHZhbHVlcyBpbiB1cGRhdGUgbWV0aG9kLCBidXQgaXQgaXMgbGVmdCB0aGlzIHdheSwgc28gdGhhdCBkYXRhIGlzIG1vcmUgY29uc2lzdGVudC5cclxuICAvLyBPdGhlcndpc2UgaXQgbWlnaHQgYmUgZWFzeSB0byBtaXNzIHNvbWUgcHJvcGVydHkgdXBkYXRpbmcgYW5kIGdldCB3cm9uZyBkYXRhIGluIGZ1dHVyZS5cclxuXHJcbiAgcHJpdmF0ZSBfaXNTeW5jaHJvbml6ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIFdlYXRoZXIgY29sbGVjdGlvbiBpcyBzeW5jaHJvbml6ZWQgd2l0aCB0ZXJtIHBvcnRhbCBjb2xsZWN0aW9uLiBJZiBubyB0ZXJtIGNvbGxlY3Rpb24sIHZhbHVlIGlzIHNldCB0byB0cnVlLlxyXG4gICAqL1xyXG4gIGdldCBpc1N5bmNocm9uaXplZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1N5bmNocm9uaXplZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgaWYgY29sbGVjdGlvbnMgaXMgJ3N5bmNhYmxlJy4gUmV0dXJucyB0cnVlIGlmIGl0IGlzIG5vdCBzeW5jZWQgb3IgaWYgc3luY2hyb25pemF0aW9uIGhhcyBmYWlsZWQgYW5kIHN0YXR1cyBpcyBlcnJvci5cclxuICAgKi9cclxuICBnZXQgc3luY0J1dHRvblZpc3NpYmxlKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmlzU3luY2hyb25pemVkIHx8ICh0aGlzLnRlcm1Db2xsZWN0aW9uPy5tb2RpZnlEYXRlICYmIHRoaXMubXRTdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5FUlJPUik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiBub3QgcmVhZHkgb3IgZXJyb3IsIHRoZW4gY29sbGVjdGlvbiBpcyBpbXBvcnRpbmcuXHJcbiAgICovXHJcbiAgZ2V0IGlzSW1wb3J0aW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uICYmIENvbWJpbmVkQ29sbGVjdGlvbi5pbXBvcnRpbmdTdGF0dXNlcy5pbmNsdWRlcyh0aGlzLm10Q29sbGVjdGlvbj8uc3RhdHVzKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBUZXJtIGNvbGxlY3Rpb24gaWQuIFJldHVybnMgdmFsdWUgZnJvbSB0ZXJtIGNvbGxlY3Rpb24gb3IgZnJvbSBtdCwgaWYgdGVybSBjb2xsZWN0aW9uIG5vdCBleGlzdGluZy5cclxuICAgKi9cclxuICBnZXQgdGVybUlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb24/LmlkID8/IHRoaXMubXRDb2xsZWN0aW9uPy50ZXJtSWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgbXRTdGF0dXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdENvbGxlY3Rpb24/LnN0YXR1cztcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIG5hbWUuIElmIGhhcyB0ZXJtIGNvbGxlY3Rpb24sIHRha2VzIGZyb20gdGhlcmUuIElmIG5vdCwgdGhlbiByZXR1cm5zIG10IGNvbGxlY3Rpb24gbmFtZS5cclxuICAgKi9cclxuICBnZXQgbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/IHRoaXMubXRDb2xsZWN0aW9uPy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW50cnkgY291bnQgZnJvbSB0ZXJtIGFwaS5cclxuICAgKi9cclxuICBnZXQgdGVybUVudHJpZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtQ29sbGVjdGlvbj8uZW50cnlDb3VudDtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uPy5kZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhdHVzIGZyb20gbXQgYXBpIG9yIGN1c3RvbSBcIk5PVF9JTl9VU0VcIiBzdGF0dXMgaWYgbm90IGltcG9ydGVkIGluIG10LnNcclxuICAgKi9cclxuICBnZXQgc3RhdHVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRTdGF0dXMgPz8gTXRDb2xsZWN0aW9uU3RhdHVzLk5PVF9JTl9VU0U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTY29wZSBjYW4gYmUgZWRpdGVkIG9ubHkgaWYgaGFzIG10IGNvbGxjZXRpb24gb3IgdGVybSBjb2xsZWN0aW9uIGlzIGJlaW5nIHByZXBhcmVkIGZvciBpbXBvcnQuXHJcbiAgICovXHJcbiAgZ2V0IGNhbkVkaXRTY29wZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm10Q29sbGVjdGlvbiB8fCB0aGlzLmVkaXRhYmxlcy5kZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGNvbnN0cnVjdG9yKHRlcm1BcGlDb2xsZWN0aW9uOiBJVGxkVGVybUNvbGxlY3Rpb24sIG10Q29sbGVjdGlvbjogTXRDb2xsZWN0aW9uKSB7XHJcbiAgICB0aGlzLm10Q29sbGVjdGlvbiA9IG10Q29sbGVjdGlvbjtcclxuICAgIHRoaXMudGVybUNvbGxlY3Rpb24gPSB0ZXJtQXBpQ29sbGVjdGlvbjtcclxuICAgIHRoaXMudXBkYXRlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBjb2xsZWN0aW9uIHdpdGggdmFsdWVzIGZyb20gbmV3IGNvbGxlY3Rpb24uXHJcbiAgICogQHBhcmFtIGNvbGxlY3Rpb24gY29sbGVjdGlvbiBmcm9tIHdoaWNoIHNob3VsZCBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSBpbml0aWFsUmVmcmVzaCBpZiBzZXQgdG8gdHJ1ZSwgZWRpdGFibGUgZmllbGRzIHdpbGwgYWxzbyBiZSB1cGRhdGVkLlxyXG4gICAqL1xyXG4gIHVwZGF0ZShjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24sIGluaXRpYWxSZWZyZXNoID0gdHJ1ZSkge1xyXG4gICAgaWYgKGNvbGxlY3Rpb24/LnRlcm1Db2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMudGVybUNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2xsZWN0aW9uPy5tdENvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5tdENvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5pdGlhbFJlZnJlc2gpIHtcclxuICAgICAgdGhpcy51cGRhdGVFZGl0YWJsZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZUlzU3luY2hyb25pemVkKCk7XHJcbiAgICB0aGlzLnVwZGF0ZVRvb2x0aXBLZXkoKTtcclxuICAgIHRoaXMudXBkYXRlU291cmNlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiBzb21lIG9mIGVkaXRhYmxlcyBhcmUgZWRpdGVkLlxyXG4gICAqXHJcbiAgICogaWYgY29sbGVjdGlvbiBub3QgaW1wb3J0ZWQgYW5kIGVuYWJsZWQgbm90IHNldCwgbWV0aG9kIHdpbGwgcmV0dXJuIHRydWUsIGJlY2F1c2UgeW91IGNhbm5vdCB1cGRhdGUgY29sbGVjdGlvbiBpZiBpdCBpcyBub3QgaW1wb3J0ZWQgb3IgaXMgbm90IG1lYW50IHRvIGJlIGltcG9ydGVkLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBjb2xsZWN0aW9uIGlzIGVkaXRlZCwgZmFsc2UgaWYgbm90LlxyXG4gICAqL1xyXG4gIGlzRWRpdGVkKCkge1xyXG4gICAgLy8gaWYgY29sbGVjdGlvbiBub3QgaW1wb3J0ZWQgYW5kIGVuYWJsZWQgbm90IHNldCwgc2hvdWxkIG5vdCB1cGRhdGUgY29sbGVjdGlvbi5cclxuICAgIGlmICghdGhpcy5tdENvbGxlY3Rpb24gJiYgIXRoaXMuZWRpdGFibGVzLmRlZmF1bHQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKHRoaXMubXRDb2xsZWN0aW9uPy5kZWZhdWx0ICE9PSB0aGlzLmVkaXRhYmxlcy5kZWZhdWx0KVxyXG4gICAgICB8fCAodGhpcy5tdENvbGxlY3Rpb24gJiYgdGhpcy5lZGl0YWJsZXMuc2NvcGUgIT09IHRoaXMubXRDb2xsZWN0aW9uLnNjb3BlKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgdGVybSBjb2xsZWN0aW9uIGFuZCBpdHMgcHJvcGVydGllcy5cclxuICAgKi9cclxuICBkZWxldGVUZXJtcygpIHtcclxuICAgIHRoaXMudGVybUNvbGxlY3Rpb24gPSBudWxsO1xyXG4gICAgdGhpcy51cGRhdGUobnVsbCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgbXQgY29sbGVjdGlvbiBhbmQgaXRzIHByb3BlcnRpZXMuXHJcbiAgICovXHJcbiAgZGVsZXRlTVQoKSB7XHJcbiAgICB0aGlzLm10Q29sbGVjdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBQcml2YXRlIG1ldGhvZHNcclxuICBwcml2YXRlIHVwZGF0ZUlzU3luY2hyb25pemVkKCkge1xyXG4gICAgbGV0IGlzU3luY2hyb25pemVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHRlcm1Nb2RpZmllZCA9IHRoaXMudGVybUNvbGxlY3Rpb24/Lm1vZGlmeURhdGU7XHJcbiAgICBjb25zdCBsYXN0TXRVcGRhdGVkID0gdGhpcy5tdENvbGxlY3Rpb24/Lmxhc3RVcGRhdGVkO1xyXG4gICAgaWYgKHRlcm1Nb2RpZmllZCAmJiBsYXN0TXRVcGRhdGVkKSB7XHJcbiAgICAgIGlzU3luY2hyb25pemVkID0gdGVybU1vZGlmaWVkIDwgbGFzdE10VXBkYXRlZDtcclxuICAgIH1cclxuICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB0ZXJtTW9kaWZpZWQgPz8gbGFzdE10VXBkYXRlZDtcclxuICAgIHRoaXMuX2lzU3luY2hyb25pemVkID0gaXNTeW5jaHJvbml6ZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNvdXJjZSgpIHtcclxuICAgIGlmICh0aGlzLnRlcm1Db2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc291cmNlID0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuVElMREVfVEVSTTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMubXRDb2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc291cmNlID0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuRklMRTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVG9vbHRpcEtleSgpIHtcclxuICAgIGlmICh0aGlzLnRlcm1Db2xsZWN0aW9uPy5lbnRyeUNvdW50ID09PSAwKSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5Lk5PX0VOVFJJRVM7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmlzSW1wb3J0aW5nKSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5LklNUE9SVElORztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRlcm1Ub29sdGlwS2V5ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRWRpdGFibGVzKCkge1xyXG4gICAgdGhpcy5lZGl0YWJsZXMuZGVmYXVsdCA9IHRoaXMubXRDb2xsZWN0aW9uPy5kZWZhdWx0O1xyXG4gICAgdGhpcy5lZGl0YWJsZXMuc2NvcGUgPSB0aGlzLm10Q29sbGVjdGlvbj8uc2NvcGUgPz8gRW5naW5lVGVybUNvbGxlY3Rpb25TY29wZS5HTE9CQUw7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
|
|
@@ -10,7 +10,7 @@ export class TermApiService {
|
|
|
10
10
|
this.http = http;
|
|
11
11
|
}
|
|
12
12
|
get url() {
|
|
13
|
-
return `${this.config.termConfig.
|
|
13
|
+
return `${this.config.termConfig.terminologyPortalUrl}/api/termservice/collection`;
|
|
14
14
|
}
|
|
15
15
|
createCollection(defaultLanguages, collectionName) {
|
|
16
16
|
const params = {
|
|
@@ -33,7 +33,7 @@ export class TermApiService {
|
|
|
33
33
|
}));
|
|
34
34
|
}
|
|
35
35
|
getEditLink(termId, sourceLanguage, targetLanguage) {
|
|
36
|
-
let link = `${this.config.termConfig.
|
|
36
|
+
let link = `${this.config.termConfig.terminologyPortalUrl}/collections/${termId}/mt`;
|
|
37
37
|
if (sourceLanguage) {
|
|
38
38
|
link = `${link}/${sourceLanguage}`;
|
|
39
39
|
}
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
55
55
|
providedIn: 'root'
|
|
56
56
|
}]
|
|
57
57
|
}], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.HttpClient }]; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm0tYXBpL3Rlcm0tYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7O0FBS3pFLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQTZCLE1BQWlDLEVBQW1CLElBQWdCO1FBQXBFLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQW1CLFNBQUksR0FBSixJQUFJLENBQVk7SUFBSSxDQUFDO0lBSnRHLElBQUksR0FBRztRQUNMLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsNkJBQTZCLENBQUM7SUFDckYsQ0FBQztJQUlELGdCQUFnQixDQUFDLGdCQUEwQixFQUFFLGNBQXNCO1FBQ2pFLE1BQU0sTUFBTSxHQUFHO1lBQ2IsSUFBSSxFQUFFLGNBQWM7WUFDcEIsZ0JBQWdCO1NBQ2pCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFxQixJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQzthQUN4RCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFvQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF1QixJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2pELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNsQixNQUFNLFNBQVMsR0FBeUIsRUFBRSxDQUFDO1lBQzNDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQTtZQUNGLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxjQUF1QixFQUFFLGNBQXVCO1FBQzFFLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLGdCQUFnQixNQUFNLEtBQUssQ0FBQztRQUNyRixJQUFJLGNBQWMsRUFBRTtZQUNsQixJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksY0FBYyxFQUFFLENBQUM7U0FDcEM7UUFDRCxJQUFJLGNBQWMsRUFBRTtZQUNsQixJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksY0FBYyxFQUFFLENBQUM7U0FDcEM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxVQUE4QjtRQUNoRSxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksa0JBQWtCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7OzJHQS9DVSxjQUFjOytHQUFkLGNBQWMsY0FGYixNQUFNOzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IElUbGRUZXJtQ29sbGVjdGlvbiB9IGZyb20gJy4vbW9kZWxzL3RsZC10ZXJtLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtQXBpU2VydmljZSB7XHJcbiAgZ2V0IHVybCgpIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLnRlcm1pbm9sb2d5UG9ydGFsVXJsfS9hcGkvdGVybXNlcnZpY2UvY29sbGVjdGlvbmA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgY3JlYXRlQ29sbGVjdGlvbihkZWZhdWx0TGFuZ3VhZ2VzOiBzdHJpbmdbXSwgY29sbGVjdGlvbk5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIG5hbWU6IGNvbGxlY3Rpb25OYW1lLFxyXG4gICAgICBkZWZhdWx0TGFuZ3VhZ2VzXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PElUbGRUZXJtQ29sbGVjdGlvbj4odGhpcy51cmwsIHBhcmFtcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChjb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9Db21iaW5lZENvbGxlY3Rpb24oY29sbGVjdGlvbik7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldENvbGxlY3Rpb25MaXN0KGxhbmd1YWdlcz86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVRsZFRlcm1Db2xsZWN0aW9uW10+KHRoaXMudXJsKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGNvbGxlY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb252ZXJ0ZWQ6IENvbWJpbmVkQ29sbGVjdGlvbltdID0gW107XHJcbiAgICAgICAgICBjb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnZlcnRlZC5wdXNoKHRoaXMuY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKGNvbGxlY3Rpb24pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICByZXR1cm4gY29udmVydGVkO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TGluayh0ZXJtSWQ6IHN0cmluZywgc291cmNlTGFuZ3VhZ2U/OiBzdHJpbmcsIHRhcmdldExhbmd1YWdlPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgbGluayA9IGAke3RoaXMuY29uZmlnLnRlcm1Db25maWcudGVybWlub2xvZ3lQb3J0YWxVcmx9L2NvbGxlY3Rpb25zLyR7dGVybUlkfS9tdGA7XHJcbiAgICBpZiAoc291cmNlTGFuZ3VhZ2UpIHtcclxuICAgICAgbGluayA9IGAke2xpbmt9LyR7c291cmNlTGFuZ3VhZ2V9YDtcclxuICAgIH1cclxuICAgIGlmICh0YXJnZXRMYW5ndWFnZSkge1xyXG4gICAgICBsaW5rID0gYCR7bGlua30vJHt0YXJnZXRMYW5ndWFnZX1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpbms7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uOiBJVGxkVGVybUNvbGxlY3Rpb24pIHtcclxuICAgIGNvbGxlY3Rpb24ubW9kaWZ5RGF0ZSA9IG5ldyBEYXRlKGNvbGxlY3Rpb24ubW9kaWZ5RGF0ZSk7XHJcbiAgICByZXR1cm4gbmV3IENvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uLCBudWxsKTtcclxuICB9XHJcbn1cclxuIl19
|
package/esm2020/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.mjs
CHANGED
|
@@ -136,9 +136,7 @@ export class TldTranslateTextComponent {
|
|
|
136
136
|
maxLength: this.config.audioConfig.maximumRecordTime,
|
|
137
137
|
apiUrl: this.config.audioConfig.dictateApiUrl
|
|
138
138
|
};
|
|
139
|
-
this.
|
|
140
|
-
this.allowedFileTypes.forEach(el => this.allowedTypesWithoutDots.push(el.replace(".", "")));
|
|
141
|
-
this.visibleExtensions = this.capitalizeFirstLetter(this.allowedTypesWithoutDots.slice(0, this.visibleExtensionCount).join(", "));
|
|
139
|
+
this.visibleExtensions = this.allowedFileTypes.slice(0, this.visibleExtensionCount).join(", ");
|
|
142
140
|
this.maxSizeMB = Common.bytesToMb(this.config.fileConfig.maxSize);
|
|
143
141
|
this.tldSystem.getActiveData().pipe(distinctUntilChanged((x, y) => x && y && x.systemId == y.systemId))
|
|
144
142
|
.pipe(takeUntil(this.destroy$))
|
|
@@ -167,9 +165,6 @@ export class TldTranslateTextComponent {
|
|
|
167
165
|
}
|
|
168
166
|
this.subscribeToBreakpointObserver();
|
|
169
167
|
}
|
|
170
|
-
capitalizeFirstLetter(s) {
|
|
171
|
-
return s && s[0].toUpperCase() + s.slice(1);
|
|
172
|
-
}
|
|
173
168
|
copy() {
|
|
174
169
|
this.clipboard.copy(this.translatedText);
|
|
175
170
|
this.alerts.info("TLD_TRANSLATE.TEXT_COPIED", { id: this.copyMessageId, closeButtonId: this.copyMessageCloseButtonId, parentId: this.copyButtonId });
|
|
@@ -271,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
271
266
|
}], onFileChange: [{
|
|
272
267
|
type: Output
|
|
273
268
|
}] } });
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXh0L2NvbXBvbmVudHMvdGxkLXRyYW5zbGF0ZS10ZXh0L3RsZC10cmFuc2xhdGUtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9jb21wb25lbnRzL3RsZC10cmFuc2xhdGUtdGV4dC90bGQtdHJhbnNsYXRlLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBNkIsTUFBTSwyQkFBMkIsQ0FBQztBQUd0RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JwRCxNQUFNLE9BQU8seUJBQXlCO0lBaUZwQyxZQUNtQixvQkFBNkMsRUFDN0MsU0FBb0IsRUFDcEIsTUFBdUIsRUFDdkIsTUFBaUMsRUFDakMsZ0JBQWtDLEVBQ2xDLFNBQTJCLEVBQzNCLFlBQWdDLEVBQ2hDLGlCQUF1QyxFQUN2QyxXQUFvQyxFQUNwQyxrQkFBc0M7UUFUdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtR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RWEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLG9CQUFvQjtxWkFLQSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFHbkIsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEF1ZGlvRXJyb3JDYXNlLCBJVHJhbnNjcmlwdGlvblVwZGF0ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWF1ZGlvL21vZGVscyc7XHJcbmltcG9ydCB7IElEaWN0YXRlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3RsZC1hdWRpby9tb2RlbHMvZGljdGF0ZS1jb25maWd1cmF0aW9uaS5tb2RlbCc7XHJcbmltcG9ydCB7IEF1ZGlvUmVjb3JkU2VydmljZSwgVGxkVm9pY2VJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtYXVkaW8vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDb21tb24gfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZEFsZXJ0U2VydmljZSwgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGRTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcy9zY3JvbGwvdGxkLXNjcm9sbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtZG9jdW1lbnQvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJQWN0aXZlRGF0YSB9IGZyb20gJy4uLy4uLy4uL3RsZC10b29sdGlwL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtdG9vbHRpcC9zZXJ2aWNlcy90bGQtc3lzdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVUZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RsZC10cmFuc2xhdGUtdGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlU291cmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGxkLXRyYW5zbGF0ZS1zb3VyY2UvdGxkLXRyYW5zbGF0ZS1zb3VyY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10cmFuc2xhdGUtdGV4dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUtdGV4dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLXRyYW5zbGF0ZS10ZXh0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZVRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcInNvdXJjZUNvbXBvbmVudFwiKSBzb3VyY2VDb21wb25lbnQ6IFRsZFRyYW5zbGF0ZVNvdXJjZUNvbXBvbmVudDtcclxuXHJcblxyXG4gIEBJbnB1dCgpIGZpbGVQcmV2aWV3UHJvZ3Jlc3M6IG51bWJlcjtcclxuICBAT3V0cHV0KCkgb25GaWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xyXG5cclxuICBhY3RpdmVEYXRhOiBJQWN0aXZlRGF0YTtcclxuICBnZXQgc3lzdGVtSWQoKSB7IHJldHVybiB0aGlzLmFjdGl2ZURhdGE/LnN5c3RlbUlkOyB9O1xyXG4gIC8vcGFyYW1zIGZyb20gY29uZmlnIHNlcnZpY2UuXHJcbiAgZ2V0IGFsbG93ZWRGaWxlVHlwZXMoKTogc3RyaW5nW10geyByZXR1cm4gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzOyB9O1xyXG4gIGdldCBleHRlbmRlZEZpbGVUeXBlcygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmV4dGVuZGVkRmlsZVR5cGVzOyB9O1xyXG4gIGdldCBhcHBJZCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5hcHBJZDsgfTtcclxuICBnZXQgaGlnaGxpZ2h0KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy5oaWdobGlnaHQ7IH07XHJcbiAgZ2V0IGdyYW1DaGVjaygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcuY2hlY2tTb3VyY2VHcmFtbWFyOyB9O1xyXG4gIGdldCBmaWxlVXBsb2FkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlVXBsb2FkICYmICEodGhpcy5pc0RpY3RhdGluZyB8fCB0aGlzLmF1ZGlvU2VydmljZT8uaXNSZWNvcmRpbmcgfHwgdGhpcy52b2ljZUlucHV0U2VydmljZS5pc1Byb2Nlc3NpbmcpOyB9O1xyXG4gIGdldCBjbGllbnRJZCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5jbGllbnRJZDsgfTtcclxuICBnZXQgaGlkZUFjaGlldmVtZW50KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5oaWRlQWNoaWV2ZW1lbnQgfHwgIXRoaXMuaXNFbXB0eVRhcmdldDsgfTtcclxuICBnZXQgaXNBdXRoKCkgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5pc0F1dGg7IH07XHJcbiAgZ2V0IG1heEZpbGVVcGxvYWRTaXplKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm1heFNpemU7IH07XHJcbiAgZ2V0IG11bHRpcGxlRmlsZXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkID4gMTsgfTtcclxuICBnZXQgdHJhbnNsYXRpb25VcmwoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcudHJhbnNsYXRpb25Vcmw7IH07XHJcbiAgZ2V0IHVwZGF0ZVRyYW5zbGF0aW9uVXJsKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmNvbmZpZy50ZXh0Q29uZmlnLnVwZGF0ZVRyYW5zbGF0aW9uVXJsOyB9O1xyXG4gIGdldCB1c2VEaWN0aW9uYXJ5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy51c2VEaWN0aW9uYXJ5OyB9O1xyXG4gIGdldCBhbGxvd1dlYnNpdGVUcmFuc2xhdGlvbigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcuYWxsb3dXZWJzaXRlVHJhbnNsYXRpb247IH07XHJcbiAgZ2V0IGF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy5hdXRvUmVkaXJlY3RUb1dlYlRyYW5zbGF0ZTsgfTtcclxuICBnZXQgd2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXgoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXg7IH07XHJcbiAgZ2V0IHdlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4KCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmNvbmZpZy50ZXh0Q29uZmlnLndlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4OyB9O1xyXG4gIGdldCBzaG93U3VnZ2VzdGlvbnMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmhhc1RyYW5zbGF0ZWRQYXJhZ3JhcGhzICYmIHRoaXMuY29uZmlnLnRleHRDb25maWcuc2hvd1N1Z2dlc3Rpb25zICYmICF0aGlzLnVybFRvVHJhbnNsYXRlIH07XHJcbiAgZ2V0IHRleHRhcmVhRGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmF1ZGlvU2VydmljZS5pc1JlY29yZGluZyB8fCB0aGlzLnZvaWNlSW5wdXRTZXJ2aWNlLmlzUHJvY2Vzc2luZyB8fCB0aGlzLmlzRGljdGF0aW5nIH07XHJcbiAgZ2V0IGlzRGljdGF0aW5nKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5pc0RpY3RhdGluZzsgfTtcclxuICBnZXQgbWF4RGljdGF0ZUxlbmd0aCgpIHsgcmV0dXJuIHRoaXMuY29uZmlnLmF1ZGlvQ29uZmlnLm1heGltdW1SZWNvcmRUaW1lOyB9XHJcbiAgZ2V0IHNvdXJjZUxhbmd1YWdlKCkgeyByZXR1cm4gdGhpcy5hY3RpdmVEYXRhPy5zb3VyY2VMYW5nLmxhbmc7IH1cclxuICBnZXQgaGFzVHJhbnNsYXRlZFBhcmFncmFwaHMoKSB7IHJldHVybiB0aGlzLnRhcmdldFBhcmFncmFwaHM/Lmxlbmd0aCA+IDAgfVxyXG4gIGdldCBpc0VtcHR5VGFyZ2V0KCkgeyByZXR1cm4gIXRoaXMuaGFzVHJhbnNsYXRlZFBhcmFncmFwaHMgJiYgIXRoaXMudXJsVG9UcmFuc2xhdGUgJiYgIXRoaXMuaGFzRGljdGlvbmFyeSB9XHJcbiAgZ2V0IHNob3dUYXJnZXRQbGFjZWhvbGRlcigpIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyIH1cclxuICBnZXQgc2hvd0V4dGVuc2lvblBvcHVwKCkgeyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgJiYgdGhpcy52aXNpYmxlRXh0ZW5zaW9uQ291bnQgPCB0aGlzLmFsbG93ZWRGaWxlVHlwZXMubGVuZ3RoIH1cclxuICBnZXQgdmlzaWJsZUV4dGVuc2lvbkNvdW50KCkgeyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy52aXNpYmxlRXh0ZW5zaW9uQ291bnQgfTtcclxuICBnZXQgdGV4dFRvU3BlZWNoVGFyZ2V0U2V0dGluZ3MoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnRleHRUb1NwZWVjaFRhcmdldFNldHRpbmdzIH07XHJcbiAgZ2V0IHRleHRUb1NwZWVjaFNvdXJjZVNldHRpbmdzKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS50ZXh0VG9TcGVlY2hTb3VyY2VTZXR0aW5ncyB9O1xyXG4gIGdldCB1cGxvYWRJY29uTmFtZSgpIHsgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcudXBsb2FkSWNvbk5hbWUgfTtcclxuXHJcbiAgYXVkaW9JbnB1dFZpc2libGU6IGJvb2xlYW47XHJcbiAgdGFyZ2V0U2VudGVuY2VTZWxlY3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGdldCB1cmxUb1RyYW5zbGF0ZSgpIHsgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UudXJsVG9UcmFuc2xhdGU7IH07XHJcblxyXG4gIGFsbG93ZWRUeXBlc1dpdGhvdXREb3RzOiBzdHJpbmdbXTtcclxuXHJcbiAgcmVhZG9ubHkgY29weU1lc3NhZ2VJZCA9IFwidGxkLWNvcHktc3VjY2Vzc1wiO1xyXG4gIHJlYWRvbmx5IGNvcHlNZXNzYWdlQ2xvc2VCdXR0b25JZCA9IFwidGxkLWNvcHktc3VjY2Vzcy1jbG9zZVwiO1xyXG4gIHJlYWRvbmx5IGNvcHlCdXR0b25JZCA9IFwidGxkLWNvcHktdG8tY2xpcGJvYXJkXCI7XHJcblxyXG4gIGdldCB0cmFuc2xhdGVkVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UudHJhbnNsYXRlZFRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZmlyc3RQYXJhZ3JhcGhUcmFuc2xhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuZmlyc3RQYXJhZ3JhcGhUcmFuc2xhdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0RpY3Rpb25hcnkoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmhhc0RpY3Rpb25hcnk7IH1cclxuICBnZXQgZGljdGlvbmFyeUVudHJ5KCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5kaWN0aW9uYXJ5RW50cnk7IH1cclxuICBnZXQgc291cmNlKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5zb3VyY2VUZXh0OyB9XHJcbiAgZ2V0IHRyYW5zbGF0ZVVybFJlZGlyZWN0KCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS50cmFuc2xhdGVVcmxSZWRpcmVjdDsgfVxyXG4gIGdldCBzaG93UHJvZ3Jlc3NJbmRpY2F0b3IoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnNob3VsZFNob3dQcm9ncmVzc0luZGljYXRvcjsgfVxyXG4gIGdldCBoaWRlU291cmNlQWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLnNvdXJjZSAmJiB0aGlzLmNvbmZpZy50ZXh0Q29uZmlnLmhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGUgJiYgdGhpcy5pc01vYmlsZTtcclxuICB9XHJcbiAgZ2V0IHBhcmFncmFwaHMoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnBhcmFncmFwaHM7IH07XHJcbiAgZ2V0IHNvdXJjZVBhcmFncmFwaHMoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnNvdXJjZVBhcmFncmFwaHM7IH1cclxuICBnZXQgdGFyZ2V0UGFyYWdyYXBocygpIHsgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UudGFyZ2V0UGFyYWdyYXBoczsgfVxyXG5cclxuICBkaWN0YXRlQ29uZmlnOiBJRGljdGF0ZUNvbmZpZ3VyYXRpb247XHJcbiAgdmlzaWJsZUV4dGVuc2lvbnM6IHN0cmluZztcclxuICBtYXhTaXplTUI6IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBpc01vYmlsZTogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVCcmVha3BvaW50cyA9IFtCcmVha3BvaW50cy5YU21hbGxdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlVGV4dFNlcnZpY2U6IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU2Nyb2xsU2VydmljZTogVGxkU2Nyb2xsU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdWRpb1NlcnZpY2U6IEF1ZGlvUmVjb3JkU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdm9pY2VJbnB1dFNlcnZpY2U6IFRsZFZvaWNlSW5wdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlU2VydmljZTogVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UubGlzdGVuT25DaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmRpY3RhdGVDb25maWcgPSB7XHJcbiAgICAgIGFwcElkOiB0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5hcHBJZCxcclxuICAgICAgYXBwU2VjcmV0OiB0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5hcHBTZWNyZXQsXHJcbiAgICAgIG1heExlbmd0aDogdGhpcy5jb25maWcuYXVkaW9Db25maWcubWF4aW11bVJlY29yZFRpbWUsXHJcbiAgICAgIGFwaVVybDogdGhpcy5jb25maWcuYXVkaW9Db25maWcuZGljdGF0ZUFwaVVybFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWxsb3dlZFR5cGVzV2l0aG91dERvdHMgPSBbXTtcclxuICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5mb3JFYWNoKGVsID0+IHRoaXMuYWxsb3dlZFR5cGVzV2l0aG91dERvdHMucHVzaChlbC5yZXBsYWNlKFwiLlwiLCBcIlwiKSkpO1xyXG4gICAgdGhpcy52aXNpYmxlRXh0ZW5zaW9ucyA9IHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuYWxsb3dlZFR5cGVzV2l0aG91dERvdHMuc2xpY2UoMCwgdGhpcy52aXNpYmxlRXh0ZW5zaW9uQ291bnQpLmpvaW4oXCIsIFwiKSk7XHJcbiAgICB0aGlzLm1heFNpemVNQiA9IENvbW1vbi5ieXRlc1RvTWIodGhpcy5jb25maWcuZmlsZUNvbmZpZy5tYXhTaXplKTtcclxuXHJcbiAgICB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVEYXRhKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geCAmJiB5ICYmIHguc3lzdGVtSWQgPT0geS5zeXN0ZW1JZCkpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3lzdCkgPT4ge1xyXG4gICAgICAgIGlmICghc3lzdCkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFjdGl2ZURhdGEgPSBzeXN0O1xyXG4gICAgICAgIHRoaXMuYXVkaW9JbnB1dFZpc2libGUgPSB0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5hdWRpb1RleHRJbnB1dCAmJiB0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5zb3VyY2VMYW5ndWFnZXM/LmluY2x1ZGVzKHRoaXMuYWN0aXZlRGF0YT8uc291cmNlTGFuZy5sYW5nKTtcclxuICAgICAgICBpZiAodGhpcy5hY3RpdmVEYXRhLnJldHJhbnNsYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnJldHJhbnNsYXRlKHsgc3lzdGVtQ2hhbmdlZDogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLnRsZFNjcm9sbFNlcnZpY2Uuc3Vic2NyaWJlVG9TY3JvbGwoKTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcuYXVkaW9Db25maWcuYXVkaW9UZXh0SW5wdXQpIHtcclxuICAgICAgdGhpcy5hdWRpb1NlcnZpY2Uub25SZWNvcmRTdGFydC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmNoYW5nZVNvdXJjZSh7IHBocmFzZTogXCJcIiB9KTtcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHRoaXMudm9pY2VJbnB1dFNlcnZpY2Uub25UcmFuc2NyaWJ0aW9uVGV4dFVwZGF0ZWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IElUcmFuc2NyaXB0aW9uVXBkYXRlTW9kZWwpID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuY2hhbmdlU291cmNlKHsgcGhyYXNlOiBldmVudC50ZXh0LCBzd2FwU3lzdGVtczogZmFsc2UsIGRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbjogIWV2ZW50LmNvbXBsZXRlZCB9KTtcclxuICAgICAgICAgIGlmIChldmVudC5jb21wbGV0ZWQgJiYgKCFldmVudC50ZXh0IHx8IGV2ZW50LnRleHQgPT09IFwiXCIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoYEVSUk9SUy5BVURJTy4ke0F1ZGlvRXJyb3JDYXNlLk5PX1RFWFRfUkVDT0dOSVpFRH1gKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0JyZWFrcG9pbnRPYnNlcnZlcigpO1xyXG4gIH1cclxuXHJcbiAgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHM6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHMgJiYgc1swXS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKTtcclxuICB9XHJcblxyXG4gIGNvcHkoKSB7XHJcbiAgICB0aGlzLmNsaXBib2FyZC5jb3B5KHRoaXMudHJhbnNsYXRlZFRleHQpO1xyXG4gICAgdGhpcy5hbGVydHMuaW5mbyhcIlRMRF9UUkFOU0xBVEUuVEVYVF9DT1BJRURcIiwgeyBpZDogdGhpcy5jb3B5TWVzc2FnZUlkLCBjbG9zZUJ1dHRvbklkOiB0aGlzLmNvcHlNZXNzYWdlQ2xvc2VCdXR0b25JZCwgcGFyZW50SWQ6IHRoaXMuY29weUJ1dHRvbklkIH0pO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoRm9jdXNGcm9tQ29weShldmVudCkge1xyXG4gICAgY29uc3QgY29weU1lc3NhZ2VDbG9zZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY29weU1lc3NhZ2VDbG9zZUJ1dHRvbklkKT8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJidXR0b25cIik/Lml0ZW0oMCk7XHJcbiAgICBpZiAoY29weU1lc3NhZ2VDbG9zZUJ1dHRvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBjb3B5TWVzc2FnZUNsb3NlQnV0dG9uLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWxlQ2hhbmdlKGZpbGVzOiBGaWxlW10pIHtcclxuICAgIHRoaXMub25GaWxlQ2hhbmdlLmVtaXQoZmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgZmlsZVVwbG9hZEVycm9yKGVycm9yOiBhbnkpIHtcclxuICAgIHRoaXMuZmlsZVNlcnZpY2UuZmlsZVVwbG9hZEVycm9yKGVycm9yIGFzIEZpbGVVcGxvYWRFcnJvcik7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvVHJhbnNsYXRlZFVybCgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHRoaXMudHJhbnNsYXRlVXJsUmVkaXJlY3QpO1xyXG4gIH1cclxuXHJcbiAgZGljdGF0ZVN0YXJ0U3RvcChpc0RpY3RhdGluZzogYm9vbGVhbikge1xyXG4gICAgY29uc3QgcGhyYXNlID0gYCR7dGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5zb3VyY2VUZXh0fSR7dGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5zb3VyY2VUZXh0Py5sZW5ndGggPiAwID8gXCIgXCIgOiBcIlwifSR7dGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5zb3VyY2VUZXh0SHlwb3RoZXNpc31gO1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5pc0RpY3RhdGluZyA9IGlzRGljdGF0aW5nO1xyXG4gICAgLy8gVHJhbnNsYXRpb24gaGFzIGVuZGVkLlxyXG4gICAgaWYgKCFpc0RpY3RhdGluZykge1xyXG4gICAgICBpZiAodGhpcy5jb25maWcuYXVkaW9Db25maWcucHVuY3R1YXRpb25NZXNzYWdlICYmIHBocmFzZT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoXCJBVURJTy5QVU5DVFVBVElPTl9NRVNTQUdFXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmNoYW5nZVNvdXJjZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwaHJhc2UsXHJcbiAgICAgICAgICBkaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb246IHRoaXMuaXNEaWN0YXRpbmcgfHwgdGhpcy5jb25maWcuYXVkaW9Db25maWcuZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuY2hhbmdlU291cmNlSHlwb3RoZXNpcyhcIlwiKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmNsZWFyU291cmNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaWN0YXRlUmVzdWx0KHJlc3VsdDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmNoYW5nZVNvdXJjZUh5cG90aGVzaXMoXCJcIik7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmNoYW5nZVNvdXJjZSh7IHBocmFzZTogcmVzdWx0LCBkaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb246IHRoaXMuaXNEaWN0YXRpbmcgfSlcclxuICB9XHJcblxyXG4gIGRpY3RhdGVQYXJ0aWFsUmVzdWx0KHBhcnRpYWxSZXN1bHQ6IHN0cmluZykge1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5jaGFuZ2VTb3VyY2VIeXBvdGhlc2lzKHBhcnRpYWxSZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgZGljdGF0ZUVycm9yKGVycm9yOiBBdWRpb0Vycm9yQ2FzZSkge1xyXG4gICAgaWYgKGVycm9yID09PSBBdWRpb0Vycm9yQ2FzZS5NQVhfVElNRV9FWENFRURFRCkge1xyXG4gICAgICBsZXQgdGltZVN0cmluZyA9IFwiXCI7XHJcbiAgICAgIGNvbnN0IG1heExlbmd0aFRpbWUgPSBuZXcgRGF0ZSgwLCAwLCAwLCAwLCAwLCB0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5tYXhpbXVtUmVjb3JkVGltZSk7XHJcblxyXG4gICAgICBjb25zdCBtaW51dGVzID0gbWF4TGVuZ3RoVGltZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgIGlmIChtaW51dGVzID4gMCkge1xyXG4gICAgICAgIHRpbWVTdHJpbmcgKz0gYCR7bWludXRlc30gbWludXRlc2A7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHNlY29uZHMgPSBtYXhMZW5ndGhUaW1lLmdldFNlY29uZHMoKTtcclxuICAgICAgaWYgKHNlY29uZHMgPiAwKSB7XHJcbiAgICAgICAgdGltZVN0cmluZyArPSBgJHtzZWNvbmRzfSBzZWNvbmRzYFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoYEVSUk9SUy5BVURJTy4ke2Vycm9yfWAsIHsgdGltZVN0cmluZyB9KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVycm9yID09PSBBdWRpb0Vycm9yQ2FzZS5OT19TUEVFQ0gpIHtcclxuICAgICAgdGhpcy5hbGVydHMud2FybmluZyhgRVJST1JTLkFVRElPLiR7ZXJyb3J9YCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKHsgRXJyb3JDb2RlOiBlcnJvciB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyU291cmNlKCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5jbGVhclNvdXJjZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnN0b3BMaXN0ZW5pbmdUb0NoYW5nZXMoKTtcclxuICAgIHRoaXMudGxkU2Nyb2xsU2VydmljZS51bnN1YnNjcmliZVRvU2Nyb2xsKCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbClcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUHJvZ3Jlc3NJbmRpY2F0b3IoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmhpZGVQcm9ncmVzc0luZGljYXRvcigpO1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5zdG9wVHJhbnNsYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8vIG5lZWQgdG8gc3Vic2NyaWJlIHRvIGdldCBpZiBpcyBtb2JpbGUgdmlldyBzbyBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBoaWRlIHNvdXJjZSBhY3Rpb24gcm93LlxyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9CcmVha3BvaW50T2JzZXJ2ZXIoKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMubW9iaWxlQnJlYWtwb2ludHMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlID0gc3RhdGUubWF0Y2hlcztcclxuICAgICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gTk9URS4gdGxkLXNvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXIgdXNlcyBtdWx0aXBsZSBjb250ZW50IHByb2plY3Rpb25zLCBzbyBtaWdodCBzZWVtIGNvbmZ1c2luZyBmaXJzdCwgYnV0IGVsZW1lbnRzIGFyZSBkaXNwbGF5ZWQgYXQgdGhlaXIgcGxhY2VzIGJhc2VkIG9uIHRsZC1zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyIGNvbXBvbmVudFxyXG5odHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvY29udGVudC1wcm9qZWN0aW9uI211bHRpLXNsb3QtY29udGVudC1wcm9qZWN0aW9uXHJcbi0tPlxyXG48dGxkLXNvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXIgW3RleHRUb1NwZWVjaFNvdXJjZVNldHRpbmdzXT1cInRleHRUb1NwZWVjaFNvdXJjZVNldHRpbmdzXCJcclxuICBbY2xlYXJTb3VyY2VWaXNpYmxlXT1cInNvdXJjZT8ubGVuZ3RoPjBcIiAob25Tb3VyY2VDbGVhcik9XCJjbGVhclNvdXJjZSgpXCIgW2hpZGVBY2hpZXZlbWVudF09XCJoaWRlQWNoaWV2ZW1lbnRcIlxyXG4gIFtjbGVhckRpc2FibGVkXT1cInRleHRhcmVhRGlzYWJsZWRcIiBbY2xlYXJTb3VyY2VUb29sdGlwXT1cIidUTERfVFJBTlNMQVRFLkNMRUFSX1NPVVJDRV9UT09MVElQJ1wiXHJcbiAgW25nQ2xhc3NdPVwieydoaWdobGlnaHQtYWN0aXZlJzogaGlnaGxpZ2h0LCAnZ3JhbWNoZWNrLWFjdGl2ZSc6IGdyYW1DaGVjaywgJ2VtcHR5LXRhcmdldCc6IGlzRW1wdHlUYXJnZXR9XCI+XHJcbiAgPGRpdiBzb3VyY2VNYWluIGNsYXNzPVwic291cmNlLW1haW5cIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgPHRsZC10cmFuc2xhdGUtc291cmNlIFt0ZXh0YXJlYURpc2FibGVkXT1cInRleHRhcmVhRGlzYWJsZWRcIiAjc291cmNlQ29tcG9uZW50IGZ4RmxleFxyXG4gICAgICBbc291cmNlUGFyYWdyYXBoc109XCJzb3VyY2VQYXJhZ3JhcGhzXCI+PC90bGQtdHJhbnNsYXRlLXNvdXJjZT5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyIHNvdXJjZUFjdGlvbnMgKm5nSWY9XCIhaGlkZVNvdXJjZUFjdGlvbnNcIj5cclxuICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGNsYXNzPVwiYmFzaWMtcGFkZGluZ1wiIGZ4TGF5b3V0R2FwPVwiMWVtXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdWRpb0lucHV0VmlzaWJsZVwiPlxyXG4gICAgICAgIDx0bGQtZGljdGF0ZSBbY29uZmlndXJhdGlvbl09XCJkaWN0YXRlQ29uZmlnXCIgW25nQ2xhc3NdPVwieydmdWxsLXdpZHRoJyA6ICFmaWxlVXBsb2FkfVwiXHJcbiAgICAgICAgICAoaXNEaWN0YXRpbmcpPVwiZGljdGF0ZVN0YXJ0U3RvcCgkZXZlbnQpXCIgKHJlc3VsdCk9XCJkaWN0YXRlUmVzdWx0KCRldmVudClcIlxyXG4gICAgICAgICAgKHBhcnRpYWxSZXN1bHQpPVwiZGljdGF0ZVBhcnRpYWxSZXN1bHQoJGV2ZW50KVwiIChvbkVycm9yKT1cImRpY3RhdGVFcnJvcigkZXZlbnQpXCIgW2xhbmd1YWdlXT1cInNvdXJjZUxhbmd1YWdlXCI+XHJcbiAgICAgICAgPC90bGQtZGljdGF0ZT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmaWxlVXBsb2FkXCIgY2xhc3M9XCJmaWxlLXVwbG9hZC13cmFwcGVyXCI+XHJcbiAgICAgICAgPHRsZC1maWxlLXVwbG9hZCAoZmlsZUNoYW5nZSk9XCJmaWxlQ2hhbmdlKCRldmVudClcIiBbYWNjZXB0XT1cImFsbG93ZWRGaWxlVHlwZXNcIiBbbWF4U2l6ZV09XCJtYXhGaWxlVXBsb2FkU2l6ZVwiIFt1cGxvYWRJY29uTmFtZV09XCJ1cGxvYWRJY29uTmFtZVwiXHJcbiAgICAgICAgICBbZXh0ZW5kZWRBY2NlcHRMaXN0XT1cImV4dGVuZGVkRmlsZVR5cGVzXCIgW211bHRpcGxlXT1cIm11bHRpcGxlRmlsZXNcIiAoZXJyb3JFdmVudCk9XCJmaWxlVXBsb2FkRXJyb3IoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbZmlsZVByZXZpZXdQcm9ncmVzc109XCJmaWxlUHJldmlld1Byb2dyZXNzXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC1maWxlLXRleHRcIj5cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mbyB0ZXh0LWwtc2VtaS1ib2xkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIidGSUxFX1VQTE9BRC5VUExPQUQnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJhY2NlbnQtY29sb3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj4mbmJzcDs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIidGSUxFX1VQTE9BRC5EUkFHX0FORF9EUk9QJyB8IHRyYW5zbGF0ZVwiIGZ4SGlkZS5sdC1zbT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIidGSUxFX1VQTE9BRC4nKyAobXVsdGlwbGVGaWxlcz8gJ0ZJTEVTJyA6ICdGSUxFJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzcy5sdC1zbV09XCInYWNjZW50LWNvbG9yJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXVwbG9hZC1leHRlbnNpb25zIHRleHQtbVwiXHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIidGSUxFX1VQTE9BRC5MSU1JVFMnIHwgdHJhbnNsYXRlOiB7bWF4U2l6ZU1COiBtYXhTaXplTUIsIHZpc2libGVFeHRlbnNpb25zOiB2aXNpYmxlRXh0ZW5zaW9uc31cIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvdGxkLWZpbGUtdXBsb2FkPlxyXG4gICAgICAgIDx0bGQtb3Blbi1leHRlbnNpb24tZGlhbG9nICpuZ0lmPVwic2hvd0V4dGVuc2lvblBvcHVwXCIgW2V4dGVuc2lvbnNdPVwiYWxsb3dlZFR5cGVzV2l0aG91dERvdHNcIj5cclxuICAgICAgICA8L3RsZC1vcGVuLWV4dGVuc2lvbi1kaWFsb2c+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgdGFyZ2V0TWFpbiBjbGFzcz1cInRhcmdldC1tYWluXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0RpY3Rpb25hcnk7IGVsc2UgZGljdGlvbmFyeVRhcmdldEJsb2NrXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VtcHR5VGFyZ2V0OyBlbHNlIHRyYW5zbGF0ZWRUZXh0QmxvY2tcIj5cclxuICAgICAgICA8cCAqbmdJZj1cInNob3dUYXJnZXRQbGFjZWhvbGRlclwiIGNsYXNzPVwiZGVzY3JpcHRpb24tdGV4dCB0YXJnZXQtZW1wdHlcIlxyXG4gICAgICAgICAgW2lubmVySHRtbF09XCInVExEX1RSQU5TTEFURS5UQVJHRVRfREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyIHRhcmdldEFjdGlvbnM+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGxkLXRyYW5zbGF0ZS10YXJnZXQtZm9vdGVyIGJhc2ljLXBhZGRpbmdcIiAqbmdJZj1cInNob3dTdWdnZXN0aW9ucyB8fCBzaG93UHJvZ3Jlc3NJbmRpY2F0b3JcIj5cclxuICAgICAgPHRsZC10cmFuc2xhdGUtc3VnZ2VzdCAqbmdJZj1cInNob3dTdWdnZXN0aW9uc1wiIFtzeXN0ZW1JZF09XCJzeXN0ZW1JZFwiIFt0YXJnZXRdPVwidGFyZ2V0UGFyYWdyYXBoc1wiXHJcbiAgICAgICAgW3NvdXJjZV09XCJzb3VyY2VQYXJhZ3JhcGhzXCI+XHJcbiAgICAgIDwvdGxkLXRyYW5zbGF0ZS1zdWdnZXN0PlxyXG4gICAgICA8cHJvZ3Jlc3MtaW5kaWNhdG9yIChvbkNsb3NlKT1cImNsb3NlUHJvZ3Jlc3NJbmRpY2F0b3IoKVwiICpuZ0lmPVwic2hvd1Byb2dyZXNzSW5kaWNhdG9yXCI+PC9wcm9ncmVzcy1pbmRpY2F0b3I+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC90bGQtc291cmNlLWFuZC10YXJnZXQtd3JhcHBlcj5cclxuXHJcblxyXG48IS0tIHRlbXBsYXRlcyB1c2VkIGZvciBlbHNlIGJsb2NrcyBpbiB0YXJnZXQgY29udGFpbmVyIC0tPlxyXG48bmctdGVtcGxhdGUgI3RyYW5zbGF0ZWRUZXh0QmxvY2s+XHJcbiAgPGRpdiBjbGFzcz1cInRyYW5zbGF0ZWQtc291cmNlXCIgW2NsYXNzLnNlbGVjdGFibGUtc2VudGVuY2VdPVwic2hvd1N1Z2dlc3Rpb25zXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVybFRvVHJhbnNsYXRlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXQtd3JhcHBlci1hY3Rpb24tYnV0dG9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJmaXJzdFBhcmFncmFwaFRyYW5zbGF0ZWRcIiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJ0bGQtY29weS10cmFuc2xhdGlvblwiIChjbGljayk9XCJjb3B5KClcIlxyXG4gICAgICAgICAgbWF0VG9vbHRpcD1cInt7J1RPT0xUSVBTLkNPUFknIHwgdHJhbnNsYXRlfX1cIiBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImNvcHlNZXNzYWdlSWRcIlxyXG4gICAgICAgICAgKGtleWRvd24uVGFiKT1cInN3aXRjaEZvY3VzRnJvbUNvcHkoJGV2ZW50KVwiIFthdHRyLklkXT1cImNvcHlCdXR0b25JZFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUklBX0xBQkVMUy5DT1BZJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICBjb250ZW50X2NvcHlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8dGxkLXRleHQtdG8tc3BlZWNoICpuZ0lmPVwidGV4dFRvU3BlZWNoVGFyZ2V0U2V0dGluZ3NcIiBbc2V0dGluZ3NdPVwidGV4dFRvU3BlZWNoVGFyZ2V0U2V0dGluZ3NcIj5cclxuICAgICAgICA8L3RsZC10ZXh0LXRvLXNwZWVjaD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBhcmFncmFwaCBvZiB0YXJnZXRQYXJhZ3JhcGhzXCI+XHJcbiAgICAgICAgPHRsZC1oaWdobGlnaHQtdHJlZSBbaGlnaGxpZ2h0XT1cImhpZ2hsaWdodFwiIFt0cmVlXT1cInBhcmFncmFwaFwiIFtzZWxlY3RTZW50ZW5jZV09XCJzaG93U3VnZ2VzdGlvbnNcIj5cclxuICAgICAgICA8L3RsZC1oaWdobGlnaHQtdHJlZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgKm5nSWY9XCJ1cmxUb1RyYW5zbGF0ZVwiIGNsYXNzPVwidGFyZ2V0LXVybC1jb250YWluZXJcIj5cclxuICAgICAgPGEgW2F0dHIuaHJlZl09XCJ0cmFuc2xhdGVVcmxSZWRpcmVjdFwiIHRhcmdldD1cIl9ibGFua1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBjbGFzcz1cImdvLXRvLXdlYnRyYW5zbGF0ZVwiPlxyXG4gICAgICAgIHt7dXJsVG9UcmFuc2xhdGV9fVxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBjb2xvcj1cImFjY2VudFwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUklBX0xBQkVMUy5PUEVOX0lOX05FVydcIj5cclxuICAgICAgICAgIG9wZW5faW5fbmV3XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGljdGlvbmFyeVRhcmdldEJsb2NrPlxyXG4gIDxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJkaWN0aW9uYXJ5LXdyYXBwZXJcIj5cclxuICAgIDx0bGQtZGljdGlvbmFyeSBmeEZsZXggKm5nRm9yPVwibGV0IGRpY3Rpb25hcnkgb2YgZGljdGlvbmFyeUVudHJ5XCIgW2RpY3Rpb25hcnldPVwiZGljdGlvbmFyeVwiPlxyXG4gICAgPC90bGQtZGljdGlvbmFyeT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXh0L2NvbXBvbmVudHMvdGxkLXRyYW5zbGF0ZS10ZXh0L3RsZC10cmFuc2xhdGUtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9jb21wb25lbnRzL3RsZC10cmFuc2xhdGUtdGV4dC90bGQtdHJhbnNsYXRlLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBNkIsTUFBTSwyQkFBMkIsQ0FBQztBQUd0RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JwRCxNQUFNLE9BQU8seUJBQXlCO0lBaUZwQyxZQUNtQixvQkFBNkMsRUFDN0MsU0FBb0IsRUFDcEIsTUFBdUIsRUFDdkIsTUFBaUMsRUFDakMsZ0JBQWtDLEVBQ2xDLFNBQTJCLEVBQzNCLFlBQWdDLEVBQ2hDLGlCQUF1QyxFQUN2QyxXQUFvQyxFQUNwQyxrQkFBc0M7UUFUdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtR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QUFDO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELGdHQUFnRztJQUN4Riw2QkFBNkI7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs7c0hBalBVLHlCQUF5QjswR0FBekIseUJBQXlCLGlSQ3hCdEMsZzFMQXVHQTsyRkQvRWEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLG9CQUFvQjtxWkFLQSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFHbkIsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEF1ZGlvRXJyb3JDYXNlLCBJVHJhbnNjcmlwdGlvblVwZGF0ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWF1ZGlvL21vZGVscyc7XHJcbmltcG9ydCB7IElEaWN0YXRlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3RsZC1hdWRpby9tb2RlbHMvZGljdGF0ZS1jb25maWd1cmF0aW9uaS5tb2RlbCc7XHJcbmltcG9ydCB7IEF1ZGlvUmVjb3JkU2VydmljZSwgVGxkVm9pY2VJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtYXVkaW8vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDb21tb24gfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZEFsZXJ0U2VydmljZSwgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGRTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcy9zY3JvbGwvdGxkLXNjcm9sbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtZG9jdW1lbnQvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJQWN0aXZlRGF0YSB9IGZyb20gJy4uLy4uLy4uL3RsZC10b29sdGlwL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtdG9vbHRpcC9zZXJ2aWNlcy90bGQtc3lzdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVUZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RsZC10cmFuc2xhdGUtdGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlU291cmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGxkLXRyYW5zbGF0ZS1zb3VyY2UvdGxkLXRyYW5zbGF0ZS1zb3VyY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10cmFuc2xhdGUtdGV4dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUtdGV4dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLXRyYW5zbGF0ZS10ZXh0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZVRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcInNvdXJjZUNvbXBvbmVudFwiKSBzb3VyY2VDb21wb25lbnQ6IFRsZFRyYW5zbGF0ZVNvdXJjZUNvbXBvbmVudDtcclxuXHJcblxyXG4gIEBJbnB1dCgpIGZpbGVQcmV2aWV3UHJvZ3Jlc3M6IG51bWJlcjtcclxuICBAT3V0cHV0KCkgb25GaWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xyXG5cclxuICBhY3RpdmVEYXRhOiBJQWN0aXZlRGF0YTtcclxuICBnZXQgc3lzdGVtSWQoKSB7IHJldHVybiB0aGlzLmFjdGl2ZURhdGE/LnN5c3RlbUlkOyB9O1xyXG4gIC8vcGFyYW1zIGZyb20gY29uZmlnIHNlcnZpY2UuXHJcbiAgZ2V0IGFsbG93ZWRGaWxlVHlwZXMoKTogc3RyaW5nW10geyByZXR1cm4gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzOyB9O1xyXG4gIGdldCBleHRlbmRlZEZpbGVUeXBlcygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmV4dGVuZGVkRmlsZVR5cGVzOyB9O1xyXG4gIGdldCBhcHBJZCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5hcHBJZDsgfTtcclxuICBnZXQgaGlnaGxpZ2h0KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy5oaWdobGlnaHQ7IH07XHJcbiAgZ2V0IGdyYW1DaGVjaygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcuY2hlY2tTb3VyY2VHcmFtbWFyOyB9O1xyXG4gIGdldCBmaWxlVXBsb2FkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlVXBsb2FkICYmICEodGhpcy5pc0RpY3RhdGluZyB8fCB0aGlzLmF1ZGlvU2VydmljZT8uaXNSZWNvcmRpbmcgfHwgdGhpcy52b2ljZUlucHV0U2VydmljZS5pc1Byb2Nlc3NpbmcpOyB9O1xyXG4gIGdldCBjbGllbnRJZCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5jbGllbnRJZDsgfTtcclxuICBnZXQgaGlkZUFjaGlldmVtZW50KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5oaWRlQWNoaWV2ZW1lbnQgfHwgIXRoaXMuaXNFbXB0eVRhcmdldDsgfTtcclxuICBnZXQgaXNBdXRoKCkgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5pc0F1dGg7IH07XHJcbiAgZ2V0IG1heEZpbGVVcGxvYWRTaXplKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm1heFNpemU7IH07XHJcbiAgZ2V0IG11bHRpcGxlRmlsZXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkID4gMTsgfTtcclxuICBnZXQgdHJhbnNsYXRpb25VcmwoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcudHJhbnNsYXRpb25Vcmw7IH07XHJcbiAgZ2V0IHVwZGF0ZVRyYW5zbGF0aW9uVXJsKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmNvbmZpZy50ZXh0Q29uZmlnLnVwZGF0ZVRyYW5zbGF0aW9uVXJsOyB9O1xyXG4gIGdldCB1c2VEaWN0aW9uYXJ5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy51c2VEaWN0aW9uYXJ5OyB9O1xyXG4gIGdldCBhbGxvd1dlYnNpdGVUcmFuc2xhdGlvbigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcuYWxsb3dXZWJzaXRlVHJhbnNsYXRpb247IH07XHJcbiAgZ2V0IGF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy5hdXRvUmVkaXJlY3RUb1dlYlRyYW5zbGF0ZTsgfTtcclxuICBnZXQgd2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXgoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXg7IH07XHJcbiAgZ2V0IHdlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4KCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmNvbmZpZy50ZXh0Q29uZmlnLndlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4OyB9O1xyXG4gIGdldCBzaG93U3VnZ2VzdGlvbnMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmhhc1RyYW5zbGF0ZWRQYXJhZ3JhcGhzICYmIHRoaXMuY29uZmlnLnRleHRDb25maWcuc2hvd1N1Z2dlc3Rpb25zICYmICF0aGlzLnVybFRvVHJhbnNsYXRlIH07XHJcbiAgZ2V0IHRleHRhcmVhRGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmF1ZGlvU2VydmljZS5pc1JlY29yZGluZyB8fCB0aGlzLnZvaWNlSW5wdXRTZXJ2aWNlLmlzUHJvY2Vzc2luZyB8fCB0aGlzLmlzRGljdGF0aW5nIH07XHJcbiAgZ2V0IGlzRGljdGF0aW5nKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5pc0RpY3RhdGluZzsgfTtcclxuICBnZXQgbWF4RGljdGF0ZUxlbmd0aCgpIHsgcmV0dXJuIHRoaXMuY29uZmlnLmF1ZGlvQ29uZmlnLm1heGltdW1SZWNvcmRUaW1lOyB9XHJcbiAgZ2V0IHNvdXJjZUxhbmd1YWdlKCkgeyByZXR1cm4gdGhpcy5hY3RpdmVEYXRhPy5zb3VyY2VMYW5nLmxhbmc7IH1cclxuICBnZXQgaGFzVHJhbnNsYXRlZFBhcmFncmFwaHMoKSB7IHJldHVybiB0aGlzLnRhcmdldFBhcmFncmFwaHM/Lmxlbmd0aCA+IDAgfVxyXG4gIGdldCBpc0VtcHR5VGFyZ2V0KCkgeyByZXR1cm4gIXRoaXMuaGFzVHJhbnNsYXRlZFBhcmFncmFwaHMgJiYgIXRoaXMudXJsVG9UcmFuc2xhdGUgJiYgIXRoaXMuaGFzRGljdGlvbmFyeSB9XHJcbiAgZ2V0IHNob3dUYXJnZXRQbGFjZWhvbGRlcigpIHsgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyIH1cclxuICBnZXQgc2hvd0V4dGVuc2lvblBvcHVwKCkgeyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgJiYgdGhpcy52aXNpYmxlRXh0ZW5zaW9uQ291bnQgPCB0aGlzLmFsbG93ZWRGaWxlVHlwZXMubGVuZ3RoIH1cclxuICBnZXQgdmlzaWJsZUV4dGVuc2lvbkNvdW50KCkgeyByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy52aXNpYmxlRXh0ZW5zaW9uQ291bnQgfTtcclxuICBnZXQgdGV4dFRvU3BlZWNoVGFyZ2V0U2V0dGluZ3MoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnRleHRUb1NwZWVjaFRhcmdldFNldHRpbmdzIH07XHJcbiAgZ2V0IHRleHRUb1NwZWVjaFNvdXJjZVNldHRpbmdzKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS50ZXh0VG9TcGVlY2hTb3VyY2VTZXR0aW5ncyB9O1xyXG4gIGdldCB1cGxvYWRJY29uTmFtZSgpIHsgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcudXBsb2FkSWNvbk5hbWUgfTtcclxuXHJcbiAgYXVkaW9JbnB1dFZpc2libGU6IGJvb2xlYW47XHJcbiAgdGFyZ2V0U2VudGVuY2VTZWxlY3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGdldCB1cmxUb1RyYW5zbGF0ZSgpIHsgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UudXJsVG9UcmFuc2xhdGU7IH07XHJcblxyXG4gIGFsbG93ZWRUeXBlc1dpdGhvdXREb3RzOiBzdHJpbmdbXTtcclxuXHJcbiAgcmVhZG9ubHkgY29weU1lc3NhZ2VJZCA9IFwidGxkLWNvcHktc3VjY2Vzc1wiO1xyXG4gIHJlYWRvbmx5IGNvcHlNZXNzYWdlQ2xvc2VCdXR0b25JZCA9IFwidGxkLWNvcHktc3VjY2Vzcy1jbG9zZVwiO1xyXG4gIHJlYWRvbmx5IGNvcHlCdXR0b25JZCA9IFwidGxkLWNvcHktdG8tY2xpcGJvYXJkXCI7XHJcblxyXG4gIGdldCB0cmFuc2xhdGVkVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UudHJhbnNsYXRlZFRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZmlyc3RQYXJhZ3JhcGhUcmFuc2xhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuZmlyc3RQYXJhZ3JhcGhUcmFuc2xhdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0RpY3Rpb25hcnkoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmhhc0RpY3Rpb25hcnk7IH1cclxuICBnZXQgZGljdGlvbmFyeUVudHJ5KCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5kaWN0aW9uYXJ5RW50cnk7IH1cclxuICBnZXQgc291cmNlKCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5zb3VyY2VUZXh0OyB9XHJcbiAgZ2V0IHRyYW5zbGF0ZVVybFJlZGlyZWN0KCkgeyByZXR1cm4gdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS50cmFuc2xhdGVVcmxSZWRpcmVjdDsgfVxyXG4gIGdldCBzaG93UHJvZ3Jlc3NJbmRpY2F0b3IoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnNob3VsZFNob3dQcm9ncmVzc0luZGljYXRvcjsgfVxyXG4gIGdldCBoaWRlU291cmNlQWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLnNvdXJjZSAmJiB0aGlzLmNvbmZpZy50ZXh0Q29uZmlnLmhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGUgJiYgdGhpcy5pc01vYmlsZTtcclxuICB9XHJcbiAgZ2V0IHBhcmFncmFwaHMoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnBhcmFncmFwaHM7IH07XHJcbiAgZ2V0IHNvdXJjZVBhcmFncmFwaHMoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLnNvdXJjZVBhcmFncmFwaHM7IH1cclxuICBnZXQgdGFyZ2V0UGFyYWdyYXBocygpIHsgcmV0dXJuIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UudGFyZ2V0UGFyYWdyYXBoczsgfVxyXG5cclxuICBkaWN0YXRlQ29uZmlnOiBJRGljdGF0ZUNvbmZpZ3VyYXRpb247XHJcbiAgdmlzaWJsZUV4dGVuc2lvbnM6IHN0cmluZztcclxuICBtYXhTaXplTUI6IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBpc01vYmlsZTogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVCcmVha3BvaW50cyA9IFtCcmVha3BvaW50cy5YU21hbGxdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlVGV4dFNlcnZpY2U6IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU2Nyb2xsU2VydmljZTogVGxkU2Nyb2xsU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdWRpb1NlcnZpY2U6IEF1ZGlvUmVjb3JkU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdm9pY2VJbnB1dFNlcnZpY2U6IFRsZFZvaWNlSW5wdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlU2VydmljZTogVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UubGlzdGVuT25DaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmRpY3RhdGVDb25maWcgPSB7XHJcbiAgICAgIGFwcElkOiB0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5hcHBJZCxcclxuICAgICAgYXBwU2VjcmV0OiB0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5hcHBTZWNyZXQsXHJcbiAgICAgIG1heExlbmd0aDogdGhpcy5jb25maWcuYXVkaW9Db25maWcubWF4aW11bVJlY29yZFRpbWUsXHJcbiAgICAgIGFwaVVybDogdGhpcy5jb25maWcuYXVkaW9Db25maWcuZGljdGF0ZUFwaVVybFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudmlzaWJsZUV4dGVuc2lvbnMgPSB0aGlzLmFsbG93ZWRGaWxlVHlwZXMuc2xpY2UoMCwgdGhpcy52aXNpYmxlRXh0ZW5zaW9uQ291bnQpLmpvaW4oXCIsIFwiKTtcclxuICAgIHRoaXMubWF4U2l6ZU1CID0gQ29tbW9uLmJ5dGVzVG9NYih0aGlzLmNvbmZpZy5maWxlQ29uZmlnLm1heFNpemUpO1xyXG5cclxuICAgIHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB4ICYmIHkgJiYgeC5zeXN0ZW1JZCA9PSB5LnN5c3RlbUlkKSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzeXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKCFzeXN0KSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0YSA9IHN5c3Q7XHJcbiAgICAgICAgdGhpcy5hdWRpb0lucHV0VmlzaWJsZSA9IHRoaXMuY29uZmlnLmF1ZGlvQ29uZmlnLmF1ZGlvVGV4dElucHV0ICYmIHRoaXMuY29uZmlnLmF1ZGlvQ29uZmlnLnNvdXJjZUxhbmd1YWdlcz8uaW5jbHVkZXModGhpcy5hY3RpdmVEYXRhPy5zb3VyY2VMYW5nLmxhbmcpO1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZURhdGEucmV0cmFuc2xhdGUpIHtcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UucmV0cmFuc2xhdGUoeyBzeXN0ZW1DaGFuZ2VkOiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgIHRoaXMudGxkU2Nyb2xsU2VydmljZS5zdWJzY3JpYmVUb1Njcm9sbCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5hdWRpb0NvbmZpZy5hdWRpb1RleHRJbnB1dCkge1xyXG4gICAgICB0aGlzLmF1ZGlvU2VydmljZS5vblJlY29yZFN0YXJ0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuY2hhbmdlU291cmNlKHsgcGhyYXNlOiBcIlwiIH0pO1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgdGhpcy52b2ljZUlucHV0U2VydmljZS5vblRyYW5zY3JpYnRpb25UZXh0VXBkYXRlZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogSVRyYW5zY3JpcHRpb25VcGRhdGVNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5jaGFuZ2VTb3VyY2UoeyBwaHJhc2U6IGV2ZW50LnRleHQsIHN3YXBTeXN0ZW1zOiBmYWxzZSwgZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uOiAhZXZlbnQuY29tcGxldGVkIH0pO1xyXG4gICAgICAgICAgaWYgKGV2ZW50LmNvbXBsZXRlZCAmJiAoIWV2ZW50LnRleHQgfHwgZXZlbnQudGV4dCA9PT0gXCJcIikpIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydHMud2FybmluZyhgRVJST1JTLkFVRElPLiR7QXVkaW9FcnJvckNhc2UuTk9fVEVYVF9SRUNPR05JWkVEfWApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmliZVRvQnJlYWtwb2ludE9ic2VydmVyKCk7XHJcbiAgfVxyXG5cclxuICBjb3B5KCkge1xyXG4gICAgdGhpcy5jbGlwYm9hcmQuY29weSh0aGlzLnRyYW5zbGF0ZWRUZXh0KTtcclxuICAgIHRoaXMuYWxlcnRzLmluZm8oXCJUTERfVFJBTlNMQVRFLlRFWFRfQ09QSUVEXCIsIHsgaWQ6IHRoaXMuY29weU1lc3NhZ2VJZCwgY2xvc2VCdXR0b25JZDogdGhpcy5jb3B5TWVzc2FnZUNsb3NlQnV0dG9uSWQsIHBhcmVudElkOiB0aGlzLmNvcHlCdXR0b25JZCB9KTtcclxuICB9XHJcblxyXG4gIHN3aXRjaEZvY3VzRnJvbUNvcHkoZXZlbnQpIHtcclxuICAgIGNvbnN0IGNvcHlNZXNzYWdlQ2xvc2VCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvcHlNZXNzYWdlQ2xvc2VCdXR0b25JZCk/LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYnV0dG9uXCIpPy5pdGVtKDApO1xyXG4gICAgaWYgKGNvcHlNZXNzYWdlQ2xvc2VCdXR0b24pIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgY29weU1lc3NhZ2VDbG9zZUJ1dHRvbi5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsZUNoYW5nZShmaWxlczogRmlsZVtdKSB7XHJcbiAgICB0aGlzLm9uRmlsZUNoYW5nZS5lbWl0KGZpbGVzKTtcclxuICB9XHJcblxyXG4gIGZpbGVVcGxvYWRFcnJvcihlcnJvcjogYW55KSB7XHJcbiAgICB0aGlzLmZpbGVTZXJ2aWNlLmZpbGVVcGxvYWRFcnJvcihlcnJvciBhcyBGaWxlVXBsb2FkRXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb1RyYW5zbGF0ZWRVcmwoKSB7XHJcbiAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh0aGlzLnRyYW5zbGF0ZVVybFJlZGlyZWN0KTtcclxuICB9XHJcblxyXG4gIGRpY3RhdGVTdGFydFN0b3AoaXNEaWN0YXRpbmc6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IHBocmFzZSA9IGAke3RoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uuc291cmNlVGV4dH0ke3RoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uuc291cmNlVGV4dD8ubGVuZ3RoID4gMCA/IFwiIFwiIDogXCJcIn0ke3RoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uuc291cmNlVGV4dEh5cG90aGVzaXN9YDtcclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuaXNEaWN0YXRpbmcgPSBpc0RpY3RhdGluZztcclxuICAgIC8vIFRyYW5zbGF0aW9uIGhhcyBlbmRlZC5cclxuICAgIGlmICghaXNEaWN0YXRpbmcpIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmF1ZGlvQ29uZmlnLnB1bmN0dWF0aW9uTWVzc2FnZSAmJiBwaHJhc2U/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiQVVESU8uUFVOQ1RVQVRJT05fTUVTU0FHRVwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5jaGFuZ2VTb3VyY2UoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGhyYXNlLFxyXG4gICAgICAgICAgZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uOiB0aGlzLmlzRGljdGF0aW5nIHx8IHRoaXMuY29uZmlnLmF1ZGlvQ29uZmlnLmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmNoYW5nZVNvdXJjZUh5cG90aGVzaXMoXCJcIik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5jbGVhclNvdXJjZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGljdGF0ZVJlc3VsdChyZXN1bHQ6IHN0cmluZykge1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5jaGFuZ2VTb3VyY2VIeXBvdGhlc2lzKFwiXCIpO1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5jaGFuZ2VTb3VyY2UoeyBwaHJhc2U6IHJlc3VsdCwgZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uOiB0aGlzLmlzRGljdGF0aW5nIH0pXHJcbiAgfVxyXG5cclxuICBkaWN0YXRlUGFydGlhbFJlc3VsdChwYXJ0aWFsUmVzdWx0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuY2hhbmdlU291cmNlSHlwb3RoZXNpcyhwYXJ0aWFsUmVzdWx0KTtcclxuICB9XHJcblxyXG4gIGRpY3RhdGVFcnJvcihlcnJvcjogQXVkaW9FcnJvckNhc2UpIHtcclxuICAgIGlmIChlcnJvciA9PT0gQXVkaW9FcnJvckNhc2UuTUFYX1RJTUVfRVhDRUVERUQpIHtcclxuICAgICAgbGV0IHRpbWVTdHJpbmcgPSBcIlwiO1xyXG4gICAgICBjb25zdCBtYXhMZW5ndGhUaW1lID0gbmV3IERhdGUoMCwgMCwgMCwgMCwgMCwgdGhpcy5jb25maWcuYXVkaW9Db25maWcubWF4aW11bVJlY29yZFRpbWUpO1xyXG5cclxuICAgICAgY29uc3QgbWludXRlcyA9IG1heExlbmd0aFRpbWUuZ2V0TWludXRlcygpO1xyXG4gICAgICBpZiAobWludXRlcyA+IDApIHtcclxuICAgICAgICB0aW1lU3RyaW5nICs9IGAke21pbnV0ZXN9IG1pbnV0ZXNgO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBzZWNvbmRzID0gbWF4TGVuZ3RoVGltZS5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIGlmIChzZWNvbmRzID4gMCkge1xyXG4gICAgICAgIHRpbWVTdHJpbmcgKz0gYCR7c2Vjb25kc30gc2Vjb25kc2BcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKGBFUlJPUlMuQVVESU8uJHtlcnJvcn1gLCB7IHRpbWVTdHJpbmcgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlcnJvciA9PT0gQXVkaW9FcnJvckNhc2UuTk9fU1BFRUNIKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoYEVSUk9SUy5BVURJTy4ke2Vycm9yfWApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcih7IEVycm9yQ29kZTogZXJyb3IgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclNvdXJjZSgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2UuY2xlYXJTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5zdG9wTGlzdGVuaW5nVG9DaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnRsZFNjcm9sbFNlcnZpY2UudW5zdWJzY3JpYmVUb1Njcm9sbCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpXHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVByb2dyZXNzSW5kaWNhdG9yKCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGVUZXh0U2VydmljZS5oaWRlUHJvZ3Jlc3NJbmRpY2F0b3IoKTtcclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uuc3RvcFRyYW5zbGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvLyBuZWVkIHRvIHN1YnNjcmliZSB0byBnZXQgaWYgaXMgbW9iaWxlIHZpZXcgc28gaXQgd291bGQgYmUgcG9zc2libGUgdG8gaGlkZSBzb3VyY2UgYWN0aW9uIHJvdy5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvQnJlYWtwb2ludE9ic2VydmVyKCkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLm1vYmlsZUJyZWFrcG9pbnRzKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IHN0YXRlLm1hdGNoZXM7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIE5PVEUuIHRsZC1zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyIHVzZXMgbXVsdGlwbGUgY29udGVudCBwcm9qZWN0aW9ucywgc28gbWlnaHQgc2VlbSBjb25mdXNpbmcgZmlyc3QsIGJ1dCBlbGVtZW50cyBhcmUgZGlzcGxheWVkIGF0IHRoZWlyIHBsYWNlcyBiYXNlZCBvbiB0bGQtc291cmNlLWFuZC10YXJnZXQtd3JhcHBlciBjb21wb25lbnRcclxuaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2NvbnRlbnQtcHJvamVjdGlvbiNtdWx0aS1zbG90LWNvbnRlbnQtcHJvamVjdGlvblxyXG4tLT5cclxuPHRsZC1zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyIFt0ZXh0VG9TcGVlY2hTb3VyY2VTZXR0aW5nc109XCJ0ZXh0VG9TcGVlY2hTb3VyY2VTZXR0aW5nc1wiXHJcbiAgW2NsZWFyU291cmNlVmlzaWJsZV09XCJzb3VyY2U/Lmxlbmd0aD4wXCIgKG9uU291cmNlQ2xlYXIpPVwiY2xlYXJTb3VyY2UoKVwiIFtoaWRlQWNoaWV2ZW1lbnRdPVwiaGlkZUFjaGlldmVtZW50XCJcclxuICBbY2xlYXJEaXNhYmxlZF09XCJ0ZXh0YXJlYURpc2FibGVkXCIgW2NsZWFyU291cmNlVG9vbHRpcF09XCInVExEX1RSQU5TTEFURS5DTEVBUl9TT1VSQ0VfVE9PTFRJUCdcIlxyXG4gIFtuZ0NsYXNzXT1cInsnaGlnaGxpZ2h0LWFjdGl2ZSc6IGhpZ2hsaWdodCwgJ2dyYW1jaGVjay1hY3RpdmUnOiBncmFtQ2hlY2ssICdlbXB0eS10YXJnZXQnOiBpc0VtcHR5VGFyZ2V0fVwiPlxyXG4gIDxkaXYgc291cmNlTWFpbiBjbGFzcz1cInNvdXJjZS1tYWluXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgIDx0bGQtdHJhbnNsYXRlLXNvdXJjZSBbdGV4dGFyZWFEaXNhYmxlZF09XCJ0ZXh0YXJlYURpc2FibGVkXCIgI3NvdXJjZUNvbXBvbmVudCBmeEZsZXhcclxuICAgICAgW3NvdXJjZVBhcmFncmFwaHNdPVwic291cmNlUGFyYWdyYXBoc1wiPjwvdGxkLXRyYW5zbGF0ZS1zb3VyY2U+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciBzb3VyY2VBY3Rpb25zICpuZ0lmPVwiIWhpZGVTb3VyY2VBY3Rpb25zXCI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBjbGFzcz1cImJhc2ljLXBhZGRpbmdcIiBmeExheW91dEdhcD1cIjFlbVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXVkaW9JbnB1dFZpc2libGVcIj5cclxuICAgICAgICA8dGxkLWRpY3RhdGUgW2NvbmZpZ3VyYXRpb25dPVwiZGljdGF0ZUNvbmZpZ1wiIFtuZ0NsYXNzXT1cInsnZnVsbC13aWR0aCcgOiAhZmlsZVVwbG9hZH1cIlxyXG4gICAgICAgICAgKGlzRGljdGF0aW5nKT1cImRpY3RhdGVTdGFydFN0b3AoJGV2ZW50KVwiIChyZXN1bHQpPVwiZGljdGF0ZVJlc3VsdCgkZXZlbnQpXCJcclxuICAgICAgICAgIChwYXJ0aWFsUmVzdWx0KT1cImRpY3RhdGVQYXJ0aWFsUmVzdWx0KCRldmVudClcIiAob25FcnJvcik9XCJkaWN0YXRlRXJyb3IoJGV2ZW50KVwiIFtsYW5ndWFnZV09XCJzb3VyY2VMYW5ndWFnZVwiPlxyXG4gICAgICAgIDwvdGxkLWRpY3RhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZmlsZVVwbG9hZFwiIGNsYXNzPVwiZmlsZS11cGxvYWQtd3JhcHBlclwiPlxyXG4gICAgICAgIDx0bGQtZmlsZS11cGxvYWQgKGZpbGVDaGFuZ2UpPVwiZmlsZUNoYW5nZSgkZXZlbnQpXCIgW2FjY2VwdF09XCJhbGxvd2VkRmlsZVR5cGVzXCIgW21heFNpemVdPVwibWF4RmlsZVVwbG9hZFNpemVcIiBbdXBsb2FkSWNvbk5hbWVdPVwidXBsb2FkSWNvbk5hbWVcIlxyXG4gICAgICAgICAgW2V4dGVuZGVkQWNjZXB0TGlzdF09XCJleHRlbmRlZEZpbGVUeXBlc1wiIFttdWx0aXBsZV09XCJtdWx0aXBsZUZpbGVzXCIgKGVycm9yRXZlbnQpPVwiZmlsZVVwbG9hZEVycm9yKCRldmVudClcIlxyXG4gICAgICAgICAgW2ZpbGVQcmV2aWV3UHJvZ3Jlc3NdPVwiZmlsZVByZXZpZXdQcm9ncmVzc1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWQtZmlsZS10ZXh0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8gdGV4dC1sLXNlbWktYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCInRklMRV9VUExPQUQuVVBMT0FEJyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwiYWNjZW50LWNvbG9yXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Jm5ic3A7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCInRklMRV9VUExPQUQuRFJBR19BTkRfRFJPUCcgfCB0cmFuc2xhdGVcIiBmeEhpZGUubHQtc20+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCInRklMRV9VUExPQUQuJysgKG11bHRpcGxlRmlsZXM/ICdGSUxFUycgOiAnRklMRScpIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3MubHQtc21dPVwiJ2FjY2VudC1jb2xvcidcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS11cGxvYWQtZXh0ZW5zaW9ucyB0ZXh0LW1cIlxyXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCInRklMRV9VUExPQUQuTElNSVRTJyB8IHRyYW5zbGF0ZToge21heFNpemVNQjogbWF4U2l6ZU1CLCB2aXNpYmxlRXh0ZW5zaW9uczogdmlzaWJsZUV4dGVuc2lvbnN9XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3RsZC1maWxlLXVwbG9hZD5cclxuICAgICAgICA8dGxkLW9wZW4tZXh0ZW5zaW9uLWRpYWxvZyAqbmdJZj1cInNob3dFeHRlbnNpb25Qb3B1cFwiIFtleHRlbnNpb25zXT1cImFsbG93ZWRUeXBlc1dpdGhvdXREb3RzXCI+XHJcbiAgICAgICAgPC90bGQtb3Blbi1leHRlbnNpb24tZGlhbG9nPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8ZGl2IHRhcmdldE1haW4gY2xhc3M9XCJ0YXJnZXQtbWFpblwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNEaWN0aW9uYXJ5OyBlbHNlIGRpY3Rpb25hcnlUYXJnZXRCbG9ja1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFbXB0eVRhcmdldDsgZWxzZSB0cmFuc2xhdGVkVGV4dEJsb2NrXCI+XHJcbiAgICAgICAgPHAgKm5nSWY9XCJzaG93VGFyZ2V0UGxhY2Vob2xkZXJcIiBjbGFzcz1cImRlc2NyaXB0aW9uLXRleHQgdGFyZ2V0LWVtcHR5XCJcclxuICAgICAgICAgIFtpbm5lckh0bWxdPVwiJ1RMRF9UUkFOU0xBVEUuVEFSR0VUX0RFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciB0YXJnZXRBY3Rpb25zPlxyXG4gICAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtdGFyZ2V0LWZvb3RlciBiYXNpYy1wYWRkaW5nXCIgKm5nSWY9XCJzaG93U3VnZ2VzdGlvbnMgfHwgc2hvd1Byb2dyZXNzSW5kaWNhdG9yXCI+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRlLXN1Z2dlc3QgKm5nSWY9XCJzaG93U3VnZ2VzdGlvbnNcIiBbc3lzdGVtSWRdPVwic3lzdGVtSWRcIiBbdGFyZ2V0XT1cInRhcmdldFBhcmFncmFwaHNcIlxyXG4gICAgICAgIFtzb3VyY2VdPVwic291cmNlUGFyYWdyYXBoc1wiPlxyXG4gICAgICA8L3RsZC10cmFuc2xhdGUtc3VnZ2VzdD5cclxuICAgICAgPHByb2dyZXNzLWluZGljYXRvciAob25DbG9zZSk9XCJjbG9zZVByb2dyZXNzSW5kaWNhdG9yKClcIiAqbmdJZj1cInNob3dQcm9ncmVzc0luZGljYXRvclwiPjwvcHJvZ3Jlc3MtaW5kaWNhdG9yPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvdGxkLXNvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXI+XHJcblxyXG5cclxuPCEtLSB0ZW1wbGF0ZXMgdXNlZCBmb3IgZWxzZSBibG9ja3MgaW4gdGFyZ2V0IGNvbnRhaW5lciAtLT5cclxuPG5nLXRlbXBsYXRlICN0cmFuc2xhdGVkVGV4dEJsb2NrPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cmFuc2xhdGVkLXNvdXJjZVwiIFtjbGFzcy5zZWxlY3RhYmxlLXNlbnRlbmNlXT1cInNob3dTdWdnZXN0aW9uc1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF1cmxUb1RyYW5zbGF0ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0LXdyYXBwZXItYWN0aW9uLWJ1dHRvbnNcIj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZmlyc3RQYXJhZ3JhcGhUcmFuc2xhdGVkXCIgbWF0LWljb24tYnV0dG9uIGNsYXNzPVwidGxkLWNvcHktdHJhbnNsYXRpb25cIiAoY2xpY2spPVwiY29weSgpXCJcclxuICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eydUT09MVElQUy5DT1BZJyB8IHRyYW5zbGF0ZX19XCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJjb3B5TWVzc2FnZUlkXCJcclxuICAgICAgICAgIChrZXlkb3duLlRhYik9XCJzd2l0Y2hGb2N1c0Zyb21Db3B5KCRldmVudClcIiBbYXR0ci5JZF09XCJjb3B5QnV0dG9uSWRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInQVJJQV9MQUJFTFMuQ09QWScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgY29udGVudF9jb3B5XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPHRsZC10ZXh0LXRvLXNwZWVjaCAqbmdJZj1cInRleHRUb1NwZWVjaFRhcmdldFNldHRpbmdzXCIgW3NldHRpbmdzXT1cInRleHRUb1NwZWVjaFRhcmdldFNldHRpbmdzXCI+XHJcbiAgICAgICAgPC90bGQtdGV4dC10by1zcGVlY2g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwYXJhZ3JhcGggb2YgdGFyZ2V0UGFyYWdyYXBoc1wiPlxyXG4gICAgICAgIDx0bGQtaGlnaGxpZ2h0LXRyZWUgW2hpZ2hsaWdodF09XCJoaWdobGlnaHRcIiBbdHJlZV09XCJwYXJhZ3JhcGhcIiBbc2VsZWN0U2VudGVuY2VdPVwic2hvd1N1Z2dlc3Rpb25zXCI+XHJcbiAgICAgICAgPC90bGQtaGlnaGxpZ2h0LXRyZWU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidXJsVG9UcmFuc2xhdGVcIiBjbGFzcz1cInRhcmdldC11cmwtY29udGFpbmVyXCI+XHJcbiAgICAgIDxhIFthdHRyLmhyZWZdPVwidHJhbnNsYXRlVXJsUmVkaXJlY3RcIiB0YXJnZXQ9XCJfYmxhbmtcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgY2xhc3M9XCJnby10by13ZWJ0cmFuc2xhdGVcIj5cclxuICAgICAgICB7e3VybFRvVHJhbnNsYXRlfX1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgY29sb3I9XCJhY2NlbnRcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInQVJJQV9MQUJFTFMuT1BFTl9JTl9ORVcnXCI+XHJcbiAgICAgICAgICBvcGVuX2luX25ld1xyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RpY3Rpb25hcnlUYXJnZXRCbG9jaz5cclxuICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwiZGljdGlvbmFyeS13cmFwcGVyXCI+XHJcbiAgICA8dGxkLWRpY3Rpb25hcnkgZnhGbGV4ICpuZ0Zvcj1cImxldCBkaWN0aW9uYXJ5IG9mIGRpY3Rpb25hcnlFbnRyeVwiIFtkaWN0aW9uYXJ5XT1cImRpY3Rpb25hcnlcIj5cclxuICAgIDwvdGxkLWRpY3Rpb25hcnk+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -823,7 +823,7 @@ const i18n_en = {
|
|
|
823
823
|
"DRAG_AND_DROP": "or drag and drop ",
|
|
824
824
|
"FILE": "a file",
|
|
825
825
|
"FILES": "files",
|
|
826
|
-
"LIMITS": " ({{visibleExtensions}}. Max {{maxSizeMB}}MB)",
|
|
826
|
+
"LIMITS": " ( {{visibleExtensions}}. Max {{maxSizeMB}}MB )",
|
|
827
827
|
"CLEAR": "Clear file"
|
|
828
828
|
},
|
|
829
829
|
"SYSTEM_PICKER": {
|
|
@@ -3520,7 +3520,7 @@ class TldTranslateConfigService {
|
|
|
3520
3520
|
this._webtranslateConfig.allowSuggestions = (webtranslate === null || webtranslate === void 0 ? void 0 : webtranslate.allowSuggestions) || false;
|
|
3521
3521
|
this._webtranslateConfig.hidePopup = (webtranslate === null || webtranslate === void 0 ? void 0 : webtranslate.hidePopup) || false;
|
|
3522
3522
|
this._webtranslateConfig.sandbox = (_18 = webtranslate === null || webtranslate === void 0 ? void 0 : webtranslate.sandbox) !== null && _18 !== void 0 ? _18 : "allow-forms allow-scripts allow-same-origin";
|
|
3523
|
-
this._termConfig.
|
|
3523
|
+
this._termConfig.terminologyPortalUrl = (termConfig === null || termConfig === void 0 ? void 0 : termConfig.terminologyPortalUrl) || "https://term.tilde.com";
|
|
3524
3524
|
this._termConfig.canCreateCollection = termConfig === null || termConfig === void 0 ? void 0 : termConfig.canCreateCollection;
|
|
3525
3525
|
this._termConfig.isCollectionsActivated = termConfig === null || termConfig === void 0 ? void 0 : termConfig.isCollectionsActivated;
|
|
3526
3526
|
this._termConfig.isTermPortalSupported = (_19 = termConfig === null || termConfig === void 0 ? void 0 : termConfig.isTermPortalSupported) !== null && _19 !== void 0 ? _19 : false;
|
|
@@ -5800,13 +5800,6 @@ class CombinedCollection {
|
|
|
5800
5800
|
var _a;
|
|
5801
5801
|
return (_a = this.mtCollection) === null || _a === void 0 ? void 0 : _a.status;
|
|
5802
5802
|
}
|
|
5803
|
-
/**
|
|
5804
|
-
* Last updated date from mt api.
|
|
5805
|
-
*/
|
|
5806
|
-
get lastUpdated() {
|
|
5807
|
-
var _a;
|
|
5808
|
-
return (_a = this.mtCollection) === null || _a === void 0 ? void 0 : _a.lastUpdated;
|
|
5809
|
-
}
|
|
5810
5803
|
/**
|
|
5811
5804
|
* Collection name. If has term collection, takes from there. If not, then returns mt collection name.
|
|
5812
5805
|
*/
|
|
@@ -5881,7 +5874,7 @@ class CombinedCollection {
|
|
|
5881
5874
|
*/
|
|
5882
5875
|
deleteTerms() {
|
|
5883
5876
|
this.termCollection = null;
|
|
5884
|
-
this.update(null);
|
|
5877
|
+
this.update(null, false);
|
|
5885
5878
|
}
|
|
5886
5879
|
/**
|
|
5887
5880
|
* Deletes mt collection and its properties.
|
|
@@ -5899,6 +5892,7 @@ class CombinedCollection {
|
|
|
5899
5892
|
if (termModified && lastMtUpdated) {
|
|
5900
5893
|
isSynchronized = termModified < lastMtUpdated;
|
|
5901
5894
|
}
|
|
5895
|
+
this.lastUpdated = termModified !== null && termModified !== void 0 ? termModified : lastMtUpdated;
|
|
5902
5896
|
this._isSynchronized = isSynchronized;
|
|
5903
5897
|
}
|
|
5904
5898
|
updateSource() {
|
|
@@ -5936,7 +5930,7 @@ class TermApiService {
|
|
|
5936
5930
|
this.http = http;
|
|
5937
5931
|
}
|
|
5938
5932
|
get url() {
|
|
5939
|
-
return `${this.config.termConfig.
|
|
5933
|
+
return `${this.config.termConfig.terminologyPortalUrl}/api/termservice/collection`;
|
|
5940
5934
|
}
|
|
5941
5935
|
createCollection(defaultLanguages, collectionName) {
|
|
5942
5936
|
const params = {
|
|
@@ -5959,7 +5953,7 @@ class TermApiService {
|
|
|
5959
5953
|
}));
|
|
5960
5954
|
}
|
|
5961
5955
|
getEditLink(termId, sourceLanguage, targetLanguage) {
|
|
5962
|
-
let link = `${this.config.termConfig.
|
|
5956
|
+
let link = `${this.config.termConfig.terminologyPortalUrl}/collections/${termId}/mt`;
|
|
5963
5957
|
if (sourceLanguage) {
|
|
5964
5958
|
link = `${link}/${sourceLanguage}`;
|
|
5965
5959
|
}
|
|
@@ -8530,9 +8524,7 @@ class TldTranslateTextComponent {
|
|
|
8530
8524
|
maxLength: this.config.audioConfig.maximumRecordTime,
|
|
8531
8525
|
apiUrl: this.config.audioConfig.dictateApiUrl
|
|
8532
8526
|
};
|
|
8533
|
-
this.
|
|
8534
|
-
this.allowedFileTypes.forEach(el => this.allowedTypesWithoutDots.push(el.replace(".", "")));
|
|
8535
|
-
this.visibleExtensions = this.capitalizeFirstLetter(this.allowedTypesWithoutDots.slice(0, this.visibleExtensionCount).join(", "));
|
|
8527
|
+
this.visibleExtensions = this.allowedFileTypes.slice(0, this.visibleExtensionCount).join(", ");
|
|
8536
8528
|
this.maxSizeMB = Common.bytesToMb(this.config.fileConfig.maxSize);
|
|
8537
8529
|
this.tldSystem.getActiveData().pipe(distinctUntilChanged((x, y) => x && y && x.systemId == y.systemId))
|
|
8538
8530
|
.pipe(takeUntil(this.destroy$))
|
|
@@ -8562,9 +8554,6 @@ class TldTranslateTextComponent {
|
|
|
8562
8554
|
}
|
|
8563
8555
|
this.subscribeToBreakpointObserver();
|
|
8564
8556
|
}
|
|
8565
|
-
capitalizeFirstLetter(s) {
|
|
8566
|
-
return s && s[0].toUpperCase() + s.slice(1);
|
|
8567
|
-
}
|
|
8568
8557
|
copy() {
|
|
8569
8558
|
this.clipboard.copy(this.translatedText);
|
|
8570
8559
|
this.alerts.info("TLD_TRANSLATE.TEXT_COPIED", { id: this.copyMessageId, closeButtonId: this.copyMessageCloseButtonId, parentId: this.copyButtonId });
|
|
@@ -10531,7 +10520,7 @@ class MtTermV2Service {
|
|
|
10531
10520
|
default: collection.editables.default,
|
|
10532
10521
|
scope: collection.editables.scope
|
|
10533
10522
|
};
|
|
10534
|
-
return this.engineTermApi.update(engineId, collection.
|
|
10523
|
+
return this.engineTermApi.update(engineId, collection.mtCollection.id, params)
|
|
10535
10524
|
.pipe(map(collection => this.convertToCombinedCollection(collection)));
|
|
10536
10525
|
}
|
|
10537
10526
|
}
|