velocious 1.0.470 → 1.0.472
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/build/configuration-types.js +1 -0
- package/build/configuration.js +27 -1
- package/build/controller.js +13 -1
- package/build/database/datetime-storage.js +49 -5
- package/build/database/record/index.js +14 -4
- package/build/environment-handlers/base.js +46 -0
- package/build/environment-handlers/node/cli/commands/generate/base-models.js +4 -1
- package/build/environment-handlers/node/cli/commands/generate/frontend-models.js +368 -43
- package/build/environment-handlers/node/cli/commands/generate/generated-file-banner.js +15 -0
- package/build/environment-handlers/node.js +84 -8
- package/build/frontend-model-controller.js +7 -7
- package/build/frontend-models/base.js +75 -9
- package/build/frontend-models/transport-serialization.js +41 -8
- package/build/frontend-models/websocket-channel.js +18 -1
- package/build/frontend-models/websocket-publishers.js +12 -1
- package/build/http-server/client/request-runner.js +13 -1
- package/build/src/configuration-types.d.ts +5 -0
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +2 -1
- package/build/src/configuration.d.ts +14 -1
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +25 -2
- package/build/src/controller.d.ts +5 -0
- package/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +12 -2
- package/build/src/database/datetime-storage.d.ts +12 -4
- package/build/src/database/datetime-storage.d.ts.map +1 -1
- package/build/src/database/datetime-storage.js +48 -6
- package/build/src/database/record/index.d.ts +5 -0
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +13 -5
- package/build/src/environment-handlers/base.d.ts +19 -0
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +41 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +4 -2
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +219 -40
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +317 -43
- package/build/src/environment-handlers/node/cli/commands/generate/generated-file-banner.d.ts +9 -0
- package/build/src/environment-handlers/node/cli/commands/generate/generated-file-banner.d.ts.map +1 -0
- package/build/src/environment-handlers/node/cli/commands/generate/generated-file-banner.js +13 -0
- package/build/src/environment-handlers/node.d.ts +1 -0
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +76 -9
- package/build/src/frontend-model-controller.js +8 -8
- package/build/src/frontend-models/base.d.ts +4 -0
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +64 -9
- package/build/src/frontend-models/transport-serialization.d.ts +30 -1
- package/build/src/frontend-models/transport-serialization.d.ts.map +1 -1
- package/build/src/frontend-models/transport-serialization.js +34 -9
- package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.js +16 -2
- package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-publishers.js +12 -2
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +13 -2
- package/build/src/time-zone.d.ts +16 -0
- package/build/src/time-zone.d.ts.map +1 -0
- package/build/src/time-zone.js +56 -0
- package/build/time-zone.js +65 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/scripts/test-browser.js +1 -0
- package/src/configuration-types.js +1 -0
- package/src/configuration.js +27 -1
- package/src/controller.js +13 -1
- package/src/database/datetime-storage.js +49 -5
- package/src/database/record/index.js +14 -4
- package/src/environment-handlers/base.js +46 -0
- package/src/environment-handlers/node/cli/commands/generate/base-models.js +4 -1
- package/src/environment-handlers/node/cli/commands/generate/frontend-models.js +368 -43
- package/src/environment-handlers/node/cli/commands/generate/generated-file-banner.js +15 -0
- package/src/environment-handlers/node.js +84 -8
- package/src/frontend-model-controller.js +7 -7
- package/src/frontend-models/base.js +75 -9
- package/src/frontend-models/transport-serialization.js +41 -8
- package/src/frontend-models/websocket-channel.js +18 -1
- package/src/frontend-models/websocket-publishers.js +12 -1
- package/src/http-server/client/request-runner.js +13 -1
- package/src/time-zone.js +65 -0
|
@@ -54,6 +54,11 @@ export default class VelociousController {
|
|
|
54
54
|
* @returns {import("./http-server/client/request.js").default} - The request.
|
|
55
55
|
*/
|
|
56
56
|
getRequest(): import("./http-server/client/request.js").default;
|
|
57
|
+
/**
|
|
58
|
+
* Runs transport serialization options.
|
|
59
|
+
* @returns {import("./frontend-models/transport-serialization.js").FrontendModelTransportSerializationOptions} - Serialization options.
|
|
60
|
+
*/
|
|
61
|
+
transportSerializationOptions(): import("./frontend-models/transport-serialization.js").FrontendModelTransportSerializationOptions;
|
|
57
62
|
/**
|
|
58
63
|
* Runs set cookie.
|
|
59
64
|
* @param {string} name - Cookie name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller.js"],"names":[],"mappings":"AAaA;IACE;;;;OAIG;IACH,gCAHW,MAAM,GACJ,IAAI,CAWhB;IAED;;;;;;;;;;OAUG;IACH,wFARG;QAAqB,MAAM,EAAnB,MAAM;QACqC,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACvB,UAAU,EAAvB,MAAM;QACkB,MAAM,EAA9B,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACuC,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,6BAAqB;IACrB,4DAAuB;IACvB,8DAAyB;IACzB,eAAoB;IACpB,kBAAyB;IAG3B;;;OAGG;IACH,aAFa,MAAM,CAEgB;IAEnC;;;OAGG;IACH,oBAFa,OAAO,oBAAoB,EAAE,OAAO,CAEA;IAEjD;;;OAGG;IACH,aAFa,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAEK;IAEnC;;;OAGG;IACH,cAFa,OAAO,iCAAiC,EAAE,OAAO,CAEzB;IAErC;;;;;;;;;;;;;;OAcG;IACH,gBAbW,MAAM,SACN,OAAC,SAET;QAAsB,MAAM;QACR,OAAO;QACJ,QAAQ;QACT,MAAM;QACN,IAAI;QACH,MAAM;QACY,QAAQ;QAC1B,SAAS;KAChC,GAAU,MAAM,CAsBlB;IAED;;;OAGG;IACH,cAFa,MAAM,EAAE,CAWpB;IAJG,+BAAuD;IAM3D;;;;OAIG;IACH,4BAIC;IAED,qCA8BC;IAED;;;OAGG;IACH,UAFa,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAS7B;IAED;;;OAGG;IACH,mBAFa,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CA+B7B;IAED;;;;;;OAMG;IACH,uCAJG;QAAsB,IAAI;QACK,MAAM;KACrC,GAAU,OAAO,CAAC,IAAI,CAAC,CAkBzB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,cAFa,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;OAGG;IACH,qBAFa,OAAO,CAAC,IAAI,CAAC,CAiCzB;IAED;;;OAGG;IACH,cAFa,IAAI,CAIhB;IAED;;;;;;;OAOG;IACH,mBANW,MAAM,SAEd;QAAsB,WAAW;QACF,MAAM;KACrC,GAAU,IAAI,CAwBhB;IAED;;;;;OAKG;IACH,mBAJa,CAAC,YACH,MAAM,CAAC,GACL,CAAC,CAQb;IAED;;;;OAIG;IACH,8BAHW,MAAM,GACJ,MAAM,CAiBlB;IAED;;;OAGG;IACH,kBAFa,OAAO,4BAA4B,EAAE,OAAO,GAAG,SAAS,CAIpE;IAED;;;OAGG;IACH,WAFa,OAAO,iCAAiC,EAAE,OAAO,CAE5B;IAElC;;;OAGG;IACH,YAFa,OAAO,kCAAkC,EAAE,OAAO,CAE3B;CACrC;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller.js"],"names":[],"mappings":"AAaA;IACE;;;;OAIG;IACH,gCAHW,MAAM,GACJ,IAAI,CAWhB;IAED;;;;;;;;;;OAUG;IACH,wFARG;QAAqB,MAAM,EAAnB,MAAM;QACqC,aAAa,EAAxD,OAAO,oBAAoB,EAAE,OAAO;QACvB,UAAU,EAAvB,MAAM;QACkB,MAAM,EAA9B,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACuC,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,6BAAqB;IACrB,4DAAuB;IACvB,8DAAyB;IACzB,eAAoB;IACpB,kBAAyB;IAG3B;;;OAGG;IACH,aAFa,MAAM,CAEgB;IAEnC;;;OAGG;IACH,oBAFa,OAAO,oBAAoB,EAAE,OAAO,CAEA;IAEjD;;;OAGG;IACH,aAFa,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAEK;IAEnC;;;OAGG;IACH,cAFa,OAAO,iCAAiC,EAAE,OAAO,CAEzB;IAErC;;;OAGG;IACH,iCAFa,OAAO,8CAA8C,EAAE,0CAA0C,CAQ7G;IAED;;;;;;;;;;;;;;OAcG;IACH,gBAbW,MAAM,SACN,OAAC,SAET;QAAsB,MAAM;QACR,OAAO;QACJ,QAAQ;QACT,MAAM;QACN,IAAI;QACH,MAAM;QACY,QAAQ;QAC1B,SAAS;KAChC,GAAU,MAAM,CAsBlB;IAED;;;OAGG;IACH,cAFa,MAAM,EAAE,CAWpB;IAJG,+BAAuD;IAM3D;;;;OAIG;IACH,4BAIC;IAED,qCA8BC;IAED;;;OAGG;IACH,UAFa,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAS7B;IAED;;;OAGG;IACH,mBAFa,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CA+B7B;IAED;;;;;;OAMG;IACH,uCAJG;QAAsB,IAAI;QACK,MAAM;KACrC,GAAU,OAAO,CAAC,IAAI,CAAC,CAkBzB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAShB;IAED;;;OAGG;IACH,cAFa,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;OAGG;IACH,qBAFa,OAAO,CAAC,IAAI,CAAC,CAiCzB;IAED;;;OAGG;IACH,cAFa,IAAI,CAIhB;IAED;;;;;;;OAOG;IACH,mBANW,MAAM,SAEd;QAAsB,WAAW;QACF,MAAM;KACrC,GAAU,IAAI,CAwBhB;IAED;;;;;OAKG;IACH,mBAJa,CAAC,YACH,MAAM,CAAC,GACL,CAAC,CAQb;IAED;;;;OAIG;IACH,8BAHW,MAAM,GACJ,MAAM,CAiBlB;IAED;;;OAGG;IACH,kBAFa,OAAO,4BAA4B,EAAE,OAAO,GAAG,SAAS,CAIpE;IAED;;;OAGG;IACH,WAFa,OAAO,iCAAiC,EAAE,OAAO,CAE5B;IAElC;;;OAGG;IACH,YAFa,OAAO,kCAAkC,EAAE,OAAO,CAE3B;CACrC;mBAjakB,aAAa;mBACb,yBAAyB"}
|
package/build/src/controller.js
CHANGED
|
@@ -80,6 +80,16 @@ export default class VelociousController {
|
|
|
80
80
|
* @returns {import("./http-server/client/request.js").default} - The request.
|
|
81
81
|
*/
|
|
82
82
|
getRequest() { return this._request; }
|
|
83
|
+
/**
|
|
84
|
+
* Runs transport serialization options.
|
|
85
|
+
* @returns {import("./frontend-models/transport-serialization.js").FrontendModelTransportSerializationOptions} - Serialization options.
|
|
86
|
+
*/
|
|
87
|
+
transportSerializationOptions() {
|
|
88
|
+
const configuration = this.getConfiguration();
|
|
89
|
+
return {
|
|
90
|
+
timeZone: configuration.getEnvironmentHandler().getTimeZone(configuration)
|
|
91
|
+
};
|
|
92
|
+
}
|
|
83
93
|
/**
|
|
84
94
|
* Runs set cookie.
|
|
85
95
|
* @param {string} name - Cookie name.
|
|
@@ -226,7 +236,7 @@ export default class VelociousController {
|
|
|
226
236
|
*/
|
|
227
237
|
renderJsonArg(json) {
|
|
228
238
|
return this._measureViewRender(() => {
|
|
229
|
-
const body = JSON.stringify(serializeFrontendModelTransportValue(json));
|
|
239
|
+
const body = JSON.stringify(serializeFrontendModelTransportValue(json, this.transportSerializationOptions()));
|
|
230
240
|
this._response.setHeader("Content-Type", "application/json; charset=UTF-8");
|
|
231
241
|
this._response.setBody(body);
|
|
232
242
|
});
|
|
@@ -364,4 +374,4 @@ export default class VelociousController {
|
|
|
364
374
|
*/
|
|
365
375
|
response() { return this._response; }
|
|
366
376
|
}
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxNQUFNLE1BQU0seUJBQXlCLENBQUE7QUFDNUMsT0FBTyxjQUFjLE1BQU0sMENBQTBDLENBQUE7QUFDckUsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFBO0FBQ3RELE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQTtBQUVqRyxNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQUN0Qzs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekI7O3dDQUU0QjtZQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxZQUFZLEVBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQy9DLElBQUksQ0FBQyxhQUFhO1lBQUUs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QVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRXRELElBQUksU0FBUyxLQUFLLE9BQU87WUFBRSxPQUFPLGtCQUFrQixDQUFBO1FBQ3BELElBQUksU0FBUyxLQUFLLEtBQUs7WUFBRSxPQUFPLGdDQUFnQyxDQUFBO1FBQ2hFLElBQUksU0FBUyxLQUFLLE9BQU87WUFBRSxPQUFPLGlDQUFpQyxDQUFBO1FBQ25FLElBQUksU0FBUyxLQUFLLE1BQU07WUFBRSxPQUFPLHlCQUF5QixDQUFBO1FBQzFELElBQUksU0FBUyxLQUFLLE9BQU87WUFBRSxPQUFPLDBCQUEwQixDQUFBO1FBQzVELElBQUksU0FBUyxLQUFLLE1BQU07WUFBRSxPQUFPLDJCQUEyQixDQUFBO1FBQzVELElBQUksU0FBUyxLQUFLLE1BQU07WUFBRSxPQUFPLGVBQWUsQ0FBQTtRQUNoRCxJQUFJLFNBQVMsS0FBSyxNQUFNO1lBQUUsT0FBTyxXQUFXLENBQUE7UUFDNUMsSUFBSSxTQUFTLEtBQUssTUFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPO1lBQUUsT0FBTyxZQUFZLENBQUE7UUFDdEUsSUFBSSxTQUFTLEtBQUssTUFBTTtZQUFFLE9BQU8sV0FBVyxDQUFBO1FBRTVDLE9BQU8sMEJBQTBCLENBQUE7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUE7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBRWxDOzs7T0FHRztJQUNILFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFDO0NBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBlanMgZnJvbSBcImVqc1wiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIlxuaW1wb3J0IENvb2tpZSBmcm9tIFwiLi9odHRwLXNlcnZlci9jb29raWUuanNcIlxuaW1wb3J0IFBhcmFtc1RvT2JqZWN0IGZyb20gXCIuL2h0dHAtc2VydmVyL2NsaWVudC9wYXJhbXMtdG8tb2JqZWN0LmpzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcbmltcG9ydCBxdWVyeXN0cmluZyBmcm9tIFwicXVlcnlzdHJpbmdcIlxuaW1wb3J0IHtzZXJpYWxpemVGcm9udGVuZE1vZGVsVHJhbnNwb3J0VmFsdWV9IGZyb20gXCIuL2Zyb250ZW5kLW1vZGVscy90cmFuc3BvcnQtc2VyaWFsaXphdGlvbi5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0NvbnRyb2xsZXIge1xuICAvKipcbiAgICogUnVucyBiZWZvcmUgYWN0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSAtIE1ldGhvZCBuYW1lLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzdGF0aWMgYmVmb3JlQWN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICBpZiAoIXRoaXMuX2JlZm9yZUFjdGlvbnMpIHtcbiAgICAgIC8qKlxuICAgICAgICogU3RvcmVzIHRoZSBiZWZvcmUgYWN0aW9ucyB2YWx1ZS5cbiAgICAgICAqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAgKi9cbiAgICAgIHRoaXMuX2JlZm9yZUFjdGlvbnMgPSBbXVxuICAgIH1cblxuICAgIHRoaXMuX2JlZm9yZUFjdGlvbnMucHVzaChtZXRob2ROYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmFjdGlvbiAtIEFjdGlvbi5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY29udHJvbGxlciAtIENvbnRyb2xsZXIuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGFyZ3MucGFyYW1zIC0gUGFyYW1ldGVycyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9odHRwLXNlcnZlci9jbGllbnQvcmVxdWVzdC5qc1wiKS5kZWZhdWx0fSBhcmdzLnJlcXVlc3QgLSBSZXF1ZXN0IG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXNwb25zZS5qc1wiKS5kZWZhdWx0fSBhcmdzLnJlc3BvbnNlIC0gUmVzcG9uc2Ugb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy52aWV3UGF0aCAtIFZpZXcgcGF0aC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHthY3Rpb24sIGNvbmZpZ3VyYXRpb24sIGNvbnRyb2xsZXIsIHBhcmFtcywgcmVxdWVzdCwgcmVzcG9uc2UsIHZpZXdQYXRofSkge1xuICAgIGlmICghYWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBhY3Rpb24gZ2l2ZW5cIilcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbmZpZ3VyYXRpb24gZ2l2ZW5cIilcbiAgICBpZiAoIWNvbnRyb2xsZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbnRyb2xsZXIgZ2l2ZW5cIilcbiAgICBpZiAoIXBhcmFtcykgdGhyb3cgbmV3IEVycm9yKFwiTm8gcGFyYW1zIGdpdmVuXCIpXG4gICAgaWYgKCFyZXF1ZXN0KSB0aHJvdyBuZXcgRXJyb3IoXCJObyByZXF1ZXN0IGdpdmVuXCIpXG4gICAgaWYgKCFyZXNwb25zZSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gcmVzcG9uc2UgZ2l2ZW5cIilcbiAgICBpZiAoIXZpZXdQYXRoKSB0aHJvdyBuZXcgRXJyb3IoXCJObyB2aWV3UGF0aCBnaXZlblwiKVxuXG4gICAgdGhpcy5fYWN0aW9uID0gYWN0aW9uXG4gICAgdGhpcy5fY29udHJvbGxlciA9IGNvbnRyb2xsZXJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMuX3BhcmFtcyA9IHBhcmFtc1xuICAgIHRoaXMuX3JlcXVlc3QgPSByZXF1ZXN0XG4gICAgdGhpcy5fcmVzcG9uc2UgPSByZXNwb25zZVxuICAgIHRoaXMudmlld1BhcmFtcyA9IHt9XG4gICAgdGhpcy5fdmlld1BhdGggPSB2aWV3UGF0aFxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGFjdGlvbi5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgYWN0aW9uLlxuICAgKi9cbiAgZ2V0QWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fYWN0aW9uIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSAtIFRoZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb24gfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBwYXJhbXMuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCA/Pn0gLSBUaGUgcGFyYW1zLlxuICAgKi9cbiAgZ2V0UGFyYW1zKCkgeyByZXR1cm4gdGhpcy5fcGFyYW1zIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgcmVxdWVzdC5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3JlcXVlc3QuanNcIikuZGVmYXVsdH0gLSBUaGUgcmVxdWVzdC5cbiAgICovXG4gIGdldFJlcXVlc3QoKSB7IHJldHVybiB0aGlzLl9yZXF1ZXN0IH1cblxuICAvKipcbiAgICogUnVucyBzZXQgY29va2llLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENvb2tpZSBuYW1lLlxuICAgKiBAcGFyYW0gez99IHZhbHVlIC0gQ29va2llIHZhbHVlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5kb21haW5dIC0gRG9tYWluLlxuICAgKiBAcGFyYW0ge0RhdGV9IFthcmdzLmV4cGlyZXNdIC0gRXhwaXJlcyBkYXRlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmh0dHBPbmx5XSAtIEh0dHBPbmx5IGZsYWcuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5tYXhBZ2VdIC0gTWF4LUFnZSBpbiBzZWNvbmRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MucGF0aF0gLSBQYXRoLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLnNlY3VyZV0gLSBTZWN1cmUgZmxhZy5cbiAgICogQHBhcmFtIHtcIkxheFwiIHwgXCJTdHJpY3RcIiB8IFwiTm9uZVwifSBbYXJncy5zYW1lU2l0ZV0gLSBTYW1lU2l0ZSB2YWx1ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5lbmNyeXB0ZWRdIC0gV2hldGhlciB0byBlbmNyeXB0IHRoZSBjb29raWUgdmFsdWUuXG4gICAqIEByZXR1cm5zIHtDb29raWV9IC0gQ29va2llIGluc3RhbmNlLlxuICAgKi9cbiAgc2V0Q29va2llKG5hbWUsIHZhbHVlLCBhcmdzID0ge30pIHtcbiAgICBjb25zdCB7ZW5jcnlwdGVkID0gZmFsc2UsIC4uLm9wdGlvbnN9ID0gYXJnc1xuICAgIC8qKlxuICAgICAqIFR5cGVzIHRoZSBmb2xsb3dpbmcgdmFsdWUuXG4gICAgICogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgY29va2llVmFsdWVcblxuICAgIGlmIChlbmNyeXB0ZWQpIHtcbiAgICAgIGNvbnN0IHNlY3JldCA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldENvb2tpZVNlY3JldCgpXG4gICAgICBpZiAoIXNlY3JldCkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb29raWUgc2VjcmV0IGZvciBlbmNyeXB0ZWQgY29va2llXCIpXG4gICAgICBjb29raWVWYWx1ZSA9IENvb2tpZS5lbmNyeXB0VmFsdWUodmFsdWUsIHNlY3JldClcbiAgICB9IGVsc2Uge1xuICAgICAgY29va2llVmFsdWUgPSBTdHJpbmcodmFsdWUgPz8gXCJcIilcbiAgICB9XG5cbiAgICBjb25zdCBjb29raWUgPSBuZXcgQ29va2llKHtuYW1lLCB2YWx1ZTogY29va2llVmFsdWUsIG9wdGlvbnMsIGVuY3J5cHRlZH0pXG5cbiAgICB0aGlzLl9yZXNwb25zZS5hZGRIZWFkZXIoXCJTZXQtQ29va2llXCIsIGNvb2tpZS50b0hlYWRlcigpKVxuXG4gICAgcmV0dXJuIGNvb2tpZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGNvb2tpZXMuXG4gICAqIEByZXR1cm5zIHtDb29raWVbXX0gLSBDb29raWVzIGZyb20gdGhlIHJlcXVlc3QuXG4gICAqL1xuICBnZXRDb29raWVzKCkge1xuICAgIGlmICghdGhpcy5fY29va2llcykge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0Q29va2llU2VjcmV0KClcbiAgICAgIGNvbnN0IGhlYWRlclZhbHVlID0gdGhpcy5fcmVxdWVzdC5oZWFkZXIoXCJjb29raWVcIilcblxuICAgICAgdGhpcy5fY29va2llcyA9IENvb2tpZS5wYXJzZUhlYWRlcihoZWFkZXJWYWx1ZSwgc2VjcmV0KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb29raWVzXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29udHJvbGxlciBjbGFzcy5cbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybnMge3R5cGVvZiBWZWxvY2lvdXNDb250cm9sbGVyfSAtIFRoZSBjb250cm9sbGVyIGNsYXNzLlxuICAgKi9cbiAgX2dldENvbnRyb2xsZXJDbGFzcygpIHtcbiAgICBjb25zdCBjb250cm9sbGVyQ2xhc3MgPSAvKiogQHR5cGUge3R5cGVvZiBWZWxvY2lvdXNDb250cm9sbGVyfSAqLyAodGhpcy5jb25zdHJ1Y3RvcilcblxuICAgIHJldHVybiBjb250cm9sbGVyQ2xhc3NcbiAgfVxuXG4gIGFzeW5jIF9ydW5CZWZvcmVDYWxsYmFja3MoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2dnZXIuZGVidWcoXCJfcnVuQmVmb3JlQ2FsbGJhY2tzXCIpXG5cbiAgICBsZXQgY3VycmVudENvbnRyb2xsZXJDbGFzcyA9IHRoaXMuX2dldENvbnRyb2xsZXJDbGFzcygpXG5cbiAgICB3aGlsZSAoY3VycmVudENvbnRyb2xsZXJDbGFzcykge1xuICAgICAgYXdhaXQgdGhpcy5sb2dnZXIuZGVidWcoYFJ1bm5pbmcgY2FsbGJhY2tzIGZvciAke2N1cnJlbnRDb250cm9sbGVyQ2xhc3MubmFtZX1gKVxuXG4gICAgICBjb25zdCBiZWZvcmVBY3Rpb25zID0gY3VycmVudENvbnRyb2xsZXJDbGFzcy5fYmVmb3JlQWN0aW9uc1xuXG4gICAgICBpZiAoYmVmb3JlQWN0aW9ucykge1xuICAgICAgICBjb25zdCBjb250cm9sbGVyUHJvdG90eXBlID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbiB8IHVuZGVmaW5lZD59ICovICgvKiogQHR5cGUgez99ICovIChjdXJyZW50Q29udHJvbGxlckNsYXNzLnByb3RvdHlwZSkpXG5cbiAgICAgICAgZm9yIChjb25zdCBiZWZvcmVBY3Rpb25OYW1lIG9mIGJlZm9yZUFjdGlvbnMpIHtcbiAgICAgICAgICBjb25zdCBiZWZvcmVBY3Rpb24gPSBjb250cm9sbGVyUHJvdG90eXBlW2JlZm9yZUFjdGlvbk5hbWVdXG5cbiAgICAgICAgICBpZiAoIWJlZm9yZUFjdGlvbikgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIGJlZm9yZSBhY3Rpb246ICR7YmVmb3JlQWN0aW9uTmFtZX1gKVxuXG4gICAgICAgICAgY29uc3QgYm91bmRCZWZvcmVBY3Rpb24gPSBiZWZvcmVBY3Rpb24uYmluZCh0aGlzKVxuXG4gICAgICAgICAgYXdhaXQgYm91bmRCZWZvcmVBY3Rpb24oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRDb250cm9sbGVyQ2xhc3MgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3VycmVudENvbnRyb2xsZXJDbGFzcylcblxuICAgICAgaWYgKCFjdXJyZW50Q29udHJvbGxlckNsYXNzPy5uYW1lPy5lbmRzV2l0aChcIkNvbnRyb2xsZXJcIikpIGJyZWFrXG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5sb2dnZXIuZGVidWcoXCJBZnRlciBydW5CZWZvcmVDYWxsYmFja3NcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHBhcmFtcy5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsID8+fSAtIFRoZSBwYXJhbXMuXG4gICAqL1xuICBwYXJhbXMoKSB7XG4gICAgLy8gTWVyZ2UgcXVlcnkgcGFyYW1ldGVycyBzbyBjb250cm9sbGVycyBjYW4gcmVhZCB0aGVtIHZpYSBwYXJhbXMoKVxuICAgIGNvbnN0IG1lcmdlZFBhcmFtcyA9IHsuLi50aGlzLnF1ZXJ5UGFyYW1ldGVycygpLCAuLi50aGlzLl9wYXJhbXN9XG5cbiAgICBpZiAoIW1lcmdlZFBhcmFtcy5jb250cm9sbGVyKSBtZXJnZWRQYXJhbXMuY29udHJvbGxlciA9IHRoaXMuX2NvbnRyb2xsZXJcblxuICAgIHJldHVybiBtZXJnZWRQYXJhbXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCA/Pn0gLSBUaGUgcXVlcnkgcGFyYW1ldGVycy5cbiAgICovXG4gIHF1ZXJ5UGFyYW1ldGVycygpIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuX3JlcXVlc3QucGF0aCgpLnNwbGl0KFwiP1wiKVsxXVxuXG4gICAgaWYgKCFxdWVyeSkgcmV0dXJuIHt9XG5cbiAgICB0cnkge1xuICAgICAgLyoqXG4gICAgICAgKiBVbnBhcnNlZCBwYXJhbXMuXG4gICAgICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgPz59ICovXG4gICAgICBjb25zdCB1bnBhcnNlZFBhcmFtcyA9IHF1ZXJ5c3RyaW5nLnBhcnNlKHF1ZXJ5KVxuICAgICAgY29uc3QgcGFyYW1zVG9PYmplY3QgPSBuZXcgUGFyYW1zVG9PYmplY3QodW5wYXJzZWRQYXJhbXMpXG5cbiAgICAgIHJldHVybiBwYXJhbXNUb09iamVjdC50b09iamVjdCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGVuc3VyZWRFcnJvciA9IC8qKiBAdHlwZSB7RXJyb3IgJiB7dmVsb2Npb3VzQ29udGV4dD86IFJlY29yZDxzdHJpbmcsID8+fX0gKi8gKGVycm9yKVxuXG4gICAgICBlbnN1cmVkRXJyb3IudmVsb2Npb3VzQ29udGV4dCA9IHtcbiAgICAgICAgLi4uKGVuc3VyZWRFcnJvci52ZWxvY2lvdXNDb250ZXh0IHx8IHt9KSxcbiAgICAgICAgcmVxdWVzdFBhcnNpbmc6IHtcbiAgICAgICAgICBodHRwTWV0aG9kOiB0aGlzLl9yZXF1ZXN0Lmh0dHBNZXRob2QoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJLZXlzOiBPYmplY3Qua2V5cyhxdWVyeXN0cmluZy5wYXJzZShxdWVyeSkpLFxuICAgICAgICAgIHBhdGg6IHRoaXMuX3JlcXVlc3QucGF0aCgpLFxuICAgICAgICAgIHF1ZXJ5UHJldmlldzogcXVlcnkubGVuZ3RoID4gMzAwID8gYCR7cXVlcnkuc2xpY2UoMCwgMzAwKX0uLi5gIDogcXVlcnksXG4gICAgICAgICAgc3RhZ2U6IFwicXVlcnktcGFyYW1ldGVyc1wiXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhyb3cgZW5zdXJlZEVycm9yXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJncy5qc29uXSAtIEpzb24uXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgc3RyaW5nfSBbYXJncy5zdGF0dXNdIC0gU3RhdHVzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgcmVuZGVyKHtqc29uLCBzdGF0dXMsIC4uLnJlc3RBcmdzfSA9IHt9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIC8vIEFwcGx5IHRoZSBzdGF0dXMgQkVGT1JFIGRlbGVnYXRpbmcgdG8gcmVuZGVySnNvbkFyZy9yZW5kZXJWaWV3IHNvXG4gICAgLy8gYHJlbmRlcih7anNvbjogey4uLn0sIHN0YXR1czogNDIyfSlgIHByb2R1Y2VzIGEgNDIyIHJlc3BvbnNlIHdpdGhcbiAgICAvLyBhIEpTT04gYm9keS4gVGhlIHByZXZpb3VzIG9yZGVyIHNob3J0LWNpcmN1aXRlZCB2aWEgYHJldHVyblxuICAgIC8vIHRoaXMucmVuZGVySnNvbkFyZyhqc29uKWAgYW5kIHNpbGVudGx5IGRyb3BwZWQgdGhlIHN0YXR1cyBhcmcuXG4gICAgaWYgKHN0YXR1cykge1xuICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0U3RhdHVzKHN0YXR1cylcbiAgICB9XG5cbiAgICBpZiAoanNvbikge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVySnNvbkFyZyhqc29uKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnJlbmRlclZpZXcoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcmVuZGVyIGpzb24gYXJnLlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIEpTT04gcGF5bG9hZC5cbiAgICovXG4gIHJlbmRlckpzb25BcmcoanNvbikge1xuICAgIHJldHVybiB0aGlzLl9tZWFzdXJlVmlld1JlbmRlcigoKSA9PiB7XG4gICAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoc2VyaWFsaXplRnJvbnRlbmRNb2RlbFRyYW5zcG9ydFZhbHVlKGpzb24pKVxuXG4gICAgICB0aGlzLl9yZXNwb25zZS5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04XCIpXG4gICAgICB0aGlzLl9yZXNwb25zZS5zZXRCb2R5KGJvZHkpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHJlbmRlciB2aWV3LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgcmVuZGVyVmlldygpIHtcbiAgICBjb25zdCByZXF1ZXN0VGltaW5nID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0Q3VycmVudFJlcXVlc3RUaW1pbmcoKVxuXG4gICAgcmV0dXJuIHJlcXVlc3RUaW1pbmdcbiAgICAgID8gcmVxdWVzdFRpbWluZy5tZWFzdXJlKFwidmlld3NcIiwgYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5fcmVuZGVyVmlld0FjdHVhbCgpKVxuICAgICAgOiB0aGlzLl9yZW5kZXJWaWV3QWN0dWFsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHJlbmRlciB2aWV3IGFjdHVhbC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIF9yZW5kZXJWaWV3QWN0dWFsKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCB2aWV3UGF0aCA9IGAke3RoaXMuX3ZpZXdQYXRofS8ke2luZmxlY3Rpb24uZGFzaGVyaXplKGluZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLl9hY3Rpb24pKX0uZWpzYFxuICAgICAgY29uc3QgYWN0dWFsVmlld1BhcmFtcyA9IGluY29ycG9yYXRlKHtjb250cm9sbGVyOiB0aGlzfSwgdGhpcy52aWV3UGFyYW1zKVxuXG4gICAgICBlanMucmVuZGVyRmlsZSh2aWV3UGF0aCwgYWN0dWFsVmlld1BhcmFtcywge30sIChlcnIsIHN0cikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc3QgcmVuZGVyRXJyb3IgPSAvKiogQHR5cGUge0Vycm9yICYge2NvZGU/OiBzdHJpbmd9fSAqLyAoZXJyKVxuXG4gICAgICAgICAgaWYgKHJlbmRlckVycm9yLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYE1pc3NpbmcgdmlldyBmaWxlOiAke3ZpZXdQYXRofWApXG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9yZXNwb25zZS5nZXRTdGF0dXNDb2RlKCkgPT09IDIwMCkge1xuICAgICAgICAgICAgICB0aGlzLl9yZXNwb25zZS5zZXRTdGF0dXMoXCJpbnRlcm5hbC1zZXJ2ZXItZXJyb3JcIilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFwiKVxuICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0Qm9keShgTWlzc2luZyB2aWV3IGZpbGU6ICR7dmlld1BhdGh9YClcblxuICAgICAgICAgICAgcmVzb2x2ZSh1bmRlZmluZWQpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZW5kZXJFcnJvcilcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCIpXG4gICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0Qm9keShzdHIpXG5cbiAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcmVuZGVyIHRleHQuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHJlbmRlclRleHQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwicmVuZGVyVGV4dCBzdHViXCIpXG4gIH1cblxuICAvKipcbiAgICogU3RyZWFtcyBhIGZpbGUgcmVzcG9uc2UgZnJvbSBkaXNrIHdpdGhvdXQgbG9hZGluZyB0aGUgZnVsbCBmaWxlIGludG8gY29udHJvbGxlciBtZW1vcnkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aCAtIEZpbGUgcGF0aC5cbiAgICogQHBhcmFtIHtvYmplY3R9IFthcmdzXSAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuY29udGVudFR5cGVdIC0gQ29udGVudCB0eXBlLlxuICAgKiBAcGFyYW0ge251bWJlciB8IHN0cmluZ30gW2FyZ3Muc3RhdHVzXSAtIFN0YXR1cy5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2VuZEZpbGUoZmlsZVBhdGgsIGFyZ3MgPSB7fSkge1xuICAgIHRoaXMuX21lYXN1cmVWaWV3UmVuZGVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHtjb250ZW50VHlwZSwgc3RhdHVzLCAuLi5yZXN0QXJnc30gPSBhcmdzXG5cbiAgICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICAgIGlmICh0eXBlb2YgZmlsZVBhdGggIT09IFwic3RyaW5nXCIgfHwgZmlsZVBhdGgubGVuZ3RoIDwgMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGZpbGUgcGF0aCB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcsIGdvdDogJHtTdHJpbmcoZmlsZVBhdGgpfWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRldGVjdGVkQ29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCB0aGlzLnNlbmRGaWxlQ29udGVudFR5cGUoZmlsZVBhdGgpXG5cbiAgICAgIGlmIChkZXRlY3RlZENvbnRlbnRUeXBlKSB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBkZXRlY3RlZENvbnRlbnRUeXBlKVxuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdHVzKSB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldFN0YXR1cyhzdGF0dXMpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEZpbGVQYXRoKGZpbGVQYXRoKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBtZWFzdXJlIHZpZXcgcmVuZGVyLlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0geygpID0+IFR9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gbWVhc3VyZS5cbiAgICogQHJldHVybnMge1R9IC0gQ2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgX21lYXN1cmVWaWV3UmVuZGVyKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgcmVxdWVzdFRpbWluZyA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldEN1cnJlbnRSZXF1ZXN0VGltaW5nKClcblxuICAgIHJldHVybiByZXF1ZXN0VGltaW5nXG4gICAgICA/IHJlcXVlc3RUaW1pbmcubWVhc3VyZVN5bmMoXCJ2aWV3c1wiLCBjYWxsYmFjaylcbiAgICAgIDogY2FsbGJhY2soKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2VuZCBmaWxlIGNvbnRlbnQgdHlwZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gRmlsZSBwYXRoLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIENvbnRlbnQgdHlwZSB2YWx1ZS5cbiAgICovXG4gIHNlbmRGaWxlQ29udGVudFR5cGUoZmlsZVBhdGgpIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpLnRvTG93ZXJDYXNlKClcblxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLndhc21cIikgcmV0dXJuIFwiYXBwbGljYXRpb24vd2FzbVwiXG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gXCIuanNcIikgcmV0dXJuIFwidGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PVVURi04XCJcbiAgICBpZiAoZXh0ZW5zaW9uID09PSBcIi5qc29uXCIpIHJldHVybiBcImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLThcIlxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLmNzc1wiKSByZXR1cm4gXCJ0ZXh0L2NzczsgY2hhcnNldD1VVEYtOFwiXG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gXCIuaHRtbFwiKSByZXR1cm4gXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcIlxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLnR4dFwiKSByZXR1cm4gXCJ0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XCJcbiAgICBpZiAoZXh0ZW5zaW9uID09PSBcIi5zdmdcIikgcmV0dXJuIFwiaW1hZ2Uvc3ZnK3htbFwiXG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gXCIucG5nXCIpIHJldHVybiBcImltYWdlL3BuZ1wiXG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gXCIuanBnXCIgfHwgZXh0ZW5zaW9uID09PSBcIi5qcGVnXCIpIHJldHVybiBcImltYWdlL2pwZWdcIlxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLmdpZlwiKSByZXR1cm4gXCJpbWFnZS9naWZcIlxuXG4gICAgcmV0dXJuIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGN1cnJlbnQgYWJpbGl0eS5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vYXV0aG9yaXphdGlvbi9hYmlsaXR5LmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9IC0gQ3VycmVudCBhYmlsaXR5IGZvciByZXF1ZXN0IHNjb3BlLlxuICAgKi9cbiAgY3VycmVudEFiaWxpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldEN1cnJlbnRBYmlsaXR5KClcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXF1ZXN0LmpzXCIpLmRlZmF1bHR9IC0gVGhlIHJlcXVlc3QuXG4gICAqL1xuICByZXF1ZXN0KCkgeyByZXR1cm4gdGhpcy5fcmVxdWVzdCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcmVzcG9uc2UuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXNwb25zZS5qc1wiKS5kZWZhdWx0fSAtIFRoZSByZXNwb25zZS5cbiAgICovXG4gIHJlc3BvbnNlKCkgeyByZXR1cm4gdGhpcy5fcmVzcG9uc2UgfVxufVxuIl19
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxNQUFNLE1BQU0seUJBQXlCLENBQUE7QUFDNUMsT0FBTyxjQUFjLE1BQU0sMENBQTBDLENBQUE7QUFDckUsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8sYUFBYSxNQUFNLDRCQUE0QixDQUFBO0FBQ3RELE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQTtBQUVqRyxNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQUN0Qzs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekI7O3dDQUU0QjtZQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxZQUFZLEVBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQy9DLElBQUksQ0FBQyxhQUFhO1lBQUUs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Qzs7O09BR0c7SUFDSCxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBLENBQUMsQ0FBQztDQUNyQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZWpzIGZyb20gXCJlanNcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyLmpzXCJcbmltcG9ydCBDb29raWUgZnJvbSBcIi4vaHR0cC1zZXJ2ZXIvY29va2llLmpzXCJcbmltcG9ydCBQYXJhbXNUb09iamVjdCBmcm9tIFwiLi9odHRwLXNlcnZlci9jbGllbnQvcGFyYW1zLXRvLW9iamVjdC5qc1wiXG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5pbXBvcnQgcXVlcnlzdHJpbmcgZnJvbSBcInF1ZXJ5c3RyaW5nXCJcbmltcG9ydCB7c2VyaWFsaXplRnJvbnRlbmRNb2RlbFRyYW5zcG9ydFZhbHVlfSBmcm9tIFwiLi9mcm9udGVuZC1tb2RlbHMvdHJhbnNwb3J0LXNlcmlhbGl6YXRpb24uanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNDb250cm9sbGVyIHtcbiAgLyoqXG4gICAqIFJ1bnMgYmVmb3JlIGFjdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgLSBNZXRob2QgbmFtZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc3RhdGljIGJlZm9yZUFjdGlvbihtZXRob2ROYW1lKSB7XG4gICAgaWYgKCF0aGlzLl9iZWZvcmVBY3Rpb25zKSB7XG4gICAgICAvKipcbiAgICAgICAqIFN0b3JlcyB0aGUgYmVmb3JlIGFjdGlvbnMgdmFsdWUuXG4gICAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gICovXG4gICAgICB0aGlzLl9iZWZvcmVBY3Rpb25zID0gW11cbiAgICB9XG5cbiAgICB0aGlzLl9iZWZvcmVBY3Rpb25zLnB1c2gobWV0aG9kTmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5hY3Rpb24gLSBBY3Rpb24uXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNvbnRyb2xsZXIgLSBDb250cm9sbGVyLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsID8+fSBhcmdzLnBhcmFtcyAtIFBhcmFtZXRlcnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3JlcXVlc3QuanNcIikuZGVmYXVsdH0gYXJncy5yZXF1ZXN0IC0gUmVxdWVzdCBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9odHRwLXNlcnZlci9jbGllbnQvcmVzcG9uc2UuanNcIikuZGVmYXVsdH0gYXJncy5yZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Mudmlld1BhdGggLSBWaWV3IHBhdGguXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7YWN0aW9uLCBjb25maWd1cmF0aW9uLCBjb250cm9sbGVyLCBwYXJhbXMsIHJlcXVlc3QsIHJlc3BvbnNlLCB2aWV3UGF0aH0pIHtcbiAgICBpZiAoIWFjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiTm8gYWN0aW9uIGdpdmVuXCIpXG4gICAgaWYgKCFjb25maWd1cmF0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb25maWd1cmF0aW9uIGdpdmVuXCIpXG4gICAgaWYgKCFjb250cm9sbGVyKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb250cm9sbGVyIGdpdmVuXCIpXG4gICAgaWYgKCFwYXJhbXMpIHRocm93IG5ldyBFcnJvcihcIk5vIHBhcmFtcyBnaXZlblwiKVxuICAgIGlmICghcmVxdWVzdCkgdGhyb3cgbmV3IEVycm9yKFwiTm8gcmVxdWVzdCBnaXZlblwiKVxuICAgIGlmICghcmVzcG9uc2UpIHRocm93IG5ldyBFcnJvcihcIk5vIHJlc3BvbnNlIGdpdmVuXCIpXG4gICAgaWYgKCF2aWV3UGF0aCkgdGhyb3cgbmV3IEVycm9yKFwiTm8gdmlld1BhdGggZ2l2ZW5cIilcblxuICAgIHRoaXMuX2FjdGlvbiA9IGFjdGlvblxuICAgIHRoaXMuX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyXG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcbiAgICB0aGlzLl9wYXJhbXMgPSBwYXJhbXNcbiAgICB0aGlzLl9yZXF1ZXN0ID0gcmVxdWVzdFxuICAgIHRoaXMuX3Jlc3BvbnNlID0gcmVzcG9uc2VcbiAgICB0aGlzLnZpZXdQYXJhbXMgPSB7fVxuICAgIHRoaXMuX3ZpZXdQYXRoID0gdmlld1BhdGhcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBhY3Rpb24uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGFjdGlvbi5cbiAgICovXG4gIGdldEFjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2FjdGlvbiB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gLSBUaGUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGdldENvbmZpZ3VyYXRpb24oKSB7IHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgcGFyYW1zLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgPz59IC0gVGhlIHBhcmFtcy5cbiAgICovXG4gIGdldFBhcmFtcygpIHsgcmV0dXJuIHRoaXMuX3BhcmFtcyB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IHJlcXVlc3QuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2h0dHAtc2VydmVyL2NsaWVudC9yZXF1ZXN0LmpzXCIpLmRlZmF1bHR9IC0gVGhlIHJlcXVlc3QuXG4gICAqL1xuICBnZXRSZXF1ZXN0KCkgeyByZXR1cm4gdGhpcy5fcmVxdWVzdCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdHJhbnNwb3J0IHNlcmlhbGl6YXRpb24gb3B0aW9ucy5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vZnJvbnRlbmQtbW9kZWxzL3RyYW5zcG9ydC1zZXJpYWxpemF0aW9uLmpzXCIpLkZyb250ZW5kTW9kZWxUcmFuc3BvcnRTZXJpYWxpemF0aW9uT3B0aW9uc30gLSBTZXJpYWxpemF0aW9uIG9wdGlvbnMuXG4gICAqL1xuICB0cmFuc3BvcnRTZXJpYWxpemF0aW9uT3B0aW9ucygpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKClcblxuICAgIHJldHVybiB7XG4gICAgICB0aW1lWm9uZTogY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudEhhbmRsZXIoKS5nZXRUaW1lWm9uZShjb25maWd1cmF0aW9uKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNldCBjb29raWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gQ29va2llIG5hbWUuXG4gICAqIEBwYXJhbSB7P30gdmFsdWUgLSBDb29raWUgdmFsdWUuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJnc10gLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmRvbWFpbl0gLSBEb21haW4uXG4gICAqIEBwYXJhbSB7RGF0ZX0gW2FyZ3MuZXhwaXJlc10gLSBFeHBpcmVzIGRhdGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuaHR0cE9ubHldIC0gSHR0cE9ubHkgZmxhZy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLm1heEFnZV0gLSBNYXgtQWdlIGluIHNlY29uZHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5wYXRoXSAtIFBhdGguXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3Muc2VjdXJlXSAtIFNlY3VyZSBmbGFnLlxuICAgKiBAcGFyYW0ge1wiTGF4XCIgfCBcIlN0cmljdFwiIHwgXCJOb25lXCJ9IFthcmdzLnNhbWVTaXRlXSAtIFNhbWVTaXRlIHZhbHVlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmVuY3J5cHRlZF0gLSBXaGV0aGVyIHRvIGVuY3J5cHQgdGhlIGNvb2tpZSB2YWx1ZS5cbiAgICogQHJldHVybnMge0Nvb2tpZX0gLSBDb29raWUgaW5zdGFuY2UuXG4gICAqL1xuICBzZXRDb29raWUobmFtZSwgdmFsdWUsIGFyZ3MgPSB7fSkge1xuICAgIGNvbnN0IHtlbmNyeXB0ZWQgPSBmYWxzZSwgLi4ub3B0aW9uc30gPSBhcmdzXG4gICAgLyoqXG4gICAgICogVHlwZXMgdGhlIGZvbGxvd2luZyB2YWx1ZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCBjb29raWVWYWx1ZVxuXG4gICAgaWYgKGVuY3J5cHRlZCkge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0Q29va2llU2VjcmV0KClcbiAgICAgIGlmICghc2VjcmV0KSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIGNvb2tpZSBzZWNyZXQgZm9yIGVuY3J5cHRlZCBjb29raWVcIilcbiAgICAgIGNvb2tpZVZhbHVlID0gQ29va2llLmVuY3J5cHRWYWx1ZSh2YWx1ZSwgc2VjcmV0KVxuICAgIH0gZWxzZSB7XG4gICAgICBjb29raWVWYWx1ZSA9IFN0cmluZyh2YWx1ZSA/PyBcIlwiKVxuICAgIH1cblxuICAgIGNvbnN0IGNvb2tpZSA9IG5ldyBDb29raWUoe25hbWUsIHZhbHVlOiBjb29raWVWYWx1ZSwgb3B0aW9ucywgZW5jcnlwdGVkfSlcblxuICAgIHRoaXMuX3Jlc3BvbnNlLmFkZEhlYWRlcihcIlNldC1Db29raWVcIiwgY29va2llLnRvSGVhZGVyKCkpXG5cbiAgICByZXR1cm4gY29va2llXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29va2llcy5cbiAgICogQHJldHVybnMge0Nvb2tpZVtdfSAtIENvb2tpZXMgZnJvbSB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGdldENvb2tpZXMoKSB7XG4gICAgaWYgKCF0aGlzLl9jb29raWVzKSB7XG4gICAgICBjb25zdCBzZWNyZXQgPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXRDb29raWVTZWNyZXQoKVxuICAgICAgY29uc3QgaGVhZGVyVmFsdWUgPSB0aGlzLl9yZXF1ZXN0LmhlYWRlcihcImNvb2tpZVwiKVxuXG4gICAgICB0aGlzLl9jb29raWVzID0gQ29va2llLnBhcnNlSGVhZGVyKGhlYWRlclZhbHVlLCBzZWNyZXQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2Nvb2tpZXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBjb250cm9sbGVyIGNsYXNzLlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcmV0dXJucyB7dHlwZW9mIFZlbG9jaW91c0NvbnRyb2xsZXJ9IC0gVGhlIGNvbnRyb2xsZXIgY2xhc3MuXG4gICAqL1xuICBfZ2V0Q29udHJvbGxlckNsYXNzKCkge1xuICAgIGNvbnN0IGNvbnRyb2xsZXJDbGFzcyA9IC8qKiBAdHlwZSB7dHlwZW9mIFZlbG9jaW91c0NvbnRyb2xsZXJ9ICovICh0aGlzLmNvbnN0cnVjdG9yKVxuXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJDbGFzc1xuICB9XG5cbiAgYXN5bmMgX3J1bkJlZm9yZUNhbGxiYWNrcygpIHtcbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhcIl9ydW5CZWZvcmVDYWxsYmFja3NcIilcblxuICAgIGxldCBjdXJyZW50Q29udHJvbGxlckNsYXNzID0gdGhpcy5fZ2V0Q29udHJvbGxlckNsYXNzKClcblxuICAgIHdoaWxlIChjdXJyZW50Q29udHJvbGxlckNsYXNzKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhgUnVubmluZyBjYWxsYmFja3MgZm9yICR7Y3VycmVudENvbnRyb2xsZXJDbGFzcy5uYW1lfWApXG5cbiAgICAgIGNvbnN0IGJlZm9yZUFjdGlvbnMgPSBjdXJyZW50Q29udHJvbGxlckNsYXNzLl9iZWZvcmVBY3Rpb25zXG5cbiAgICAgIGlmIChiZWZvcmVBY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXJQcm90b3R5cGUgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIEZ1bmN0aW9uIHwgdW5kZWZpbmVkPn0gKi8gKC8qKiBAdHlwZSB7P30gKi8gKGN1cnJlbnRDb250cm9sbGVyQ2xhc3MucHJvdG90eXBlKSlcblxuICAgICAgICBmb3IgKGNvbnN0IGJlZm9yZUFjdGlvbk5hbWUgb2YgYmVmb3JlQWN0aW9ucykge1xuICAgICAgICAgIGNvbnN0IGJlZm9yZUFjdGlvbiA9IGNvbnRyb2xsZXJQcm90b3R5cGVbYmVmb3JlQWN0aW9uTmFtZV1cblxuICAgICAgICAgIGlmICghYmVmb3JlQWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggYmVmb3JlIGFjdGlvbjogJHtiZWZvcmVBY3Rpb25OYW1lfWApXG5cbiAgICAgICAgICBjb25zdCBib3VuZEJlZm9yZUFjdGlvbiA9IGJlZm9yZUFjdGlvbi5iaW5kKHRoaXMpXG5cbiAgICAgICAgICBhd2FpdCBib3VuZEJlZm9yZUFjdGlvbigpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY3VycmVudENvbnRyb2xsZXJDbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50Q29udHJvbGxlckNsYXNzKVxuXG4gICAgICBpZiAoIWN1cnJlbnRDb250cm9sbGVyQ2xhc3M/Lm5hbWU/LmVuZHNXaXRoKFwiQ29udHJvbGxlclwiKSkgYnJlYWtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkFmdGVyIHJ1bkJlZm9yZUNhbGxiYWNrc1wiKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcGFyYW1zLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgPz59IC0gVGhlIHBhcmFtcy5cbiAgICovXG4gIHBhcmFtcygpIHtcbiAgICAvLyBNZXJnZSBxdWVyeSBwYXJhbWV0ZXJzIHNvIGNvbnRyb2xsZXJzIGNhbiByZWFkIHRoZW0gdmlhIHBhcmFtcygpXG4gICAgY29uc3QgbWVyZ2VkUGFyYW1zID0gey4uLnRoaXMucXVlcnlQYXJhbWV0ZXJzKCksIC4uLnRoaXMuX3BhcmFtc31cblxuICAgIGlmICghbWVyZ2VkUGFyYW1zLmNvbnRyb2xsZXIpIG1lcmdlZFBhcmFtcy5jb250cm9sbGVyID0gdGhpcy5fY29udHJvbGxlclxuXG4gICAgcmV0dXJuIG1lcmdlZFBhcmFtc1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcXVlcnkgcGFyYW1ldGVycy5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsID8+fSAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcXVlcnlQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5fcmVxdWVzdC5wYXRoKCkuc3BsaXQoXCI/XCIpWzFdXG5cbiAgICBpZiAoIXF1ZXJ5KSByZXR1cm4ge31cblxuICAgIHRyeSB7XG4gICAgICAvKipcbiAgICAgICAqIFVucGFyc2VkIHBhcmFtcy5cbiAgICAgICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCA/Pn0gKi9cbiAgICAgIGNvbnN0IHVucGFyc2VkUGFyYW1zID0gcXVlcnlzdHJpbmcucGFyc2UocXVlcnkpXG4gICAgICBjb25zdCBwYXJhbXNUb09iamVjdCA9IG5ldyBQYXJhbXNUb09iamVjdCh1bnBhcnNlZFBhcmFtcylcblxuICAgICAgcmV0dXJuIHBhcmFtc1RvT2JqZWN0LnRvT2JqZWN0KClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZW5zdXJlZEVycm9yID0gLyoqIEB0eXBlIHtFcnJvciAmIHt2ZWxvY2lvdXNDb250ZXh0PzogUmVjb3JkPHN0cmluZywgPz59fSAqLyAoZXJyb3IpXG5cbiAgICAgIGVuc3VyZWRFcnJvci52ZWxvY2lvdXNDb250ZXh0ID0ge1xuICAgICAgICAuLi4oZW5zdXJlZEVycm9yLnZlbG9jaW91c0NvbnRleHQgfHwge30pLFxuICAgICAgICByZXF1ZXN0UGFyc2luZzoge1xuICAgICAgICAgIGh0dHBNZXRob2Q6IHRoaXMuX3JlcXVlc3QuaHR0cE1ldGhvZCgpLFxuICAgICAgICAgIHBhcmFtZXRlcktleXM6IE9iamVjdC5rZXlzKHF1ZXJ5c3RyaW5nLnBhcnNlKHF1ZXJ5KSksXG4gICAgICAgICAgcGF0aDogdGhpcy5fcmVxdWVzdC5wYXRoKCksXG4gICAgICAgICAgcXVlcnlQcmV2aWV3OiBxdWVyeS5sZW5ndGggPiAzMDAgPyBgJHtxdWVyeS5zbGljZSgwLCAzMDApfS4uLmAgOiBxdWVyeSxcbiAgICAgICAgICBzdGFnZTogXCJxdWVyeS1wYXJhbWV0ZXJzXCJcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlbnN1cmVkRXJyb3JcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyByZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJnc10gLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtvYmplY3R9IFthcmdzLmpzb25dIC0gSnNvbi5cbiAgICogQHBhcmFtIHtudW1iZXIgfCBzdHJpbmd9IFthcmdzLnN0YXR1c10gLSBTdGF0dXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyByZW5kZXIoe2pzb24sIHN0YXR1cywgLi4ucmVzdEFyZ3N9ID0ge30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgLy8gQXBwbHkgdGhlIHN0YXR1cyBCRUZPUkUgZGVsZWdhdGluZyB0byByZW5kZXJKc29uQXJnL3JlbmRlclZpZXcgc29cbiAgICAvLyBgcmVuZGVyKHtqc29uOiB7Li4ufSwgc3RhdHVzOiA0MjJ9KWAgcHJvZHVjZXMgYSA0MjIgcmVzcG9uc2Ugd2l0aFxuICAgIC8vIGEgSlNPTiBib2R5LiBUaGUgcHJldmlvdXMgb3JkZXIgc2hvcnQtY2lyY3VpdGVkIHZpYSBgcmV0dXJuXG4gICAgLy8gdGhpcy5yZW5kZXJKc29uQXJnKGpzb24pYCBhbmQgc2lsZW50bHkgZHJvcHBlZCB0aGUgc3RhdHVzIGFyZy5cbiAgICBpZiAoc3RhdHVzKSB7XG4gICAgICB0aGlzLl9yZXNwb25zZS5zZXRTdGF0dXMoc3RhdHVzKVxuICAgIH1cblxuICAgIGlmIChqc29uKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJKc29uQXJnKGpzb24pXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVuZGVyVmlldygpXG4gIH1cblxuICAvKipcbiAgICogUnVucyByZW5kZXIganNvbiBhcmcuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gSlNPTiBwYXlsb2FkLlxuICAgKi9cbiAgcmVuZGVySnNvbkFyZyhqc29uKSB7XG4gICAgcmV0dXJuIHRoaXMuX21lYXN1cmVWaWV3UmVuZGVyKCgpID0+IHtcbiAgICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShzZXJpYWxpemVGcm9udGVuZE1vZGVsVHJhbnNwb3J0VmFsdWUoanNvbiwgdGhpcy50cmFuc3BvcnRTZXJpYWxpemF0aW9uT3B0aW9ucygpKSlcblxuICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOFwiKVxuICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0Qm9keShib2R5KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyByZW5kZXIgdmlldy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIHJlbmRlclZpZXcoKSB7XG4gICAgY29uc3QgcmVxdWVzdFRpbWluZyA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldEN1cnJlbnRSZXF1ZXN0VGltaW5nKClcblxuICAgIHJldHVybiByZXF1ZXN0VGltaW5nXG4gICAgICA/IHJlcXVlc3RUaW1pbmcubWVhc3VyZShcInZpZXdzXCIsIGFzeW5jICgpID0+IGF3YWl0IHRoaXMuX3JlbmRlclZpZXdBY3R1YWwoKSlcbiAgICAgIDogdGhpcy5fcmVuZGVyVmlld0FjdHVhbCgpXG4gIH1cblxuICAvKipcbiAgICogUnVucyByZW5kZXIgdmlldyBhY3R1YWwuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBfcmVuZGVyVmlld0FjdHVhbCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgdmlld1BhdGggPSBgJHt0aGlzLl92aWV3UGF0aH0vJHtpbmZsZWN0aW9uLmRhc2hlcml6ZShpbmZsZWN0aW9uLnVuZGVyc2NvcmUodGhpcy5fYWN0aW9uKSl9LmVqc2BcbiAgICAgIGNvbnN0IGFjdHVhbFZpZXdQYXJhbXMgPSBpbmNvcnBvcmF0ZSh7Y29udHJvbGxlcjogdGhpc30sIHRoaXMudmlld1BhcmFtcylcblxuICAgICAgZWpzLnJlbmRlckZpbGUodmlld1BhdGgsIGFjdHVhbFZpZXdQYXJhbXMsIHt9LCAoZXJyLCBzdHIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNvbnN0IHJlbmRlckVycm9yID0gLyoqIEB0eXBlIHtFcnJvciAmIHtjb2RlPzogc3RyaW5nfX0gKi8gKGVycilcblxuICAgICAgICAgIGlmIChyZW5kZXJFcnJvci5jb2RlID09PSBcIkVOT0VOVFwiKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBNaXNzaW5nIHZpZXcgZmlsZTogJHt2aWV3UGF0aH1gKVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fcmVzcG9uc2UuZ2V0U3RhdHVzQ29kZSgpID09PSAyMDApIHtcbiAgICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc2V0U3RhdHVzKFwiaW50ZXJuYWwtc2VydmVyLWVycm9yXCIpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcIilcbiAgICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEJvZHkoYE1pc3NpbmcgdmlldyBmaWxlOiAke3ZpZXdQYXRofWApXG5cbiAgICAgICAgICAgIHJlc29sdmUodW5kZWZpbmVkKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QocmVuZGVyRXJyb3IpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvaHRtbDsgY2hhcnNldD1VVEYtOFwiKVxuICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlLnNldEJvZHkoc3RyKVxuXG4gICAgICAgICAgcmVzb2x2ZSh1bmRlZmluZWQpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHJlbmRlciB0ZXh0LlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICByZW5kZXJUZXh0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInJlbmRlclRleHQgc3R1YlwiKVxuICB9XG5cbiAgLyoqXG4gICAqIFN0cmVhbXMgYSBmaWxlIHJlc3BvbnNlIGZyb20gZGlzayB3aXRob3V0IGxvYWRpbmcgdGhlIGZ1bGwgZmlsZSBpbnRvIGNvbnRyb2xsZXIgbWVtb3J5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZVBhdGggLSBGaWxlIHBhdGguXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbYXJnc10gLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmNvbnRlbnRUeXBlXSAtIENvbnRlbnQgdHlwZS5cbiAgICogQHBhcmFtIHtudW1iZXIgfCBzdHJpbmd9IFthcmdzLnN0YXR1c10gLSBTdGF0dXMuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNlbmRGaWxlKGZpbGVQYXRoLCBhcmdzID0ge30pIHtcbiAgICB0aGlzLl9tZWFzdXJlVmlld1JlbmRlcigoKSA9PiB7XG4gICAgICBjb25zdCB7Y29udGVudFR5cGUsIHN0YXR1cywgLi4ucmVzdEFyZ3N9ID0gYXJnc1xuXG4gICAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgICBpZiAodHlwZW9mIGZpbGVQYXRoICE9PSBcInN0cmluZ1wiIHx8IGZpbGVQYXRoLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBmaWxlIHBhdGggdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nLCBnb3Q6ICR7U3RyaW5nKGZpbGVQYXRoKX1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkZXRlY3RlZENvbnRlbnRUeXBlID0gY29udGVudFR5cGUgfHwgdGhpcy5zZW5kRmlsZUNvbnRlbnRUeXBlKGZpbGVQYXRoKVxuXG4gICAgICBpZiAoZGV0ZWN0ZWRDb250ZW50VHlwZSkge1xuICAgICAgICB0aGlzLl9yZXNwb25zZS5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgZGV0ZWN0ZWRDb250ZW50VHlwZSlcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICB0aGlzLl9yZXNwb25zZS5zZXRTdGF0dXMoc3RhdHVzKVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZXNwb25zZS5zZXRGaWxlUGF0aChmaWxlUGF0aClcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgbWVhc3VyZSB2aWV3IHJlbmRlci5cbiAgICogQHRlbXBsYXRlIFRcbiAgICogQHBhcmFtIHsoKSA9PiBUfSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIG1lYXN1cmUuXG4gICAqIEByZXR1cm5zIHtUfSAtIENhbGxiYWNrIHJlc3VsdC5cbiAgICovXG4gIF9tZWFzdXJlVmlld1JlbmRlcihjYWxsYmFjaykge1xuICAgIGNvbnN0IHJlcXVlc3RUaW1pbmcgPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXRDdXJyZW50UmVxdWVzdFRpbWluZygpXG5cbiAgICByZXR1cm4gcmVxdWVzdFRpbWluZ1xuICAgICAgPyByZXF1ZXN0VGltaW5nLm1lYXN1cmVTeW5jKFwidmlld3NcIiwgY2FsbGJhY2spXG4gICAgICA6IGNhbGxiYWNrKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNlbmQgZmlsZSBjb250ZW50IHR5cGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aCAtIEZpbGUgcGF0aC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBDb250ZW50IHR5cGUgdmFsdWUuXG4gICAqL1xuICBzZW5kRmlsZUNvbnRlbnRUeXBlKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKS50b0xvd2VyQ2FzZSgpXG5cbiAgICBpZiAoZXh0ZW5zaW9uID09PSBcIi53YXNtXCIpIHJldHVybiBcImFwcGxpY2F0aW9uL3dhc21cIlxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLmpzXCIpIHJldHVybiBcInRleHQvamF2YXNjcmlwdDsgY2hhcnNldD1VVEYtOFwiXG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gXCIuanNvblwiKSByZXR1cm4gXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04XCJcbiAgICBpZiAoZXh0ZW5zaW9uID09PSBcIi5jc3NcIikgcmV0dXJuIFwidGV4dC9jc3M7IGNoYXJzZXQ9VVRGLThcIlxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLmh0bWxcIikgcmV0dXJuIFwidGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCJcbiAgICBpZiAoZXh0ZW5zaW9uID09PSBcIi50eHRcIikgcmV0dXJuIFwidGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFwiXG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gXCIuc3ZnXCIpIHJldHVybiBcImltYWdlL3N2Zyt4bWxcIlxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLnBuZ1wiKSByZXR1cm4gXCJpbWFnZS9wbmdcIlxuICAgIGlmIChleHRlbnNpb24gPT09IFwiLmpwZ1wiIHx8IGV4dGVuc2lvbiA9PT0gXCIuanBlZ1wiKSByZXR1cm4gXCJpbWFnZS9qcGVnXCJcbiAgICBpZiAoZXh0ZW5zaW9uID09PSBcIi5naWZcIikgcmV0dXJuIFwiaW1hZ2UvZ2lmXCJcblxuICAgIHJldHVybiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXG4gIH1cblxuICAvKipcbiAgICogUnVucyBjdXJyZW50IGFiaWxpdHkuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2F1dGhvcml6YXRpb24vYWJpbGl0eS5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAtIEN1cnJlbnQgYWJpbGl0eSBmb3IgcmVxdWVzdCBzY29wZS5cbiAgICovXG4gIGN1cnJlbnRBYmlsaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXRDdXJyZW50QWJpbGl0eSgpXG4gIH1cblxuICAvKipcbiAgICogUnVucyByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9odHRwLXNlcnZlci9jbGllbnQvcmVxdWVzdC5qc1wiKS5kZWZhdWx0fSAtIFRoZSByZXF1ZXN0LlxuICAgKi9cbiAgcmVxdWVzdCgpIHsgcmV0dXJuIHRoaXMuX3JlcXVlc3QgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHJlc3BvbnNlLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9odHRwLXNlcnZlci9jbGllbnQvcmVzcG9uc2UuanNcIikuZGVmYXVsdH0gLSBUaGUgcmVzcG9uc2UuXG4gICAqL1xuICByZXNwb25zZSgpIHsgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlIH1cbn1cbiJdfQ==
|
|
@@ -16,18 +16,26 @@ export function formatDateForDatabase(value: Date, { databaseType }: {
|
|
|
16
16
|
}): string;
|
|
17
17
|
/**
|
|
18
18
|
* Normalizes a record write string into a Date when it is a recognized datetime string.
|
|
19
|
-
* Timezone-less strings are
|
|
19
|
+
* Timezone-less strings are interpreted in the given timezone when present, otherwise UTC.
|
|
20
20
|
* @param {string} value - Value to normalize.
|
|
21
|
+
* @param {object} [options] - Parse options.
|
|
22
|
+
* @param {string | undefined} [options.timeZone] - Timezone for timezone-less strings.
|
|
21
23
|
* @returns {Date | string} - Normalized value.
|
|
22
24
|
*/
|
|
23
|
-
export function normalizeDateStringForWrite(value: string
|
|
25
|
+
export function normalizeDateStringForWrite(value: string, { timeZone }?: {
|
|
26
|
+
timeZone?: string | undefined;
|
|
27
|
+
}): Date | string;
|
|
24
28
|
/**
|
|
25
29
|
* Normalizes a record write value into a Date when it is a recognized datetime string.
|
|
26
|
-
* Timezone-less strings are
|
|
30
|
+
* Timezone-less strings are interpreted in the given timezone when present, otherwise UTC.
|
|
27
31
|
* @param {Date | string | null | undefined} value - Value to normalize.
|
|
32
|
+
* @param {object} [options] - Parse options.
|
|
33
|
+
* @param {string | undefined} [options.timeZone] - Timezone for timezone-less strings.
|
|
28
34
|
* @returns {Date | string | null | undefined} - Normalized value.
|
|
29
35
|
*/
|
|
30
|
-
export function normalizeDateValueForWrite(value: Date | string | null | undefined
|
|
36
|
+
export function normalizeDateValueForWrite(value: Date | string | null | undefined, { timeZone }?: {
|
|
37
|
+
timeZone?: string | undefined;
|
|
38
|
+
}): Date | string | null | undefined;
|
|
31
39
|
/**
|
|
32
40
|
* Normalizes a database value into a Date for record reads.
|
|
33
41
|
* SQLite timezone-less rows are legacy local wall-clock rows produced before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime-storage.d.ts","sourceRoot":"","sources":["../../../src/database/datetime-storage.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"datetime-storage.d.ts","sourceRoot":"","sources":["../../../src/database/datetime-storage.js"],"names":[],"mappings":"AA8HA;;;;GAIG;AACH,2CAHW,MAAM,GACJ,OAAO,CAInB;AAED;;;;;;GAMG;AACH,6CALW,IAAI,oBAEZ;IAAqB,YAAY,EAAzB,MAAM;CACd,GAAU,MAAM,CAoBlB;AAED;;;;;;;GAOG;AACH,mDALW,MAAM,iBAEd;IAAqC,QAAQ,GAArC,MAAM,GAAG,SAAS;CAC1B,GAAU,IAAI,GAAG,MAAM,CAOzB;AAED;;;;;;;GAOG;AACH,kDALW,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,iBAExC;IAAqC,QAAQ,GAArC,MAAM,GAAG,SAAS;CAC1B,GAAU,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAM5C;AAED;;;;;;;;GAQG;AACH,iDALW,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,oBAExC;IAAqB,YAAY,EAAzB,MAAM;CACd,GAAU,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAW5C;AAED;;;;;;;;GAQG;AACH,0DANW,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,8CAExC;IAAqB,YAAY,EAAzB,MAAM;IACoB,wBAAwB,GAAlD,MAAM,GAAG,SAAS;CAC1B,GAAU,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAa5C"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import isDate from "../utils/is-date.js";
|
|
3
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
4
|
+
import { validateTimeZone } from "../time-zone.js";
|
|
3
5
|
const dateTimeWithTimezonePattern = /^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:[zZ]|[+-]\d{2}:\d{2})$/;
|
|
4
6
|
const dateTimeWithoutTimezonePattern = /^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?$/;
|
|
7
|
+
const dateTimeWithoutTimezonePartsPattern = /^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,9}))?$/;
|
|
5
8
|
const timezoneSuffixPattern = /(?:[zZ]|[+-]\d{2}:\d{2})$/;
|
|
6
9
|
/**
|
|
7
10
|
* Pads a numeric date/time part.
|
|
@@ -72,6 +75,39 @@ function parseTimezoneLessDateTimeStringWithOffset(value, legacyLocalOffsetMinut
|
|
|
72
75
|
return value;
|
|
73
76
|
return new Date(utcDate.getTime() + (legacyLocalOffsetMinutes * 60 * 1000));
|
|
74
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Parses a timezone-less datetime string in a named timezone.
|
|
80
|
+
* @param {string} value - Datetime string.
|
|
81
|
+
* @param {string} timeZone - IANA timezone identifier.
|
|
82
|
+
* @returns {Date | string} - Parsed date or the original string when it is not a recognized datetime.
|
|
83
|
+
*/
|
|
84
|
+
function parseTimezoneLessDateTimeStringWithTimeZone(value, timeZone) {
|
|
85
|
+
const match = value.match(dateTimeWithoutTimezonePartsPattern);
|
|
86
|
+
if (!match)
|
|
87
|
+
return value;
|
|
88
|
+
const normalizedTimeZone = validateTimeZone(timeZone, "timeZone");
|
|
89
|
+
const fraction = (match[7] || "").padEnd(9, "0");
|
|
90
|
+
try {
|
|
91
|
+
const zonedDateTime = Temporal.ZonedDateTime.from({
|
|
92
|
+
day: Number(match[3]),
|
|
93
|
+
hour: Number(match[4]),
|
|
94
|
+
microsecond: Number(fraction.slice(3, 6)),
|
|
95
|
+
millisecond: Number(fraction.slice(0, 3)),
|
|
96
|
+
minute: Number(match[5]),
|
|
97
|
+
month: Number(match[2]),
|
|
98
|
+
nanosecond: Number(fraction.slice(6, 9)),
|
|
99
|
+
second: Number(match[6]),
|
|
100
|
+
timeZone: normalizedTimeZone,
|
|
101
|
+
year: Number(match[1])
|
|
102
|
+
});
|
|
103
|
+
return new Date(Number(zonedDateTime.epochMilliseconds));
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
if (error instanceof RangeError)
|
|
107
|
+
return value;
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
75
111
|
/**
|
|
76
112
|
* Checks whether a string has a datetime timezone suffix.
|
|
77
113
|
* @param {string} value - Value to check.
|
|
@@ -108,25 +144,31 @@ export function formatDateForDatabase(value, { databaseType }) {
|
|
|
108
144
|
}
|
|
109
145
|
/**
|
|
110
146
|
* Normalizes a record write string into a Date when it is a recognized datetime string.
|
|
111
|
-
* Timezone-less strings are
|
|
147
|
+
* Timezone-less strings are interpreted in the given timezone when present, otherwise UTC.
|
|
112
148
|
* @param {string} value - Value to normalize.
|
|
149
|
+
* @param {object} [options] - Parse options.
|
|
150
|
+
* @param {string | undefined} [options.timeZone] - Timezone for timezone-less strings.
|
|
113
151
|
* @returns {Date | string} - Normalized value.
|
|
114
152
|
*/
|
|
115
|
-
export function normalizeDateStringForWrite(value) {
|
|
153
|
+
export function normalizeDateStringForWrite(value, { timeZone } = {}) {
|
|
116
154
|
if (hasDateTimeTimezone(value))
|
|
117
155
|
return parseTimezoneQualifiedDateTimeString(value);
|
|
156
|
+
if (timeZone !== undefined)
|
|
157
|
+
return parseTimezoneLessDateTimeStringWithTimeZone(value, timeZone);
|
|
118
158
|
return parseTimezoneLessDateTimeStringAsUtc(value);
|
|
119
159
|
}
|
|
120
160
|
/**
|
|
121
161
|
* Normalizes a record write value into a Date when it is a recognized datetime string.
|
|
122
|
-
* Timezone-less strings are
|
|
162
|
+
* Timezone-less strings are interpreted in the given timezone when present, otherwise UTC.
|
|
123
163
|
* @param {Date | string | null | undefined} value - Value to normalize.
|
|
164
|
+
* @param {object} [options] - Parse options.
|
|
165
|
+
* @param {string | undefined} [options.timeZone] - Timezone for timezone-less strings.
|
|
124
166
|
* @returns {Date | string | null | undefined} - Normalized value.
|
|
125
167
|
*/
|
|
126
|
-
export function normalizeDateValueForWrite(value) {
|
|
168
|
+
export function normalizeDateValueForWrite(value, { timeZone } = {}) {
|
|
127
169
|
if (typeof value != "string")
|
|
128
170
|
return value;
|
|
129
|
-
return normalizeDateStringForWrite(value);
|
|
171
|
+
return normalizeDateStringForWrite(value, { timeZone });
|
|
130
172
|
}
|
|
131
173
|
/**
|
|
132
174
|
* Normalizes a database value into a Date for record reads.
|
|
@@ -171,4 +213,4 @@ export function convertLegacyDateValueToUtcStorage(value, { databaseType, legacy
|
|
|
171
213
|
return value;
|
|
172
214
|
return formatDateForDatabase(parsedDate, { databaseType });
|
|
173
215
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kYXRldGltZS1zdG9yYWdlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQTtBQUV4QyxNQUFNLDJCQUEyQixHQUFHLGdGQUFnRixDQUFBO0FBQ3BILE1BQU0sOEJBQThCLEdBQUcsd0RBQXdELENBQUE7QUFDL0YsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQTtBQUV6RDs7Ozs7R0FLRztBQUNILFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQzVDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUywwQkFBMEIsQ0FBQyxLQUFLO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsb0NBQW9DLENBQUMsS0FBSztJQUNqRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBRTFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUUvRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUE7SUFFekMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUM1QixDQUFDO0FBRUQ7Ozs7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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgaXNEYXRlIGZyb20gXCIuLi91dGlscy9pcy1kYXRlLmpzXCJcblxuY29uc3QgZGF0ZVRpbWVXaXRoVGltZXpvbmVQYXR0ZXJuID0gL15cXGR7NH0tXFxkezJ9LVxcZHsyfVsgVF1cXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZHsxLDl9KT8oPzpbelpdfFsrLV1cXGR7Mn06XFxkezJ9KSQvXG5jb25zdCBkYXRlVGltZVdpdGhvdXRUaW1lem9uZVBhdHRlcm4gPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9WyBUXVxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkezEsOX0pPyQvXG5jb25zdCB0aW1lem9uZVN1ZmZpeFBhdHRlcm4gPSAvKD86W3paXXxbKy1dXFxkezJ9OlxcZHsyfSkkL1xuXG4vKipcbiAqIFBhZHMgYSBudW1lcmljIGRhdGUvdGltZSBwYXJ0LlxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gTnVtZXJpYyBwYXJ0LlxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCAtIFRhcmdldCBsZW5ndGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFBhZGRlZCBwYXJ0LlxuICovXG5mdW5jdGlvbiBwYWQodmFsdWUsIGxlbmd0aCA9IDIpIHtcbiAgcmV0dXJuIFN0cmluZyh2YWx1ZSkucGFkU3RhcnQobGVuZ3RoLCBcIjBcIilcbn1cblxuLyoqXG4gKiBSZXBsYWNlcyBTUUwtc3R5bGUgZGF0ZXRpbWUgc2VwYXJhdG9ycyB3aXRoIElTTyBzZXBhcmF0b3JzIGZvciBwYXJzaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRGF0ZXRpbWUgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gLSBEYXRldGltZSBzdHJpbmcgd2l0aCBhIGBUYCBzZXBhcmF0b3IuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVUaW1lU2VwYXJhdG9yKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5pbmNsdWRlcyhcIlRcIikgPyB2YWx1ZSA6IHZhbHVlLnJlcGxhY2UoXCIgXCIsIFwiVFwiKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIGRhdGV0aW1lIHN0cmluZyB3aXRoIGFuIGV4cGxpY2l0IHRpbWV6b25lLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRGF0ZXRpbWUgc3RyaW5nLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gUGFyc2VkIGRhdGUgb3IgdGhlIG9yaWdpbmFsIHN0cmluZyB3aGVuIGl0IGlzIG5vdCBhIHJlY29nbml6ZWQgZGF0ZXRpbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVGltZXpvbmVRdWFsaWZpZWREYXRlVGltZVN0cmluZyh2YWx1ZSkge1xuICBpZiAoIWRhdGVUaW1lV2l0aFRpbWV6b25lUGF0dGVybi50ZXN0KHZhbHVlKSkgcmV0dXJuIHZhbHVlXG5cbiAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5wYXJzZShub3JtYWxpemVEYXRlVGltZVNlcGFyYXRvcih2YWx1ZSkpXG5cbiAgaWYgKE51bWJlci5pc05hTih0aW1lc3RhbXApKSByZXR1cm4gdmFsdWVcblxuICByZXR1cm4gbmV3IERhdGUodGltZXN0YW1wKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIHRpbWV6b25lLWxlc3MgZGF0ZXRpbWUgc3RyaW5nIGFzIFVUQy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIERhdGV0aW1lIHN0cmluZy5cbiAqIEByZXR1cm5zIHtEYXRlIHwgc3RyaW5nfSAtIFBhcnNlZCBkYXRlIG9yIHRoZSBvcmlnaW5hbCBzdHJpbmcgd2hlbiBpdCBpcyBub3QgYSByZWNvZ25pemVkIGRhdGV0aW1lLlxuICovXG5mdW5jdGlvbiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNVdGModmFsdWUpIHtcbiAgaWYgKCFkYXRlVGltZVdpdGhvdXRUaW1lem9uZVBhdHRlcm4udGVzdCh2YWx1ZSkpIHJldHVybiB2YWx1ZVxuXG4gIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUucGFyc2UoYCR7bm9ybWFsaXplRGF0ZVRpbWVTZXBhcmF0b3IodmFsdWUpfVpgKVxuXG4gIGlmIChOdW1iZXIuaXNOYU4odGltZXN0YW1wKSkgcmV0dXJuIHZhbHVlXG5cbiAgcmV0dXJuIG5ldyBEYXRlKHRpbWVzdGFtcClcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSB0aW1lem9uZS1sZXNzIGRhdGV0aW1lIHN0cmluZyBhcyB0aGUgY3VycmVudCBydW50aW1lJ3MgbG9jYWwgd2FsbC1jbG9jayB0aW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRGF0ZXRpbWUgc3RyaW5nLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gUGFyc2VkIGRhdGUgb3IgdGhlIG9yaWdpbmFsIHN0cmluZyB3aGVuIGl0IGlzIG5vdCBhIHJlY29nbml6ZWQgZGF0ZXRpbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdBc0xvY2FsKHZhbHVlKSB7XG4gIGlmICghZGF0ZVRpbWVXaXRob3V0VGltZXpvbmVQYXR0ZXJuLnRlc3QodmFsdWUpKSByZXR1cm4gdmFsdWVcblxuICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLnBhcnNlKG5vcm1hbGl6ZURhdGVUaW1lU2VwYXJhdG9yKHZhbHVlKSlcblxuICBpZiAoTnVtYmVyLmlzTmFOKHRpbWVzdGFtcCkpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBuZXcgRGF0ZSh0aW1lc3RhbXApXG59XG5cbi8qKlxuICogUGFyc2VzIGEgdGltZXpvbmUtbGVzcyBsZWdhY3kgZGF0ZXRpbWUgc3RyaW5nIHdpdGggYW4gZXhwbGljaXQgbG9jYWwgb2Zmc2V0LlxuICogVGhlIG9mZnNldCBmb2xsb3dzIEphdmFTY3JpcHQncyBgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCgpYCBzaWduIGNvbnZlbnRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBEYXRldGltZSBzdHJpbmcuXG4gKiBAcGFyYW0ge251bWJlcn0gbGVnYWN5TG9jYWxPZmZzZXRNaW51dGVzIC0gVVRDLW1pbnVzLWxvY2FsIG9mZnNldCBpbiBtaW51dGVzLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gUGFyc2VkIGRhdGUgb3IgdGhlIG9yaWdpbmFsIHN0cmluZyB3aGVuIGl0IGlzIG5vdCBhIHJlY29nbml6ZWQgZGF0ZXRpbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdXaXRoT2Zmc2V0KHZhbHVlLCBsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXMpIHtcbiAgY29uc3QgdXRjRGF0ZSA9IHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdBc1V0Yyh2YWx1ZSlcblxuICBpZiAoIWlzRGF0ZSh1dGNEYXRlKSkgcmV0dXJuIHZhbHVlXG5cbiAgcmV0dXJuIG5ldyBEYXRlKHV0Y0RhdGUuZ2V0VGltZSgpICsgKGxlZ2FjeUxvY2FsT2Zmc2V0TWludXRlcyAqIDYwICogMTAwMCkpXG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBzdHJpbmcgaGFzIGEgZGF0ZXRpbWUgdGltZXpvbmUgc3VmZml4LlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSBzdHJpbmcgZW5kcyB3aXRoIGBaYCBvciBhbiBvZmZzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNEYXRlVGltZVRpbWV6b25lKHZhbHVlKSB7XG4gIHJldHVybiB0aW1lem9uZVN1ZmZpeFBhdHRlcm4udGVzdCh2YWx1ZSlcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgRGF0ZSBmb3IgZGF0YWJhc2Ugc3RvcmFnZSBhcyBhIFVUQyBpbnN0YW50LlxuICogQHBhcmFtIHtEYXRlfSB2YWx1ZSAtIERhdGUgdmFsdWUuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kYXRhYmFzZVR5cGUgLSBEYXRhYmFzZSBkcml2ZXIgdHlwZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gRGF0YWJhc2UgZGF0ZXRpbWUgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUZvckRhdGFiYXNlKHZhbHVlLCB7ZGF0YWJhc2VUeXBlfSkge1xuICBpZiAoZGF0YWJhc2VUeXBlID09IFwic3FsaXRlXCIpIHJldHVybiB2YWx1ZS50b0lTT1N0cmluZygpXG5cbiAgcmV0dXJuIFtcbiAgICB2YWx1ZS5nZXRVVENGdWxsWWVhcigpLFxuICAgIFwiLVwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENNb250aCgpICsgMSksXG4gICAgXCItXCIsXG4gICAgcGFkKHZhbHVlLmdldFVUQ0RhdGUoKSksXG4gICAgXCIgXCIsXG4gICAgcGFkKHZhbHVlLmdldFVUQ0hvdXJzKCkpLFxuICAgIFwiOlwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENNaW51dGVzKCkpLFxuICAgIFwiOlwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENTZWNvbmRzKCkpLFxuICAgIFwiLlwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENNaWxsaXNlY29uZHMoKSwgMylcbiAgXS5qb2luKFwiXCIpXG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHJlY29yZCB3cml0ZSBzdHJpbmcgaW50byBhIERhdGUgd2hlbiBpdCBpcyBhIHJlY29nbml6ZWQgZGF0ZXRpbWUgc3RyaW5nLlxuICogVGltZXpvbmUtbGVzcyBzdHJpbmdzIGFyZSBleHRlcm5hbCBpbnB1dCBhbmQgYXJlIHRyZWF0ZWQgYXMgVVRDLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVmFsdWUgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmd9IC0gTm9ybWFsaXplZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVTdHJpbmdGb3JXcml0ZSh2YWx1ZSkge1xuICBpZiAoaGFzRGF0ZVRpbWVUaW1lem9uZSh2YWx1ZSkpIHJldHVybiBwYXJzZVRpbWV6b25lUXVhbGlmaWVkRGF0ZVRpbWVTdHJpbmcodmFsdWUpXG5cbiAgcmV0dXJuIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdBc1V0Yyh2YWx1ZSlcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcmVjb3JkIHdyaXRlIHZhbHVlIGludG8gYSBEYXRlIHdoZW4gaXQgaXMgYSByZWNvZ25pemVkIGRhdGV0aW1lIHN0cmluZy5cbiAqIFRpbWV6b25lLWxlc3Mgc3RyaW5ncyBhcmUgZXh0ZXJuYWwgaW5wdXQgYW5kIGFyZSB0cmVhdGVkIGFzIFVUQy5cbiAqIEBwYXJhbSB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlIC0gVmFsdWUgdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSAtIE5vcm1hbGl6ZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEYXRlVmFsdWVGb3JXcml0ZSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9IFwic3RyaW5nXCIpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBub3JtYWxpemVEYXRlU3RyaW5nRm9yV3JpdGUodmFsdWUpXG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIGRhdGFiYXNlIHZhbHVlIGludG8gYSBEYXRlIGZvciByZWNvcmQgcmVhZHMuXG4gKiBTUUxpdGUgdGltZXpvbmUtbGVzcyByb3dzIGFyZSBsZWdhY3kgbG9jYWwgd2FsbC1jbG9jayByb3dzIHByb2R1Y2VkIGJlZm9yZVxuICogVVRDIHN0b3JhZ2UuIE5ldyBTUUxpdGUgd3JpdGVzIGluY2x1ZGUgYFpgLCBzbyB0aGV5IHRha2UgdGhlIGV4YWN0IGJyYW5jaC5cbiAqIEBwYXJhbSB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlIC0gU3RvcmVkIGRhdGFiYXNlIHZhbHVlLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZGF0YWJhc2VUeXBlIC0gRGF0YWJhc2UgZHJpdmVyIHR5cGUuXG4gKiBAcmV0dXJucyB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IC0gTm9ybWFsaXplZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVWYWx1ZUZvclJlYWQodmFsdWUsIHtkYXRhYmFzZVR5cGV9KSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdmFsdWVcblxuICBpZiAoaXNEYXRlKHZhbHVlKSkgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFRpbWUoKSlcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSBcInN0cmluZ1wiKSByZXR1cm4gdmFsdWVcbiAgaWYgKGhhc0RhdGVUaW1lVGltZXpvbmUodmFsdWUpKSByZXR1cm4gcGFyc2VUaW1lem9uZVF1YWxpZmllZERhdGVUaW1lU3RyaW5nKHZhbHVlKVxuICBpZiAoZGF0YWJhc2VUeXBlID09IFwic3FsaXRlXCIpIHJldHVybiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNMb2NhbCh2YWx1ZSlcblxuICByZXR1cm4gcGFyc2VUaW1lem9uZUxlc3NEYXRlVGltZVN0cmluZ0FzVXRjKHZhbHVlKVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGVnYWN5IHRpbWV6b25lLWxlc3MgZGF0ZXRpbWUgdmFsdWUgaW50byB0aGUgbmV3IFVUQyBkYXRhYmFzZSBzdG9yYWdlIGZvcm1hdC5cbiAqIFRoZSBvcHRpb25hbCBvZmZzZXQgZm9sbG93cyBKYXZhU2NyaXB0J3MgYERhdGUjZ2V0VGltZXpvbmVPZmZzZXQoKWAgc2lnbiBjb252ZW50aW9uLlxuICogQHBhcmFtIHtEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gdmFsdWUgLSBMZWdhY3kgdmFsdWUuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kYXRhYmFzZVR5cGUgLSBEYXRhYmFzZSBkcml2ZXIgdHlwZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbYXJncy5sZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXNdIC0gVVRDLW1pbnVzLWxvY2FsIG9mZnNldCBpbiBtaW51dGVzLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSAtIENvbnZlcnRlZCBkYXRhYmFzZSB2YWx1ZSBvciB0aGUgb3JpZ2luYWwgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TGVnYWN5RGF0ZVZhbHVlVG9VdGNTdG9yYWdlKHZhbHVlLCB7ZGF0YWJhc2VUeXBlLCBsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXN9KSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIikgcmV0dXJuIHZhbHVlXG4gIGlmIChoYXNEYXRlVGltZVRpbWV6b25lKHZhbHVlKSkgcmV0dXJuIHZhbHVlXG5cbiAgY29uc3QgcGFyc2VkRGF0ZSA9IGxlZ2FjeUxvY2FsT2Zmc2V0TWludXRlcyA9PT0gdW5kZWZpbmVkXG4gICAgPyBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNMb2NhbCh2YWx1ZSlcbiAgICA6IHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdXaXRoT2Zmc2V0KHZhbHVlLCBsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXMpXG5cbiAgaWYgKCFpc0RhdGUocGFyc2VkRGF0ZSkpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBmb3JtYXREYXRlRm9yRGF0YWJhc2UocGFyc2VkRGF0ZSwge2RhdGFiYXNlVHlwZX0pXG59XG4iXX0=
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9kYXRldGltZS1zdG9yYWdlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQTtBQUN4QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUE7QUFDOUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUE7QUFFaEQsTUFBTSwyQkFBMkIsR0FBRyxnRkFBZ0YsQ0FBQTtBQUNwSCxNQUFNLDhCQUE4QixHQUFHLHdEQUF3RCxDQUFBO0FBQy9GLE1BQU0sbUNBQW1DLEdBQUcsc0VBQXNFLENBQUE7QUFDbEgsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQTtBQUV6RDs7Ozs7R0FLRztBQUNILFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQzVDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUywwQkFBMEIsQ0FBQyxLQUFLO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsb0NBQW9DLENBQUMsS0FBSztJQUNqRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBRTFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FB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QUFDLEtBQUssQ0FBQyxDQUFBO0lBRWxGLE9BQU8sb0NBQW9DLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDcEQsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGtDQUFrQyxDQUFDLEtBQUssRUFBRSxFQUFDLFlBQVksRUFBRSx3QkFBd0IsRUFBQztJQUNoRyxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVE7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUMxQyxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBRTVDLE1BQU0sVUFBVSxHQUFHLHdCQUF3QixLQUFLLFNBQVM7UUFDdkQsQ0FBQyxDQUFDLHNDQUFzQyxDQUFDLEtBQUssQ0FBQztRQUMvQyxDQUFDLENBQUMseUNBQXlDLENBQUMsS0FBSyxFQUFFLHdCQUF3QixDQUFDLENBQUE7SUFFOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUVyQyxPQUFPLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxFQUFDLFlBQVksRUFBQyxDQUFDLENBQUE7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgaXNEYXRlIGZyb20gXCIuLi91dGlscy9pcy1kYXRlLmpzXCJcbmltcG9ydCB7VGVtcG9yYWx9IGZyb20gXCJAanMtdGVtcG9yYWwvcG9seWZpbGxcIlxuaW1wb3J0IHt2YWxpZGF0ZVRpbWVab25lfSBmcm9tIFwiLi4vdGltZS16b25lLmpzXCJcblxuY29uc3QgZGF0ZVRpbWVXaXRoVGltZXpvbmVQYXR0ZXJuID0gL15cXGR7NH0tXFxkezJ9LVxcZHsyfVsgVF1cXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZHsxLDl9KT8oPzpbelpdfFsrLV1cXGR7Mn06XFxkezJ9KSQvXG5jb25zdCBkYXRlVGltZVdpdGhvdXRUaW1lem9uZVBhdHRlcm4gPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9WyBUXVxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkezEsOX0pPyQvXG5jb25zdCBkYXRlVGltZVdpdGhvdXRUaW1lem9uZVBhcnRzUGF0dGVybiA9IC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSlbIFRdKFxcZHsyfSk6KFxcZHsyfSk6KFxcZHsyfSkoPzpcXC4oXFxkezEsOX0pKT8kL1xuY29uc3QgdGltZXpvbmVTdWZmaXhQYXR0ZXJuID0gLyg/Olt6Wl18WystXVxcZHsyfTpcXGR7Mn0pJC9cblxuLyoqXG4gKiBQYWRzIGEgbnVtZXJpYyBkYXRlL3RpbWUgcGFydC5cbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIE51bWVyaWMgcGFydC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGggLSBUYXJnZXQgbGVuZ3RoLlxuICogQHJldHVybnMge3N0cmluZ30gLSBQYWRkZWQgcGFydC5cbiAqL1xuZnVuY3Rpb24gcGFkKHZhbHVlLCBsZW5ndGggPSAyKSB7XG4gIHJldHVybiBTdHJpbmcodmFsdWUpLnBhZFN0YXJ0KGxlbmd0aCwgXCIwXCIpXG59XG5cbi8qKlxuICogUmVwbGFjZXMgU1FMLXN0eWxlIGRhdGV0aW1lIHNlcGFyYXRvcnMgd2l0aCBJU08gc2VwYXJhdG9ycyBmb3IgcGFyc2luZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIERhdGV0aW1lIHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gRGF0ZXRpbWUgc3RyaW5nIHdpdGggYSBgVGAgc2VwYXJhdG9yLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVEYXRlVGltZVNlcGFyYXRvcih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuaW5jbHVkZXMoXCJUXCIpID8gdmFsdWUgOiB2YWx1ZS5yZXBsYWNlKFwiIFwiLCBcIlRcIilcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBkYXRldGltZSBzdHJpbmcgd2l0aCBhbiBleHBsaWNpdCB0aW1lem9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIERhdGV0aW1lIHN0cmluZy5cbiAqIEByZXR1cm5zIHtEYXRlIHwgc3RyaW5nfSAtIFBhcnNlZCBkYXRlIG9yIHRoZSBvcmlnaW5hbCBzdHJpbmcgd2hlbiBpdCBpcyBub3QgYSByZWNvZ25pemVkIGRhdGV0aW1lLlxuICovXG5mdW5jdGlvbiBwYXJzZVRpbWV6b25lUXVhbGlmaWVkRGF0ZVRpbWVTdHJpbmcodmFsdWUpIHtcbiAgaWYgKCFkYXRlVGltZVdpdGhUaW1lem9uZVBhdHRlcm4udGVzdCh2YWx1ZSkpIHJldHVybiB2YWx1ZVxuXG4gIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUucGFyc2Uobm9ybWFsaXplRGF0ZVRpbWVTZXBhcmF0b3IodmFsdWUpKVxuXG4gIGlmIChOdW1iZXIuaXNOYU4odGltZXN0YW1wKSkgcmV0dXJuIHZhbHVlXG5cbiAgcmV0dXJuIG5ldyBEYXRlKHRpbWVzdGFtcClcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSB0aW1lem9uZS1sZXNzIGRhdGV0aW1lIHN0cmluZyBhcyBVVEMuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBEYXRldGltZSBzdHJpbmcuXG4gKiBAcmV0dXJucyB7RGF0ZSB8IHN0cmluZ30gLSBQYXJzZWQgZGF0ZSBvciB0aGUgb3JpZ2luYWwgc3RyaW5nIHdoZW4gaXQgaXMgbm90IGEgcmVjb2duaXplZCBkYXRldGltZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VUaW1lem9uZUxlc3NEYXRlVGltZVN0cmluZ0FzVXRjKHZhbHVlKSB7XG4gIGlmICghZGF0ZVRpbWVXaXRob3V0VGltZXpvbmVQYXR0ZXJuLnRlc3QodmFsdWUpKSByZXR1cm4gdmFsdWVcblxuICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLnBhcnNlKGAke25vcm1hbGl6ZURhdGVUaW1lU2VwYXJhdG9yKHZhbHVlKX1aYClcblxuICBpZiAoTnVtYmVyLmlzTmFOKHRpbWVzdGFtcCkpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBuZXcgRGF0ZSh0aW1lc3RhbXApXG59XG5cbi8qKlxuICogUGFyc2VzIGEgdGltZXpvbmUtbGVzcyBkYXRldGltZSBzdHJpbmcgYXMgdGhlIGN1cnJlbnQgcnVudGltZSdzIGxvY2FsIHdhbGwtY2xvY2sgdGltZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIERhdGV0aW1lIHN0cmluZy5cbiAqIEByZXR1cm5zIHtEYXRlIHwgc3RyaW5nfSAtIFBhcnNlZCBkYXRlIG9yIHRoZSBvcmlnaW5hbCBzdHJpbmcgd2hlbiBpdCBpcyBub3QgYSByZWNvZ25pemVkIGRhdGV0aW1lLlxuICovXG5mdW5jdGlvbiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNMb2NhbCh2YWx1ZSkge1xuICBpZiAoIWRhdGVUaW1lV2l0aG91dFRpbWV6b25lUGF0dGVybi50ZXN0KHZhbHVlKSkgcmV0dXJuIHZhbHVlXG5cbiAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5wYXJzZShub3JtYWxpemVEYXRlVGltZVNlcGFyYXRvcih2YWx1ZSkpXG5cbiAgaWYgKE51bWJlci5pc05hTih0aW1lc3RhbXApKSByZXR1cm4gdmFsdWVcblxuICByZXR1cm4gbmV3IERhdGUodGltZXN0YW1wKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIHRpbWV6b25lLWxlc3MgbGVnYWN5IGRhdGV0aW1lIHN0cmluZyB3aXRoIGFuIGV4cGxpY2l0IGxvY2FsIG9mZnNldC5cbiAqIFRoZSBvZmZzZXQgZm9sbG93cyBKYXZhU2NyaXB0J3MgYERhdGUjZ2V0VGltZXpvbmVPZmZzZXQoKWAgc2lnbiBjb252ZW50aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRGF0ZXRpbWUgc3RyaW5nLlxuICogQHBhcmFtIHtudW1iZXJ9IGxlZ2FjeUxvY2FsT2Zmc2V0TWludXRlcyAtIFVUQy1taW51cy1sb2NhbCBvZmZzZXQgaW4gbWludXRlcy5cbiAqIEByZXR1cm5zIHtEYXRlIHwgc3RyaW5nfSAtIFBhcnNlZCBkYXRlIG9yIHRoZSBvcmlnaW5hbCBzdHJpbmcgd2hlbiBpdCBpcyBub3QgYSByZWNvZ25pemVkIGRhdGV0aW1lLlxuICovXG5mdW5jdGlvbiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nV2l0aE9mZnNldCh2YWx1ZSwgbGVnYWN5TG9jYWxPZmZzZXRNaW51dGVzKSB7XG4gIGNvbnN0IHV0Y0RhdGUgPSBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNVdGModmFsdWUpXG5cbiAgaWYgKCFpc0RhdGUodXRjRGF0ZSkpIHJldHVybiB2YWx1ZVxuXG4gIHJldHVybiBuZXcgRGF0ZSh1dGNEYXRlLmdldFRpbWUoKSArIChsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXMgKiA2MCAqIDEwMDApKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIHRpbWV6b25lLWxlc3MgZGF0ZXRpbWUgc3RyaW5nIGluIGEgbmFtZWQgdGltZXpvbmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBEYXRldGltZSBzdHJpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gdGltZVpvbmUgLSBJQU5BIHRpbWV6b25lIGlkZW50aWZpZXIuXG4gKiBAcmV0dXJucyB7RGF0ZSB8IHN0cmluZ30gLSBQYXJzZWQgZGF0ZSBvciB0aGUgb3JpZ2luYWwgc3RyaW5nIHdoZW4gaXQgaXMgbm90IGEgcmVjb2duaXplZCBkYXRldGltZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VUaW1lem9uZUxlc3NEYXRlVGltZVN0cmluZ1dpdGhUaW1lWm9uZSh2YWx1ZSwgdGltZVpvbmUpIHtcbiAgY29uc3QgbWF0Y2ggPSB2YWx1ZS5tYXRjaChkYXRlVGltZVdpdGhvdXRUaW1lem9uZVBhcnRzUGF0dGVybilcblxuICBpZiAoIW1hdGNoKSByZXR1cm4gdmFsdWVcblxuICBjb25zdCBub3JtYWxpemVkVGltZVpvbmUgPSB2YWxpZGF0ZVRpbWVab25lKHRpbWVab25lLCBcInRpbWVab25lXCIpXG4gIGNvbnN0IGZyYWN0aW9uID0gKG1hdGNoWzddIHx8IFwiXCIpLnBhZEVuZCg5LCBcIjBcIilcblxuICB0cnkge1xuICAgIGNvbnN0IHpvbmVkRGF0ZVRpbWUgPSBUZW1wb3JhbC5ab25lZERhdGVUaW1lLmZyb20oe1xuICAgICAgZGF5OiBOdW1iZXIobWF0Y2hbM10pLFxuICAgICAgaG91cjogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICAgIG1pY3Jvc2Vjb25kOiBOdW1iZXIoZnJhY3Rpb24uc2xpY2UoMywgNikpLFxuICAgICAgbWlsbGlzZWNvbmQ6IE51bWJlcihmcmFjdGlvbi5zbGljZSgwLCAzKSksXG4gICAgICBtaW51dGU6IE51bWJlcihtYXRjaFs1XSksXG4gICAgICBtb250aDogTnVtYmVyKG1hdGNoWzJdKSxcbiAgICAgIG5hbm9zZWNvbmQ6IE51bWJlcihmcmFjdGlvbi5zbGljZSg2LCA5KSksXG4gICAgICBzZWNvbmQ6IE51bWJlcihtYXRjaFs2XSksXG4gICAgICB0aW1lWm9uZTogbm9ybWFsaXplZFRpbWVab25lLFxuICAgICAgeWVhcjogTnVtYmVyKG1hdGNoWzFdKVxuICAgIH0pXG5cbiAgICByZXR1cm4gbmV3IERhdGUoTnVtYmVyKHpvbmVkRGF0ZVRpbWUuZXBvY2hNaWxsaXNlY29uZHMpKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHJldHVybiB2YWx1ZVxuXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgc3RyaW5nIGhhcyBhIGRhdGV0aW1lIHRpbWV6b25lIHN1ZmZpeC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciB0aGUgc3RyaW5nIGVuZHMgd2l0aCBgWmAgb3IgYW4gb2Zmc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzRGF0ZVRpbWVUaW1lem9uZSh2YWx1ZSkge1xuICByZXR1cm4gdGltZXpvbmVTdWZmaXhQYXR0ZXJuLnRlc3QodmFsdWUpXG59XG5cbi8qKlxuICogRm9ybWF0cyBhIERhdGUgZm9yIGRhdGFiYXNlIHN0b3JhZ2UgYXMgYSBVVEMgaW5zdGFudC5cbiAqIEBwYXJhbSB7RGF0ZX0gdmFsdWUgLSBEYXRlIHZhbHVlLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZGF0YWJhc2VUeXBlIC0gRGF0YWJhc2UgZHJpdmVyIHR5cGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIERhdGFiYXNlIGRhdGV0aW1lIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVGb3JEYXRhYmFzZSh2YWx1ZSwge2RhdGFiYXNlVHlwZX0pIHtcbiAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcInNxbGl0ZVwiKSByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKVxuXG4gIHJldHVybiBbXG4gICAgdmFsdWUuZ2V0VVRDRnVsbFllYXIoKSxcbiAgICBcIi1cIixcbiAgICBwYWQodmFsdWUuZ2V0VVRDTW9udGgoKSArIDEpLFxuICAgIFwiLVwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENEYXRlKCkpLFxuICAgIFwiIFwiLFxuICAgIHBhZCh2YWx1ZS5nZXRVVENIb3VycygpKSxcbiAgICBcIjpcIixcbiAgICBwYWQodmFsdWUuZ2V0VVRDTWludXRlcygpKSxcbiAgICBcIjpcIixcbiAgICBwYWQodmFsdWUuZ2V0VVRDU2Vjb25kcygpKSxcbiAgICBcIi5cIixcbiAgICBwYWQodmFsdWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCksIDMpXG4gIF0uam9pbihcIlwiKVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSByZWNvcmQgd3JpdGUgc3RyaW5nIGludG8gYSBEYXRlIHdoZW4gaXQgaXMgYSByZWNvZ25pemVkIGRhdGV0aW1lIHN0cmluZy5cbiAqIFRpbWV6b25lLWxlc3Mgc3RyaW5ncyBhcmUgaW50ZXJwcmV0ZWQgaW4gdGhlIGdpdmVuIHRpbWV6b25lIHdoZW4gcHJlc2VudCwgb3RoZXJ3aXNlIFVUQy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFZhbHVlIHRvIG5vcm1hbGl6ZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBQYXJzZSBvcHRpb25zLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtvcHRpb25zLnRpbWVab25lXSAtIFRpbWV6b25lIGZvciB0aW1lem9uZS1sZXNzIHN0cmluZ3MuXG4gKiBAcmV0dXJucyB7RGF0ZSB8IHN0cmluZ30gLSBOb3JtYWxpemVkIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRGF0ZVN0cmluZ0ZvcldyaXRlKHZhbHVlLCB7dGltZVpvbmV9ID0ge30pIHtcbiAgaWYgKGhhc0RhdGVUaW1lVGltZXpvbmUodmFsdWUpKSByZXR1cm4gcGFyc2VUaW1lem9uZVF1YWxpZmllZERhdGVUaW1lU3RyaW5nKHZhbHVlKVxuICBpZiAodGltZVpvbmUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdXaXRoVGltZVpvbmUodmFsdWUsIHRpbWVab25lKVxuXG4gIHJldHVybiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nQXNVdGModmFsdWUpXG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHJlY29yZCB3cml0ZSB2YWx1ZSBpbnRvIGEgRGF0ZSB3aGVuIGl0IGlzIGEgcmVjb2duaXplZCBkYXRldGltZSBzdHJpbmcuXG4gKiBUaW1lem9uZS1sZXNzIHN0cmluZ3MgYXJlIGludGVycHJldGVkIGluIHRoZSBnaXZlbiB0aW1lem9uZSB3aGVuIHByZXNlbnQsIG90aGVyd2lzZSBVVEMuXG4gKiBAcGFyYW0ge0RhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFZhbHVlIHRvIG5vcm1hbGl6ZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBQYXJzZSBvcHRpb25zLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IFtvcHRpb25zLnRpbWVab25lXSAtIFRpbWV6b25lIGZvciB0aW1lem9uZS1sZXNzIHN0cmluZ3MuXG4gKiBAcmV0dXJucyB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IC0gTm9ybWFsaXplZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZURhdGVWYWx1ZUZvcldyaXRlKHZhbHVlLCB7dGltZVpvbmV9ID0ge30pIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSBcInN0cmluZ1wiKSByZXR1cm4gdmFsdWVcblxuICByZXR1cm4gbm9ybWFsaXplRGF0ZVN0cmluZ0ZvcldyaXRlKHZhbHVlLCB7dGltZVpvbmV9KVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBkYXRhYmFzZSB2YWx1ZSBpbnRvIGEgRGF0ZSBmb3IgcmVjb3JkIHJlYWRzLlxuICogU1FMaXRlIHRpbWV6b25lLWxlc3Mgcm93cyBhcmUgbGVnYWN5IGxvY2FsIHdhbGwtY2xvY2sgcm93cyBwcm9kdWNlZCBiZWZvcmVcbiAqIFVUQyBzdG9yYWdlLiBOZXcgU1FMaXRlIHdyaXRlcyBpbmNsdWRlIGBaYCwgc28gdGhleSB0YWtlIHRoZSBleGFjdCBicmFuY2guXG4gKiBAcGFyYW0ge0RhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFN0b3JlZCBkYXRhYmFzZSB2YWx1ZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmRhdGFiYXNlVHlwZSAtIERhdGFiYXNlIGRyaXZlciB0eXBlLlxuICogQHJldHVybnMge0RhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSAtIE5vcm1hbGl6ZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEYXRlVmFsdWVGb3JSZWFkKHZhbHVlLCB7ZGF0YWJhc2VUeXBlfSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHZhbHVlXG5cbiAgaWYgKGlzRGF0ZSh2YWx1ZSkpIHJldHVybiBuZXcgRGF0ZSh2YWx1ZS5nZXRUaW1lKCkpXG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIikgcmV0dXJuIHZhbHVlXG4gIGlmIChoYXNEYXRlVGltZVRpbWV6b25lKHZhbHVlKSkgcmV0dXJuIHBhcnNlVGltZXpvbmVRdWFsaWZpZWREYXRlVGltZVN0cmluZyh2YWx1ZSlcbiAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcInNxbGl0ZVwiKSByZXR1cm4gcGFyc2VUaW1lem9uZUxlc3NEYXRlVGltZVN0cmluZ0FzTG9jYWwodmFsdWUpXG5cbiAgcmV0dXJuIHBhcnNlVGltZXpvbmVMZXNzRGF0ZVRpbWVTdHJpbmdBc1V0Yyh2YWx1ZSlcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGxlZ2FjeSB0aW1lem9uZS1sZXNzIGRhdGV0aW1lIHZhbHVlIGludG8gdGhlIG5ldyBVVEMgZGF0YWJhc2Ugc3RvcmFnZSBmb3JtYXQuXG4gKiBUaGUgb3B0aW9uYWwgb2Zmc2V0IGZvbGxvd3MgSmF2YVNjcmlwdCdzIGBEYXRlI2dldFRpbWV6b25lT2Zmc2V0KClgIHNpZ24gY29udmVudGlvbi5cbiAqIEBwYXJhbSB7RGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlIC0gTGVnYWN5IHZhbHVlLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZGF0YWJhc2VUeXBlIC0gRGF0YWJhc2UgZHJpdmVyIHR5cGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gW2FyZ3MubGVnYWN5TG9jYWxPZmZzZXRNaW51dGVzXSAtIFVUQy1taW51cy1sb2NhbCBvZmZzZXQgaW4gbWludXRlcy5cbiAqIEByZXR1cm5zIHtEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gLSBDb252ZXJ0ZWQgZGF0YWJhc2UgdmFsdWUgb3IgdGhlIG9yaWdpbmFsIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydExlZ2FjeURhdGVWYWx1ZVRvVXRjU3RvcmFnZSh2YWx1ZSwge2RhdGFiYXNlVHlwZSwgbGVnYWN5TG9jYWxPZmZzZXRNaW51dGVzfSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9IFwic3RyaW5nXCIpIHJldHVybiB2YWx1ZVxuICBpZiAoaGFzRGF0ZVRpbWVUaW1lem9uZSh2YWx1ZSkpIHJldHVybiB2YWx1ZVxuXG4gIGNvbnN0IHBhcnNlZERhdGUgPSBsZWdhY3lMb2NhbE9mZnNldE1pbnV0ZXMgPT09IHVuZGVmaW5lZFxuICAgID8gcGFyc2VUaW1lem9uZUxlc3NEYXRlVGltZVN0cmluZ0FzTG9jYWwodmFsdWUpXG4gICAgOiBwYXJzZVRpbWV6b25lTGVzc0RhdGVUaW1lU3RyaW5nV2l0aE9mZnNldCh2YWx1ZSwgbGVnYWN5TG9jYWxPZmZzZXRNaW51dGVzKVxuXG4gIGlmICghaXNEYXRlKHBhcnNlZERhdGUpKSByZXR1cm4gdmFsdWVcblxuICByZXR1cm4gZm9ybWF0RGF0ZUZvckRhdGFiYXNlKHBhcnNlZERhdGUsIHtkYXRhYmFzZVR5cGV9KVxufVxuIl19
|
|
@@ -756,6 +756,11 @@ declare class VelociousDatabaseRecord<WriteAttributes extends Record<string, unk
|
|
|
756
756
|
* @returns {string | Date} - Parsed date or original string.
|
|
757
757
|
*/
|
|
758
758
|
static _normalizeDateStringForInsert(value: string): string | Date;
|
|
759
|
+
/**
|
|
760
|
+
* Runs time zone for date writes.
|
|
761
|
+
* @returns {string | undefined} - Active timezone identifier.
|
|
762
|
+
*/
|
|
763
|
+
static _timeZoneForDateWrite(): string | undefined;
|
|
759
764
|
/**
|
|
760
765
|
* Runs normalize sqlite boolean value for insert.
|
|
761
766
|
* @param {object} args - Options object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":"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"}
|