velocious 1.0.126 → 1.0.127
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/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +14 -4
- package/build/src/database/record/index.js +2 -2
- package/build/src/database/record/instance-relationships/has-many.d.ts +9 -0
- package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-many.js +31 -1
- package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/routes.js +5 -2
- package/build/src/http-server/client/request-parser.d.ts +4 -4
- package/build/src/http-server/client/request-parser.d.ts.map +1 -1
- package/build/src/http-server/client/request-parser.js +3 -3
- package/build/src/http-server/client/request.d.ts +2 -2
- package/build/src/http-server/client/request.d.ts.map +1 -1
- package/build/src/routes/base-route.d.ts +6 -2
- package/build/src/routes/base-route.d.ts.map +1 -1
- package/build/src/routes/base-route.js +5 -5
- package/build/src/routes/get-route.d.ts.map +1 -1
- package/build/src/routes/get-route.js +5 -3
- package/build/src/routes/namespace-route.d.ts +5 -0
- package/build/src/routes/namespace-route.d.ts.map +1 -1
- package/build/src/routes/namespace-route.js +5 -3
- package/build/src/routes/post-route.d.ts.map +1 -1
- package/build/src/routes/post-route.js +6 -3
- package/build/src/routes/resource-route.d.ts +16 -0
- package/build/src/routes/resource-route.d.ts.map +1 -1
- package/build/src/routes/resource-route.js +91 -17
- package/build/src/routes/root-route.d.ts.map +1 -1
- package/build/src/routes/root-route.js +5 -3
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller.js"],"names":[],"mappings":"AAQA;IACE;;;OAGG;IACH,gCAHW,MAAM,GACJ,IAAI,CAShB;IAED;;;;;;;;;OASG;IACH,wFARG;QAAqB,MAAM,EAAnB,MAAM;QACqC,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACvB,UAAU,EAAvB,MAAM;QACO,MAAM,EAAnB,MAAM;QACkD,OAAO,EAA/D,OAAO,iCAAiC,EAAE,OAAO;QACQ,QAAQ,EAAjE,OAAO,kCAAkC,EAAE,OAAO;QACrC,QAAQ,EAArB,MAAM;KAChB,EAmBA;IATC,gBAAqB;IACrB,oBAA6B;IAC7B,qDAAmC;IACnC,eAA8B;IAC9B,aAAqB;IACrB,4DAAuB;IACvB,8DAAyB;IACzB,eAAoB;IACpB,kBAAyB;IAG3B,wBAAwB;IACxB,aADc,MAAM,CACe;IAEnC,sDAAsD;IACtD,oBADc,OAAO,oBAAoB,EAAE,OAAO,CACD;IAEjD,qCAAqC;IACrC,aADc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACE;IAEnC,mEAAmE;IACnE,cADc,OAAO,iCAAiC,EAAE,OAAO,CAC1B;IAErC;;;OAGG;IACH,4BAIC;IAED,qCA4BC;IAED,qCAAqC;IACrC,UADc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACD;IAEhC;;;;;OAKG;IACH,uCAJG;QAAsB,IAAI,GAAlB,MAAM;QACiB,MAAM,GAA7B,MAAM,GAAG,MAAM;KACvB,GAAU,OAAO,CAAC,IAAI,CAAC,CAczB;IAED,2BAA2B;IAC3B,oBADY,MAAM,QAMjB;IAED,+BAA+B;IAC/B,cADc,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller.js"],"names":[],"mappings":"AAQA;IACE;;;OAGG;IACH,gCAHW,MAAM,GACJ,IAAI,CAShB;IAED;;;;;;;;;OASG;IACH,wFARG;QAAqB,MAAM,EAAnB,MAAM;QACqC,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACvB,UAAU,EAAvB,MAAM;QACO,MAAM,EAAnB,MAAM;QACkD,OAAO,EAA/D,OAAO,iCAAiC,EAAE,OAAO;QACQ,QAAQ,EAAjE,OAAO,kCAAkC,EAAE,OAAO;QACrC,QAAQ,EAArB,MAAM;KAChB,EAmBA;IATC,gBAAqB;IACrB,oBAA6B;IAC7B,qDAAmC;IACnC,eAA8B;IAC9B,aAAqB;IACrB,4DAAuB;IACvB,8DAAyB;IACzB,eAAoB;IACpB,kBAAyB;IAG3B,wBAAwB;IACxB,aADc,MAAM,CACe;IAEnC,sDAAsD;IACtD,oBADc,OAAO,oBAAoB,EAAE,OAAO,CACD;IAEjD,qCAAqC;IACrC,aADc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACE;IAEnC,mEAAmE;IACnE,cADc,OAAO,iCAAiC,EAAE,OAAO,CAC1B;IAErC;;;OAGG;IACH,4BAIC;IAED,qCA4BC;IAED,qCAAqC;IACrC,UADc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACD;IAEhC;;;;;OAKG;IACH,uCAJG;QAAsB,IAAI,GAAlB,MAAM;QACiB,MAAM,GAA7B,MAAM,GAAG,MAAM;KACvB,GAAU,OAAO,CAAC,IAAI,CAAC,CAczB;IAED,2BAA2B;IAC3B,oBADY,MAAM,QAMjB;IAED,+BAA+B;IAC/B,cADc,OAAO,CAAC,IAAI,CAAC,CA8B1B;IAED,sBAAsB;IACtB,cADc,IAAI,CAGjB;IAED,mEAAmE;IACnE,WADc,OAAO,iCAAiC,EAAE,OAAO,CAC7B;IAElC,oEAAoE;IACpE,YADc,OAAO,kCAAkC,EAAE,OAAO,CAC5B;CACrC;uBA5KoB,aAAa"}
|
package/build/src/controller.js
CHANGED
|
@@ -116,11 +116,21 @@ export default class VelociousController {
|
|
|
116
116
|
renderView() {
|
|
117
117
|
return new Promise((resolve, reject) => {
|
|
118
118
|
const viewPath = `${this._viewPath}/${inflection.dasherize(inflection.underscore(this._action))}.ejs`;
|
|
119
|
-
const {
|
|
120
|
-
const actualViewParams = incorporate({ controller: this }, viewParams);
|
|
119
|
+
const actualViewParams = incorporate({ controller: this }, this.viewParams);
|
|
121
120
|
ejs.renderFile(viewPath, actualViewParams, {}, (err, str) => {
|
|
122
121
|
if (err) {
|
|
123
|
-
|
|
122
|
+
if (err.code === "ENOENT") {
|
|
123
|
+
this.logger.warn(`Missing view file: ${viewPath}`);
|
|
124
|
+
if (this._response.getStatusCode() === 200) {
|
|
125
|
+
this._response.setStatus("internal-server-error");
|
|
126
|
+
}
|
|
127
|
+
this._response.setHeader("Content-Type", "text/plain; charset=UTF-8");
|
|
128
|
+
this._response.setBody(`Missing view file: ${viewPath}`);
|
|
129
|
+
resolve(null);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
reject(err);
|
|
133
|
+
}
|
|
124
134
|
}
|
|
125
135
|
else {
|
|
126
136
|
this._response.setHeader("Content-Type", "text/html; charset=UTF-8");
|
|
@@ -139,4 +149,4 @@ export default class VelociousController {
|
|
|
139
149
|
/** @returns {import("./http-server/client/response.js").default} */
|
|
140
150
|
response() { return this._response; }
|
|
141
151
|
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sYUFBYSxDQUFBO0FBQ2xDLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFBO0FBRXRELE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW1CO0lBQ3RDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLDZCQUE2QjtZQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUM7UUFDbEYsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDL0MsSUFBSSxDQUFDLGFBQWE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDN0QsSUFBSSxDQUFDLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDdkQsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFD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RSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzFELElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNiLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtvQkFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBRTNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsVUFBVTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBRWxDLG9FQUFvRTtJQUNwRSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBLENBQUMsQ0FBQztDQUNyQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZWpzIGZyb20gXCJlanNcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7TG9nZ2VyfSBmcm9tIFwiLi9sb2dnZXIuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzQ29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyBiZWZvcmVBY3Rpb24obWV0aG9kTmFtZSkge1xuICAgIGlmICghdGhpcy5fYmVmb3JlQWN0aW9ucykge1xuICAgICAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAgKi9cbiAgICAgIHRoaXMuX2JlZm9yZUFjdGlvbnMgPSBbXVxuICAgIH1cblxuICAgIHRoaXMuX2JlZm9yZUFjdGlvbnMucHVzaChtZXRob2ROYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmFjdGlvblxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY29udHJvbGxlclxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncy5wYXJhbXNcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXF1ZXN0LmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVxdWVzdFxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3Jlc3BvbnNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVzcG9uc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Mudmlld1BhdGhcbiAgICovXG4gIGNvbnN0cnVjdG9yKHthY3Rpb24sIGNvbmZpZ3VyYXRpb24sIGNvbnRyb2xsZXIsIHBhcmFtcywgcmVxdWVzdCwgcmVzcG9uc2UsIHZpZXdQYXRofSkge1xuICAgIGlmICghYWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBhY3Rpb24gZ2l2ZW5cIilcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbmZpZ3VyYXRpb24gZ2l2ZW5cIilcbiAgICBpZiAoIWNvbnRyb2xsZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbnRyb2xsZXIgZ2l2ZW5cIilcbiAgICBpZiAoIXBhcmFtcykgdGhyb3cgbmV3IEVycm9yKFwiTm8gcGFyYW1zIGdpdmVuXCIpXG4gICAgaWYgKCFyZXF1ZXN0KSB0aHJvdyBuZXcgRXJyb3IoXCJObyByZXF1ZXN0IGdpdmVuXCIpXG4gICAgaWYgKCFyZXNwb25zZSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gcmVzcG9uc2UgZ2l2ZW5cIilcbiAgICBpZiAoIXZpZXdQYXRoKSB0aHJvdyBuZXcgRXJyb3IoXCJObyB2aWV3UGF0aCBnaXZlblwiKVxuXG4gICAgdGhpcy5fYWN0aW9uID0gYWN0aW9uXG4gICAgdGhpcy5fY29udHJvbGxlciA9IGNvbnRyb2xsZXJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMuX3BhcmFtcyA9IHBhcmFtc1xuICAgIHRoaXMuX3JlcXVlc3QgPSByZXF1ZXN0XG4gICAgdGhpcy5fcmVzcG9uc2UgPSByZXNwb25zZVxuICAgIHRoaXMudmlld1BhcmFtcyA9IHt9XG4gICAgdGhpcy5fdmlld1BhdGggPSB2aWV3UGF0aFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtzdHJpbmd9ICovXG4gIGdldEFjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2FjdGlvbiB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb24gfVxuXG4gIC8qKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi9cbiAgZ2V0UGFyYW1zKCkgeyByZXR1cm4gdGhpcy5fcGFyYW1zIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3JlcXVlc3QuanNcIikuZGVmYXVsdH0gKi9cbiAgZ2V0UmVxdWVzdCgpIHsgcmV0dXJuIHRoaXMuX3JlcXVlc3QgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcmV0dXJucyB7dHlwZW9mIFZlbG9jaW91c0NvbnRyb2xsZXJ9XG4gICAqL1xuICBfZ2V0Q29udHJvbGxlckNsYXNzKCkge1xuICAgIGNvbnN0IGNvbnRyb2xsZXJDbGFzcyA9IC8qKiBAdHlwZSB7dHlwZW9mIFZlbG9jaW91c0NvbnRyb2xsZXJ9ICovICh0aGlzLmNvbnN0cnVjdG9yKVxuXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJDbGFzc1xuICB9XG5cbiAgYXN5bmMgX3J1bkJlZm9yZUNhbGxiYWNrcygpIHtcbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhcIl9ydW5CZWZvcmVDYWxsYmFja3NcIilcblxuICAgIGxldCBjdXJyZW50Q29udHJvbGxlckNsYXNzID0gdGhpcy5fZ2V0Q29udHJvbGxlckNsYXNzKClcblxuICAgIHdoaWxlIChjdXJyZW50Q29udHJvbGxlckNsYXNzKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhgUnVubmluZyBjYWxsYmFja3MgZm9yICR7Y3VycmVudENvbnRyb2xsZXJDbGFzcy5uYW1lfWApXG5cbiAgICAgIGNvbnN0IGJlZm9yZUFjdGlvbnMgPSBjdXJyZW50Q29udHJvbGxlckNsYXNzLl9iZWZvcmVBY3Rpb25zXG5cbiAgICAgIGlmIChiZWZvcmVBY3Rpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgYmVmb3JlQWN0aW9uTmFtZSBvZiBiZWZvcmVBY3Rpb25zKSB7XG4gICAgICAgICAgY29uc3QgYmVmb3JlQWN0aW9uID0gY3VycmVudENvbnRyb2xsZXJDbGFzcy5wcm90b3R5cGVbYmVmb3JlQWN0aW9uTmFtZV1cblxuICAgICAgICAgIGlmICghYmVmb3JlQWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggYmVmb3JlIGFjdGlvbjogJHtiZWZvcmVBY3Rpb25OYW1lfWApXG5cbiAgICAgICAgICBjb25zdCBib3VuZEJlZm9yZUFjdGlvbiA9IGJlZm9yZUFjdGlvbi5iaW5kKHRoaXMpXG5cbiAgICAgICAgICBhd2FpdCBib3VuZEJlZm9yZUFjdGlvbigpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY3VycmVudENvbnRyb2xsZXJDbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50Q29udHJvbGxlckNsYXNzKVxuXG4gICAgICBpZiAoIWN1cnJlbnRDb250cm9sbGVyQ2xhc3M/Lm5hbWU/LmVuZHNXaXRoKFwiQ29udHJvbGxlclwiKSkgYnJlYWtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkFmdGVyIHJ1bkJlZm9yZUNhbGxiYWNrc1wiKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICBwYXJhbXMoKSB7IHJldHVybiB0aGlzLl9wYXJhbXMgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJncy5qc29uXVxuICAgKiBAcGFyYW0ge251bWJlciB8IHN0cmluZ30gW2FyZ3Muc3RhdHVzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHJlbmRlcih7anNvbiwgc3RhdHVzLCAuLi5yZXN0QXJnc30gPSB7fSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICBpZiAoanNvbikge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVySnNvbkFyZyhqc29uKVxuICAgIH1cblxuICAgIGlmIChzdGF0dXMpIHtcbiAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldFN0YXR1cyhzdGF0dXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVuZGVyVmlldygpXG4gIH1cblxuICAvKiogQHBhcmFtIHtvYmplY3R9IGpzb24gKi9cbiAgcmVuZGVySnNvbkFyZyhqc29uKSB7XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KGpzb24pXG5cbiAgICB0aGlzLl9yZXNwb25zZS5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04XCIpXG4gICAgdGhpcy5fcmVzcG9uc2Uuc2V0Qm9keShib2R5KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICByZW5kZXJWaWV3KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCB2aWV3UGF0aCA9IGAke3RoaXMuX3ZpZXdQYXRofS8ke2luZmxlY3Rpb24uZGFzaGVyaXplKGluZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLl9hY3Rpb24pKX0uZWpzYFxuICAgICAgY29uc3Qge3ZpZXdQYXJhbXN9ID0gdGhpc1xuICAgICAgY29uc3QgYWN0dWFsVmlld1BhcmFtcyA9IGluY29ycG9yYXRlKHtjb250cm9sbGVyOiB0aGlzfSwgdmlld1BhcmFtcylcblxuICAgICAgZWpzLnJlbmRlckZpbGUodmlld1BhdGgsIGFjdHVhbFZpZXdQYXJhbXMsIHt9LCAoZXJyLCBzdHIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCIpXG4gICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0Qm9keShzdHIpXG5cbiAgICAgICAgICByZXNvbHZlKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgcmVuZGVyVGV4dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZW5kZXJUZXh0IHN0dWJcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9odHRwLXNlcnZlci9jbGllbnQvcmVxdWVzdC5qc1wiKS5kZWZhdWx0fSAqL1xuICByZXF1ZXN0KCkgeyByZXR1cm4gdGhpcy5fcmVxdWVzdCB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXNwb25zZS5qc1wiKS5kZWZhdWx0fSAqL1xuICByZXNwb25zZSgpIHsgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlIH1cbn1cbiJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sYUFBYSxDQUFBO0FBQ2xDLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFBO0FBRXRELE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW1CO0lBQ3RDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLDZCQUE2QjtZQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUM7UUFDbEYsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDL0MsSUFBSSxDQUFDLGFBQWE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDN0QsSUFBSSxDQUFDLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDdkQsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDL0MsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDbkQsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUE7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUE7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLFNBQVMsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBRW5DLHNEQUFzRDtJQUN0RCxnQkFBZ0IsS0FBSyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUEsQ0FBQyxDQUFDO0lBRWpELHFDQUFxQztJQUNyQyxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQztJQUVuQyxtRUFBbUU7SUFDbkUsVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQSxDQUFDLENBQUM7SUFFckM7OztPQUdHO0lBQ0gsbUJBQW1CO1FBQ2pCLE1BQU0sZUFBZSxHQUFHLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRXBGLE9BQU8sZUFBZSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUU5QyxJQUFJLHNCQUFzQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBRXZELE9BQU8sc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlCQUF5QixzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBRS9FLE1BQU0sYUFBYSxHQUFHLHNCQUFzQixDQUFDLGNBQWMsQ0FBQTtZQUUzRCxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixLQUFLLE1BQU0sZ0JBQWdCLElBQUksYUFBYSxFQUFFLENBQUM7b0JBQzdDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO29CQUV2RSxJQUFJLENBQUMsWUFBWTt3QkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixnQkFBZ0IsRUFBRSxDQUFDLENBQUE7b0JBRWhGLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFFakQsTUFBTSxpQkFBaUIsRUFBRSxDQUFBO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztZQUVELHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUV0RSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUM7Z0JBQUUsTUFBSztRQUNsRSxDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsTUFBTSxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUM7SUFFaEM7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBQyxHQUFHLEVBQUU7UUFDM0MsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakMsQ0FBQztRQUVELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNsQyxDQUFDO1FBRUQsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLGlDQUFpQyxDQUFDLENBQUE7UUFDM0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVELCtCQUErQjtJQUMvQixVQUFVO1FBQ1IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUE7WUFDckcsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRXpFLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDMUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDUixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixRQUFRLEVBQUUsQ0FBQyxDQUFBO3dCQUVsRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7NEJBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUE7d0JBQ25ELENBQUM7d0JBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLDJCQUEyQixDQUFDLENBQUE7d0JBQ3JFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNCQUFzQixRQUFRLEVBQUUsQ0FBQyxDQUFBO3dCQUV4RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQ2YsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFDYixDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtvQkFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBRTNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsVUFBVTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBRWxDLG9FQUFvRTtJQUNwRSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBLENBQUMsQ0FBQztDQUNyQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZWpzIGZyb20gXCJlanNcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7TG9nZ2VyfSBmcm9tIFwiLi9sb2dnZXIuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzQ29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyBiZWZvcmVBY3Rpb24obWV0aG9kTmFtZSkge1xuICAgIGlmICghdGhpcy5fYmVmb3JlQWN0aW9ucykge1xuICAgICAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAgKi9cbiAgICAgIHRoaXMuX2JlZm9yZUFjdGlvbnMgPSBbXVxuICAgIH1cblxuICAgIHRoaXMuX2JlZm9yZUFjdGlvbnMucHVzaChtZXRob2ROYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmFjdGlvblxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY29udHJvbGxlclxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncy5wYXJhbXNcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXF1ZXN0LmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVxdWVzdFxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3Jlc3BvbnNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVzcG9uc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Mudmlld1BhdGhcbiAgICovXG4gIGNvbnN0cnVjdG9yKHthY3Rpb24sIGNvbmZpZ3VyYXRpb24sIGNvbnRyb2xsZXIsIHBhcmFtcywgcmVxdWVzdCwgcmVzcG9uc2UsIHZpZXdQYXRofSkge1xuICAgIGlmICghYWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBhY3Rpb24gZ2l2ZW5cIilcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbmZpZ3VyYXRpb24gZ2l2ZW5cIilcbiAgICBpZiAoIWNvbnRyb2xsZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbnRyb2xsZXIgZ2l2ZW5cIilcbiAgICBpZiAoIXBhcmFtcykgdGhyb3cgbmV3IEVycm9yKFwiTm8gcGFyYW1zIGdpdmVuXCIpXG4gICAgaWYgKCFyZXF1ZXN0KSB0aHJvdyBuZXcgRXJyb3IoXCJObyByZXF1ZXN0IGdpdmVuXCIpXG4gICAgaWYgKCFyZXNwb25zZSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gcmVzcG9uc2UgZ2l2ZW5cIilcbiAgICBpZiAoIXZpZXdQYXRoKSB0aHJvdyBuZXcgRXJyb3IoXCJObyB2aWV3UGF0aCBnaXZlblwiKVxuXG4gICAgdGhpcy5fYWN0aW9uID0gYWN0aW9uXG4gICAgdGhpcy5fY29udHJvbGxlciA9IGNvbnRyb2xsZXJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMuX3BhcmFtcyA9IHBhcmFtc1xuICAgIHRoaXMuX3JlcXVlc3QgPSByZXF1ZXN0XG4gICAgdGhpcy5fcmVzcG9uc2UgPSByZXNwb25zZVxuICAgIHRoaXMudmlld1BhcmFtcyA9IHt9XG4gICAgdGhpcy5fdmlld1BhdGggPSB2aWV3UGF0aFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtzdHJpbmd9ICovXG4gIGdldEFjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2FjdGlvbiB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb24gfVxuXG4gIC8qKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi9cbiAgZ2V0UGFyYW1zKCkgeyByZXR1cm4gdGhpcy5fcGFyYW1zIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3JlcXVlc3QuanNcIikuZGVmYXVsdH0gKi9cbiAgZ2V0UmVxdWVzdCgpIHsgcmV0dXJuIHRoaXMuX3JlcXVlc3QgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcmV0dXJucyB7dHlwZW9mIFZlbG9jaW91c0NvbnRyb2xsZXJ9XG4gICAqL1xuICBfZ2V0Q29udHJvbGxlckNsYXNzKCkge1xuICAgIGNvbnN0IGNvbnRyb2xsZXJDbGFzcyA9IC8qKiBAdHlwZSB7dHlwZW9mIFZlbG9jaW91c0NvbnRyb2xsZXJ9ICovICh0aGlzLmNvbnN0cnVjdG9yKVxuXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJDbGFzc1xuICB9XG5cbiAgYXN5bmMgX3J1bkJlZm9yZUNhbGxiYWNrcygpIHtcbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhcIl9ydW5CZWZvcmVDYWxsYmFja3NcIilcblxuICAgIGxldCBjdXJyZW50Q29udHJvbGxlckNsYXNzID0gdGhpcy5fZ2V0Q29udHJvbGxlckNsYXNzKClcblxuICAgIHdoaWxlIChjdXJyZW50Q29udHJvbGxlckNsYXNzKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhgUnVubmluZyBjYWxsYmFja3MgZm9yICR7Y3VycmVudENvbnRyb2xsZXJDbGFzcy5uYW1lfWApXG5cbiAgICAgIGNvbnN0IGJlZm9yZUFjdGlvbnMgPSBjdXJyZW50Q29udHJvbGxlckNsYXNzLl9iZWZvcmVBY3Rpb25zXG5cbiAgICAgIGlmIChiZWZvcmVBY3Rpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgYmVmb3JlQWN0aW9uTmFtZSBvZiBiZWZvcmVBY3Rpb25zKSB7XG4gICAgICAgICAgY29uc3QgYmVmb3JlQWN0aW9uID0gY3VycmVudENvbnRyb2xsZXJDbGFzcy5wcm90b3R5cGVbYmVmb3JlQWN0aW9uTmFtZV1cblxuICAgICAgICAgIGlmICghYmVmb3JlQWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggYmVmb3JlIGFjdGlvbjogJHtiZWZvcmVBY3Rpb25OYW1lfWApXG5cbiAgICAgICAgICBjb25zdCBib3VuZEJlZm9yZUFjdGlvbiA9IGJlZm9yZUFjdGlvbi5iaW5kKHRoaXMpXG5cbiAgICAgICAgICBhd2FpdCBib3VuZEJlZm9yZUFjdGlvbigpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY3VycmVudENvbnRyb2xsZXJDbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50Q29udHJvbGxlckNsYXNzKVxuXG4gICAgICBpZiAoIWN1cnJlbnRDb250cm9sbGVyQ2xhc3M/Lm5hbWU/LmVuZHNXaXRoKFwiQ29udHJvbGxlclwiKSkgYnJlYWtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkFmdGVyIHJ1bkJlZm9yZUNhbGxiYWNrc1wiKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICBwYXJhbXMoKSB7IHJldHVybiB0aGlzLl9wYXJhbXMgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJncy5qc29uXVxuICAgKiBAcGFyYW0ge251bWJlciB8IHN0cmluZ30gW2FyZ3Muc3RhdHVzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHJlbmRlcih7anNvbiwgc3RhdHVzLCAuLi5yZXN0QXJnc30gPSB7fSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICBpZiAoanNvbikge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVySnNvbkFyZyhqc29uKVxuICAgIH1cblxuICAgIGlmIChzdGF0dXMpIHtcbiAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldFN0YXR1cyhzdGF0dXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVuZGVyVmlldygpXG4gIH1cblxuICAvKiogQHBhcmFtIHtvYmplY3R9IGpzb24gKi9cbiAgcmVuZGVySnNvbkFyZyhqc29uKSB7XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KGpzb24pXG5cbiAgICB0aGlzLl9yZXNwb25zZS5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04XCIpXG4gICAgdGhpcy5fcmVzcG9uc2Uuc2V0Qm9keShib2R5KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICByZW5kZXJWaWV3KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCB2aWV3UGF0aCA9IGAke3RoaXMuX3ZpZXdQYXRofS8ke2luZmxlY3Rpb24uZGFzaGVyaXplKGluZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLl9hY3Rpb24pKX0uZWpzYFxuICAgICAgY29uc3QgYWN0dWFsVmlld1BhcmFtcyA9IGluY29ycG9yYXRlKHtjb250cm9sbGVyOiB0aGlzfSwgdGhpcy52aWV3UGFyYW1zKVxuXG4gICAgICBlanMucmVuZGVyRmlsZSh2aWV3UGF0aCwgYWN0dWFsVmlld1BhcmFtcywge30sIChlcnIsIHN0cikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgaWYgKGVyci5jb2RlID09PSBcIkVOT0VOVFwiKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBNaXNzaW5nIHZpZXcgZmlsZTogJHt2aWV3UGF0aH1gKVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fcmVzcG9uc2UuZ2V0U3RhdHVzQ29kZSgpID09PSAyMDApIHtcbiAgICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0U3RhdHVzKFwiaW50ZXJuYWwtc2VydmVyLWVycm9yXCIpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcIilcbiAgICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEJvZHkoYE1pc3NpbmcgdmlldyBmaWxlOiAke3ZpZXdQYXRofWApXG5cbiAgICAgICAgICAgIHJlc29sdmUobnVsbClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGVycilcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCIpXG4gICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0Qm9keShzdHIpXG5cbiAgICAgICAgICByZXNvbHZlKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgcmVuZGVyVGV4dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZW5kZXJUZXh0IHN0dWJcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9odHRwLXNlcnZlci9jbGllbnQvcmVxdWVzdC5qc1wiKS5kZWZhdWx0fSAqL1xuICByZXF1ZXN0KCkgeyByZXR1cm4gdGhpcy5fcmVxdWVzdCB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXNwb25zZS5qc1wiKS5kZWZhdWx0fSAqL1xuICByZXNwb25zZSgpIHsgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlIH1cbn1cbiJdfQ==
|