@magic-xpa/engine 4.801.0-dev481.310 → 4.801.0-dev481.313
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +1 -3
- package/esm2020/src/ClientManager.mjs +3 -39
- package/esm2020/src/ConstInterface.mjs +2 -216
- package/esm2020/src/CurrentClientVersion.mjs +2 -2
- package/esm2020/src/FlowMonitorInterface.mjs +1 -23
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +2 -28
- package/esm2020/src/data/DataView.mjs +1 -23
- package/esm2020/src/data/FieldsTable.mjs +1 -9
- package/esm2020/src/data/RecordOutOfDataViewException.mjs +1 -9
- package/esm2020/src/env/Environment.mjs +2 -71
- package/esm2020/src/event/EventHandler.mjs +1 -12
- package/esm2020/src/event/EventsManager.mjs +2 -2
- package/esm2020/src/event/RunTimeEvent.mjs +1 -15
- package/esm2020/src/event/UserEventsTable.mjs +1 -4
- package/esm2020/src/exp/YesNoExp.mjs +1 -6
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +1 -4
- package/esm2020/src/remote/ServerError.mjs +1 -5
- package/esm2020/src/rt/Argument.mjs +2 -11
- package/esm2020/src/rt/Boundary.mjs +1 -7
- package/esm2020/src/rt/DataviewHeaders.mjs +1 -4
- package/esm2020/src/rt/HandlersTable.mjs +1 -4
- package/esm2020/src/rt/Transaction.mjs +1 -2
- package/esm2020/src/tasks/MGDataCollection.mjs +1 -8
- package/esm2020/src/tasks/sort/SortCollection.mjs +1 -6
- package/fesm2015/magic-xpa-engine.mjs +38 -522
- package/fesm2015/magic-xpa-engine.mjs.map +1 -1
- package/fesm2020/magic-xpa-engine.mjs +38 -522
- package/fesm2020/magic-xpa-engine.mjs.map +1 -1
- package/index.d.ts +0 -2
- package/package.json +4 -4
- package/src/ClientManager.d.ts +0 -10
- package/src/ConstInterface.d.ts +1 -214
- package/src/FlowMonitorInterface.d.ts +0 -22
- package/src/commands/ClientToServer/CommandFactory.d.ts +0 -7
- package/src/data/DataView.d.ts +0 -5
- package/src/data/FieldsTable.d.ts +0 -1
- package/src/data/RecordOutOfDataViewException.d.ts +0 -3
- package/src/env/Environment.d.ts +0 -27
- package/src/event/EventHandler.d.ts +0 -4
- package/src/event/RunTimeEvent.d.ts +0 -8
- package/src/event/UserEventsTable.d.ts +0 -1
- package/src/exp/YesNoExp.d.ts +0 -1
- package/src/remote/ServerError.d.ts +0 -4
- package/src/rt/Argument.d.ts +0 -1
- package/src/rt/Boundary.d.ts +0 -3
- package/src/rt/DataviewHeaders.d.ts +0 -1
- package/src/rt/HandlersTable.d.ts +0 -1
- package/src/rt/Transaction.d.ts +0 -1
- package/src/tasks/MGDataCollection.d.ts +0 -1
- package/src/tasks/sort/SortCollection.d.ts +0 -1
- package/esm2020/src/tasks/MenusDeserializer.mjs +0 -3
- package/esm2020/src/util/Process.mjs +0 -7
- package/src/tasks/MenusDeserializer.d.ts +0 -2
- package/src/util/Process.d.ts +0 -3
|
@@ -34,11 +34,7 @@ ServerError.INF_NO_RESULT = -11;
|
|
|
34
34
|
ServerError.ERR_CTX_NOT_FOUND = -197;
|
|
35
35
|
ServerError.ERR_AUTHENTICATION = -157;
|
|
36
36
|
ServerError.ERR_ACCESS_DENIED = -133;
|
|
37
|
-
ServerError.ERR_LIMITED_LICENSE_CS = -136;
|
|
38
|
-
ServerError.ERR_UNSYNCHRONIZED_METADATA = -271;
|
|
39
|
-
ServerError.ERR_CANNOT_EXECUTE_OFFLINE_RC_IN_ONLINE_MODE = -272;
|
|
40
|
-
ServerError.ERR_INCOMPATIBLE_CLIENT = -275;
|
|
41
37
|
ServerError.ERR_WEBCLIENT_PROGRAM_RELOADED = -278;
|
|
42
38
|
ServerError.ERR_EXECUTED_PROGRAM_CHANGED = -283;
|
|
43
39
|
ServerError.ERR_THREAD_ABORTED = -138;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3JlbW90ZS9TZXJ2ZXJFcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsb0JBQW9CLEVBQWEsT0FBTyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDakcsT0FBTyxFQUFDLFlBQVksRUFBRSxPQUFPLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxXQUFZLFNBQVEsb0JBQW9CO0lBZW5ELFlBQVksR0FBVyxFQUFFLG9CQUEwQjtRQUNqRCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFOTCxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBT3hCLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsb0JBQW9CLENBQUM7WUFDbkUsT0FBTztRQUVULElBQUksT0FBTyxvQkFBb0IsSUFBSSxRQUFRO1lBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsb0JBQW9CLENBQUM7O1lBRWxDLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUM7UUFFN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQVVELFVBQVU7UUFDUixJQUFJLE9BQWUsQ0FBQztRQUVwQixJQUFJLHlCQUF5QixHQUFZLFlBQVksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUMzRixJQUFJLHlCQUF5QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxtQkFBbUIsR0FBVyxZQUFZLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNwSCxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUMvRDs7WUFFQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOztBQW5ETSx5QkFBYSxHQUFXLENBQUMsRUFBRSxDQUFDO0FBQzVCLDZCQUFpQixHQUFXLENBQUMsR0FBRyxDQUFDO0FBQ2pDLDhCQUFrQixHQUFXLENBQUMsR0FBRyxDQUFDO0FBQ2xDLDZCQUFpQixHQUFXLENBQUMsR0FBRyxDQUFDO0FBRWpDLDBDQUE4QixHQUFHLENBQUMsR0FBRyxDQUFDO0FBQ3RDLHdDQUE0QixHQUFHLENBQUMsR0FBRyxDQUFDO0FBQ3BDLDhCQUFrQixHQUFHLENBQUMsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgRXhjZXB0aW9uLCBOU3RyaW5nLCBpc051bGxPclVuZGVmaW5lZH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7TXNnSW50ZXJmYWNlLCBTdHJVdGlsfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQgeyBTZXJ2ZXJDb25maWcgfSBmcm9tIFwiLi4vU2VydmVyQ29uZmlnXCI7XHJcbmltcG9ydCB7IEFjY2Vzc0hlbHBlciB9IGZyb20gXCIuLi9BY2Nlc3NIZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTZXJ2ZXJFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXhjZXB0aW9uIHtcclxuICBzdGF0aWMgSU5GX05PX1JFU1VMVDogbnVtYmVyID0gLTExO1xyXG4gIHN0YXRpYyBFUlJfQ1RYX05PVF9GT1VORDogbnVtYmVyID0gLTE5NztcclxuICBzdGF0aWMgRVJSX0FVVEhFTlRJQ0FUSU9OOiBudW1iZXIgPSAtMTU3O1xyXG4gIHN0YXRpYyBFUlJfQUNDRVNTX0RFTklFRDogbnVtYmVyID0gLTEzMztcclxuXHJcbiAgc3RhdGljIEVSUl9XRUJDTElFTlRfUFJPR1JBTV9SRUxPQURFRCA9IC0yNzg7XHJcbiAgc3RhdGljIEVSUl9FWEVDVVRFRF9QUk9HUkFNX0NIQU5HRUQgPSAtMjgzO1xyXG4gIHN0YXRpYyBFUlJfVEhSRUFEX0FCT1JURUQgPSAtMTM4O1xyXG5cclxuICBwcml2YXRlIF9jb2RlOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyk7XHJcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcsIGNvZGU6IG51bWJlcik7XHJcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcsIGlubmVyRXhjZXB0aW9uOiBFeGNlcHRpb24pO1xyXG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nLCBjb2RlT3JJbm5lckV4Y2VwdGlvbj86IGFueSkge1xyXG4gICAgc3VwZXIobXNnKTtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxIHx8IGlzTnVsbE9yVW5kZWZpbmVkKGNvZGVPcklubmVyRXhjZXB0aW9uKSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0eXBlb2YgY29kZU9ySW5uZXJFeGNlcHRpb24gPT0gJ251bWJlcicpXHJcbiAgICAgIHRoaXMuX2NvZGUgPSBjb2RlT3JJbm5lckV4Y2VwdGlvbjtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5Jbm5lckV4Y2VwdGlvbiA9IGNvZGVPcklubmVyRXhjZXB0aW9uO1xyXG5cclxuICAgIHRoaXMuZXJyb3JMZXZlbCA9IDM7XHJcbiAgfVxyXG5cclxuICBHZXRDb2RlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29kZTtcclxuICB9XHJcblxyXG4gIC8vLzxzdW1tYXJ5PlxyXG4gIC8vLyAgUmV0dXJuIGVycm9yIG1lc3NhZ2UgZm9yIFNlcnZlckVycm9yIGV4Y2VwdGlvbi5cclxuICAvLy8gIFRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGRldGFpbGVkIGVycm9yIG1lc3NhZ2Ugd2hlbiA6LVxyXG4gIC8vLyAgICAgIDEpIHdoZW4gZGV0YWlsZWQgbWVzc2FnZSBpcyB0byBiZSBzaG93biAoaS5lLiBEaXNwbGF5R2VuZXJpY0Vycm9yID0gTiBpbiBleGVjdXRpb24ucHJvcGVydGllcylcclxuICAvLy8gICAgICAyKSB3aGVuIFNlcnZlckVycm9yLkNvZGUgaXMgMC5cclxuICAvLy8gIE90aGVyd2lzZSBnZW5lcmljIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSByZXR1cm5lZC5cclxuICAvLy88L3N1bW1hcnk+XHJcbiAgLy8vPHJldHVybnM+ISEuPC9yZXR1cm5zPlxyXG4gIEdldE1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgIGxldCBtZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gICAgbGV0IHNob3VsZERpc3BsYXlHZW5lcmljRXJyb3I6IGJvb2xlYW4gPSBTZXJ2ZXJDb25maWcuSW5zdGFuY2UuU2hvdWxkRGlzcGxheUdlbmVyaWNFcnJvcigpO1xyXG4gICAgaWYgKHNob3VsZERpc3BsYXlHZW5lcmljRXJyb3IgJiYgdGhpcy5HZXRDb2RlKCkgPiAwKSB7XHJcbiAgICAgIGxldCBnZW5lcmljRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBBY2Nlc3NIZWxwZXIubGFuZ3VhZ2VEYXRhLmdldENvbnN0TWVzc2FnZShNc2dJbnRlcmZhY2UuU1RSX0dFTkVSSUNfRVJST1JfTUVTU0FHRSk7XHJcbiAgICAgIGdlbmVyaWNFcnJvck1lc3NhZ2UgPSBTdHJVdGlsLnJlcGxhY2VTdHJpbmdUb2tlbnMoZ2VuZXJpY0Vycm9yTWVzc2FnZSwgXCIlZFwiLCAxLCBcInswfVwiKTtcclxuICAgICAgbWVzc2FnZSA9IE5TdHJpbmcuRm9ybWF0KGdlbmVyaWNFcnJvck1lc3NhZ2UsIHRoaXMuR2V0Q29kZSgpKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgbWVzc2FnZSA9IHRoaXMuTWVzc2FnZTtcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApplicationException, NNumber } from '@magic-xpa/mscorelib';
|
|
2
|
-
import { Logger, StorageAttribute, StorageAttributeCheck
|
|
2
|
+
import { Logger, StorageAttribute, StorageAttributeCheck } from '@magic-xpa/utils';
|
|
3
3
|
import { BlobType, ExpVal, FieldDef } from '@magic-xpa/gui';
|
|
4
4
|
import { ConstInterface } from '../ConstInterface';
|
|
5
5
|
import { FieldBase } from '../data/FieldBase';
|
|
@@ -261,14 +261,5 @@ export class Argument {
|
|
|
261
261
|
}
|
|
262
262
|
this._val = argStr.substr(2);
|
|
263
263
|
}
|
|
264
|
-
makeURLPrintable(source) {
|
|
265
|
-
let from = [
|
|
266
|
-
"\\", "\0", ","
|
|
267
|
-
];
|
|
268
|
-
let to = [
|
|
269
|
-
"\\\\", "\\0", "\\,"
|
|
270
|
-
];
|
|
271
|
-
return StrUtil.searchAndReplace(source, from, to);
|
|
272
|
-
}
|
|
273
264
|
}
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0FyZ3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxRQUFRO0lBYW5CLFlBQVkscUJBQTJCO1FBWi9CLFNBQUksR0FBZSxJQUFJLENBQUM7UUFDeEIsU0FBSSxHQUFjLElBQUksQ0FBQztRQUN2QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUssR0FBVyxJQUFJLENBQUM7UUFDckIsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQXFCLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNyRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQU9wQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssSUFBSSxJQUFJLHFCQUFxQixZQUFZLFNBQVMsQ0FBQyxFQUFFO1lBQzVHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUMxQyxPQUFPO1NBQ1I7UUFD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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgTk51bWJlciwgU3RyaW5nQnVpbGRlciB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBTdG9yYWdlQXR0cmlidXRlLCBTdG9yYWdlQXR0cmlidXRlQ2hlY2ssIFN0clV0aWwgfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHsgQmxvYlR5cGUsIEV4cFZhbCwgRmllbGREZWYgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuLi9leHAvRXhwcmVzc2lvbic7XHJcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi90YXNrcy9UYXNrJztcclxuaW1wb3J0IHsgQ29uc3RJbnRlcmZhY2UgfSBmcm9tICcuLi9Db25zdEludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gJy4uL2RhdGEvRmllbGRCYXNlJztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQXJndW1lbnQge1xyXG4gIHByaXZhdGUgX2V4cDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZmxkOiBGaWVsZEJhc2UgPSBudWxsO1xyXG4gIHByaXZhdGUgX3NraXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF90eXBlOiBzdHJpbmcgPSAnXFwwJzsgLy8gRmllbGRCYXNlfEV4cHJlc3Npb258VmFsdWVcclxuICBwcml2YXRlIF92YWw6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdmFsdWVBdHRyOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FOyAvLyB0cnVlIGlzIGFyZ3VtZW50IGlzIG9mIHR5cGUgQVJHX1RZUEVfVkFMVUUgYW5kXHJcbiAgcHJpdmF0ZSBfdmFsdWVJc051bGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKTtcclxuICBjb25zdHJ1Y3RvcihmaWVsZDogRmllbGRCYXNlKTtcclxuICBjb25zdHJ1Y3RvcihleHBWYWw6IEV4cFZhbCk7XHJcbiAgY29uc3RydWN0b3Ioc3JjQXJnOiBBcmd1bWVudCk7XHJcbiAgY29uc3RydWN0b3IoZmllbGRPckV4cFZhbE9yU3JjQXJnPzogYW55KSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYgKGZpZWxkT3JFeHBWYWxPclNyY0FyZyA9PT0gbnVsbCB8fCBmaWVsZE9yRXhwVmFsT3JTcmNBcmcgaW5zdGFuY2VvZiBGaWVsZEJhc2UpKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMShmaWVsZE9yRXhwVmFsT3JTcmNBcmcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAoZmllbGRPckV4cFZhbE9yU3JjQXJnID09PSBudWxsIHx8IGZpZWxkT3JFeHBWYWxPclNyY0FyZyBpbnN0YW5jZW9mIEV4cFZhbCkpIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8yKGZpZWxkT3JFeHBWYWxPclNyY0FyZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0b3JfMyhmaWVsZE9yRXhwVmFsT3JTcmNBcmcpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSAnXFwwJy8qJ1x1MDAwMCcqLztcclxuICAgIHRoaXMuX2ZsZCA9IG51bGw7XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gICAgdGhpcy5fc2tpcCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SIC0gY3JlYXRlIGFuIGFyZ3VtZW50IGZyb20gYSBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKGZpZWxkOiBGaWVsZEJhc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX2ZsZCA9IGZpZWxkO1xyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEIC8qJ0YnKi87XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gICAgdGhpcy5fc2tpcCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1IgdGhhdCBjcmVhdGVzIGEgXCJWYWx1ZVwiIHR5cGUgYXJndW1lbnQgZnJvbSBhIGdpdmVuIEV4cHJlc3Npb24gVmFsdWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwVmFsXCI+dGhlIHNvdXJjZSBleHByZXNzaW9uIHZhbHVlPC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzIoZXhwVmFsOiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTtcclxuICAgIHRoaXMuX2ZsZCA9IG51bGw7XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gICAgdGhpcy5fc2tpcCA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChleHBWYWwuSXNOdWxsKVxyXG4gICAgICB0aGlzLl92YWwgPSBudWxsO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl92YWwgPSBleHBWYWwuVG9NZ1ZhbCgpO1xyXG5cclxuICAgIHRoaXMuX3ZhbHVlSXNOdWxsID0gKHRoaXMuX3ZhbCA9PT0gbnVsbCk7XHJcbiAgICB0aGlzLl92YWx1ZUF0dHIgPSBleHBWYWwuQXR0cjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SIHRoYXQgY3JlYXRlcyBhIFwiVmFsdWVcIiB0eXBlIGFyZ3VtZW50IGZyb20gYSBnaXZlbiBGaWVsZEJhc2Ugb3IgRXhwcmVzc2lvbiB0eXBlXHJcbiAgLy8vICAgYXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3JjQXJnXCI+dGhlIHNvdXJjZSBhcmd1bWVudDwvcGFyYW0+XHJcbiAgY29uc3RydWN0b3JfMyhzcmNBcmc6IEFyZ3VtZW50KSB7XHJcbiAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU7XHJcblxyXG4gICAgc3dpdGNoIChzcmNBcmcuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBzcmNBcmcuX2ZsZC5nZXRUeXBlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVA6XHJcbiAgICAgICAgdGhpcy5fc2tpcCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiaW4gQXJndW1lbnQuQXJndW1lbnQoKTogaWxsZWdhbCBzb3VyY2UgQXJndW1lbnQgdHlwZSFcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgSW5pdGlhbGl6ZShzcmNBcmc6IEFyZ3VtZW50KTogUHJvbWlzZTx2b2lkPntcclxuICAgIHN3aXRjaCAoc3JjQXJnLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6XHJcbiAgICAgICAgdGhpcy5fdmFsID0gc3JjQXJnLl9mbGQuZ2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVJc051bGwgPSBzcmNBcmcuX2ZsZC5pc051bGwoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIGxldCByZXRWYWwgPSBhd2FpdCBzcmNBcmcuX2V4cC5ldmFsdWF0ZVdpdGhSZXNMZW5ndGgoMjU1KTtcclxuICAgICAgICB0aGlzLl92YWwgPSByZXRWYWwubWdWYWw7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gcmV0VmFsLnR5cGU7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVJc051bGwgPSAodGhpcy5fdmFsID09IG51bGwpO1xyXG4gICAgICAgIGlmICh0aGlzLl92YWx1ZUlzTnVsbClcclxuICAgICAgICAgIHRoaXMuX3ZhbCA9IEFyZ3VtZW50LmdldEVtcHR5VmFsdWUoKHJldFZhbC50eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IgfHxcclxuICAgICAgICAgICAgcmV0VmFsLnR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBQYXJzaW5nIEFyZ3VtZW50IHN0cmluZyBhbmQgZmlsbCBpbm5lciBvYmplY3RzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFyZ1wiPnN0cmluZyB0byBwYXJzZSA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3JjVGFza1wiPm9mIHRoZSBhcmd1bWVudCB0byBmaW5kIGV4cHJlc3Npb24gYXJndW1lbnQgPC9wYXJhbT5cclxuICBwdWJsaWMgZmlsbERhdGEoYXJnOiBTdHJpbmcsIHNyY1Rhc2s6IFRhc2spOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSBhcmdbMF07XHJcbiAgICBsZXQgYXJnRWxlbWVudHM6IHN0cmluZyA9IGFyZy5zdWJzdHIoMik7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6IHtcclxuICAgICAgICBsZXQgZmllbGRJZDogc3RyaW5nW10gPSBhcmdFbGVtZW50cy5zcGxpdCgnLCcpO1xyXG4gICAgICAgIGxldCBwYXJlbnQ6IG51bWJlciA9ICBOTnVtYmVyLlBhcnNlKGZpZWxkSWRbMF0pO1xyXG4gICAgICAgIGxldCBmbGRJZHg6IG51bWJlciA9ICBOTnVtYmVyLlBhcnNlKGZpZWxkSWRbMV0pO1xyXG4gICAgICAgIHRoaXMuX2ZsZCA9IDxGaWVsZEJhc2U+c3JjVGFzay5nZXRGaWVsZERlZihwYXJlbnQsIGZsZElkeCk7XHJcbiAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIGxldCBleHBOdW06IG51bWJlciA9IE5OdW1iZXIuUGFyc2UoYXJnRWxlbWVudHMpO1xyXG4gICAgICAgIHRoaXMuX2V4cCA9IHNyY1Rhc2suZ2V0RXhwQnlJZChleHBOdW0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9TS0lQOlxyXG4gICAgICAgIHRoaXMuX3NraXAgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIEFyZ3VtZW50LkZpbGxEYXRhKCkgaWxsZWdhbCB0eXBlOiBcIiArIGFyZyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYnVpbGQgdGhlIFhNTCBzdHJpbmcgZm9yIHRoZSBhcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZXNzYWdlXCI+dGhlIFhNTCBzdHJpbmcgdG8gYXBwZW5kIHRoZSBhcmd1bWVudCB0bzwvcGFyYW0+XHJcbiAgcHVibGljIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiRjpcIiArIHRoaXMuX2ZsZC5nZXRUYXNrKCkuZ2V0VGFza1RhZygpICsgXCIsXCIgKyB0aGlzLl9mbGQuZ2V0SWQoKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChcIkU6XCIgKyB0aGlzLl9leHAuZ2V0SWQoKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVA6XHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCJYOjBcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIEFyZ3VtZW50LmJ1aWxkWE1MKCkgaWxsZWdhbCB0eXBlOiBcIiArIHRoaXMuX3R5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGFyZ3VtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmb3IgZmllbGQgdHlwZSBhcmd1bWVudHMgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldEZpZWxkKCk6IEZpZWxkQmFzZSB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQpXHJcbiAgICAgIHJldHVybiB0aGlzLl9mbGQ7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmb3IgZXhwcmVzc2lvbiB0eXBlIGFyZ3VtZW50cyByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBleHByZXNzaW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcm90ZWN0ZWQgZ2V0RXhwKCk6IEV4cHJlc3Npb24ge1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUClcclxuICAgICAgcmV0dXJuIHRoaXMuX2V4cDtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgdmFsdWUgb2YgdGhpcyBhcmd1bWVudCB0byBhIGdpdmVuIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRlc3RGbGRcIj50aGUgZGVzdGluYXRpb24gZmllbGRcclxuICAvLy8gPC9wYXJhbT5cclxuICBwdWJsaWMgYXN5bmMgc2V0VmFsdWVUb0ZpZWxkKGRlc3RGbGQ6IEZpZWxkQmFzZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHZhbDogc3RyaW5nO1xyXG4gICAgbGV0IGlzTnVsbDogYm9vbGVhbjtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB2YWwgPSB0aGlzLl9mbGQuZ2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgdmFsID0gQXJndW1lbnQuY29udmVydEFyZ3ModmFsLCB0aGlzLl9mbGQuZ2V0VHlwZSgpLCBkZXN0RmxkLmdldFR5cGUoKSk7XHJcbiAgICAgICAgaXNOdWxsID0gdGhpcy5fZmxkLmlzTnVsbCgpIHx8IHZhbCA9PSBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgdmFsID0gYXdhaXQgdGhpcy5fZXhwLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgoZGVzdEZsZC5nZXRUeXBlKCksIGRlc3RGbGQuZ2V0U2l6ZSgpKTtcclxuICAgICAgICBpc051bGwgPSAodmFsID09IG51bGwpO1xyXG4gICAgICAgIGlmIChpc051bGwpXHJcbiAgICAgICAgICB2YWwgPSBBcmd1bWVudC5nZXRFbXB0eVZhbHVlKChkZXN0RmxkLmdldFR5cGUoKSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CIHx8XHJcbiAgICAgICAgICAgIGRlc3RGbGQuZ2V0VHlwZSgpID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU6XHJcbiAgICAgICAgdmFsID0gQXJndW1lbnQuY29udmVydEFyZ3ModGhpcy5fdmFsLCB0aGlzLl92YWx1ZUF0dHIsIGRlc3RGbGQuZ2V0VHlwZSgpKTtcclxuICAgICAgICBpc051bGwgPSB0aGlzLl92YWx1ZUlzTnVsbCB8fCB2YWwgPT0gbnVsbDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBVcGRhdGUgZGVzdGluYXRpb24gZmllbGQncyBfaXNOVUxMIHdpdGggdGhlIHZhbHVlIGZyb20gcmVjb3JkLiBUaGlzIGlzIG5lZWRlZCB0byBpZGVudGlmeVxyXG4gICAgLy8gaWYgdGhlIHZhcmlhYmxlIGlzIG1vZGlmaWVkLlxyXG4gICAgZGVzdEZsZC50YWtlVmFsRnJvbVJlYygpO1xyXG4gICAgYXdhaXQgZGVzdEZsZC5zZXRWYWx1ZUFuZFN0YXJ0UmVjb21wdXRlKHZhbCwgaXNOdWxsLCAoPFRhc2s+ZGVzdEZsZC5nZXRUYXNrKCkpLkRhdGFWaWV3V2FzUmV0cmlldmVkLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGNvbnZlcnRzIEFscGhhL1VuaWNvZGUgdmFsdWVzIHRvIEJsb2IgYW5kIHZpY2UgdmVyc2EuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ2YWx1ZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3JjQXR0clwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZXhwZWN0ZWRUeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEFyZ3ModmFsdWU6IHN0cmluZywgc3JjQXR0cjogU3RvcmFnZUF0dHJpYnV0ZSwgZXhwZWN0ZWRUeXBlOiBTdG9yYWdlQXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBpbnZhbGlkQXJnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgc3dpdGNoIChleHBlY3RlZFR5cGUpIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgICBpZiAoc3JjQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CKSB7XHJcbiAgICAgICAgICBpZiAoQmxvYlR5cGUuaXNWYWxpZEJsb2IodmFsdWUpKVxyXG4gICAgICAgICAgICB2YWx1ZSA9IEJsb2JUeXBlLmdldFN0cmluZyh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFTdG9yYWdlQXR0cmlidXRlQ2hlY2suSXNUeXBlQWxwaGFPclVuaWNvZGUoc3JjQXR0cikpXHJcbiAgICAgICAgICBpbnZhbGlkQXJnID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlRJTUU6XHJcbiAgICAgICAgaWYgKCFTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlTnVtZXJpYyhzcmNBdHRyKSlcclxuICAgICAgICAgIGludmFsaWRBcmcgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0I6XHJcbiAgICAgICAgaWYgKFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZShzcmNBdHRyKSkge1xyXG4gICAgICAgICAgbGV0IGNvbnRlbnRUeXBlOiBzdHJpbmcgPSBzcmNBdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBXHJcbiAgICAgICAgICAgID8gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0lcclxuICAgICAgICAgICAgOiBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERTtcclxuICAgICAgICAgIHZhbHVlID0gQmxvYlR5cGUuY3JlYXRlRnJvbVN0cmluZyh2YWx1ZSwgY29udGVudFR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZUJsb2Ioc3JjQXR0cikpXHJcbiAgICAgICAgICBpbnZhbGlkQXJnID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGVyZSBpcyBtaXNtYXRjaCBpbiBhdHRyaWJ1dGUsIHRha2UgZGVmYXVsdCB2YWx1ZSBvZiBleHBlY3RkIGFyZ3VtZW50LlxyXG4gICAgaWYgKGludmFsaWRBcmcpXHJcbiAgICAgIHZhbHVlID0gRmllbGREZWYuZ2V0TWFnaWNEZWZhdWx0VmFsdWUoZXhwZWN0ZWRUeXBlKTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdmFsdWUgb2YgQXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwVHlwZVwiPnR5cGUgb2YgZXhwZWN0ZWQgdHlwZSBvZiBldmFsdWF0aW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFNpemVcIj5zaXplIG9mIGV4cGVjdGVkIHN0cmluZyBmcm9tIGV2YWx1YXRpb248L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdmFsdWUgb2YgdGhlIEFyZ3VtZW50PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShleHBUeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBleHBTaXplOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IGF3YWl0IHRoaXMuX2V4cC5ldmFsdWF0ZVdpdGhSZXN1bHRUeXBlQW5kTGVuZ3RoKGV4cFR5cGUsIGV4cFNpemUpO1xyXG4gICAgICAgIGlmICh0aGlzLl92YWwgPT0gbnVsbClcclxuICAgICAgICAgIHRoaXMuX3ZhbCA9IEFyZ3VtZW50LmdldEVtcHR5VmFsdWUoZXhwVHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CXHJcbiAgICAgICAgICAgIHx8IGV4cFR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB0aGlzLl92YWwgPSB0aGlzLl9mbGQuZ2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFOlxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl92YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHJldHVybnM+IHZhbHVlIG9mIHRoZSBza2lwIGZsYWcgPC9yZXR1cm5zPlxyXG4gIHNraXBBcmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2tpcDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmaWxsIGFuIGFyZ3VtZW50IGRhdGEgZnJvbSBhIHBhcmFtZXRlciBkYXRhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInBhcmFtVmFsdWVBdHRyXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInBhcmFtVmFsdWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyYW1OdWxsXCI+PC9wYXJhbT5cclxuICBmaWxsRGF0YUJ5UGFyYW1zKHBhcmFtVmFsdWVBdHRyOiBTdG9yYWdlQXR0cmlidXRlLCBwYXJhbVZhbHVlOiBzdHJpbmcsIHBhcmFtTnVsbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWVBdHRyID0gcGFyYW1WYWx1ZUF0dHI7XHJcbiAgICB0aGlzLl92YWwgPSBwYXJhbVZhbHVlO1xyXG4gICAgdGhpcy5fdmFsdWVJc051bGwgPSBwYXJhbU51bGw7XHJcblxyXG4gICAgLy8gVGhlIHNlcnZlciBpbmRpY2F0ZXMgc2tpcCBvbiBhIHBhcmFtZXRlciBieSBzZW5kaW5nIERBVEFfVFlQRV9TS0lQIGluc3RlYWQgb2YgdGhlIHJlYWwgYXR0cmlidXRlLlxyXG4gICAgaWYgKHRoaXMuX3ZhbHVlQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5TS0lQKSB7XHJcbiAgICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9TS0lQIC8qJ1gnKi87XHJcbiAgICAgIHRoaXMuX3NraXAgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRSAvKlYqLztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmV0dXJucyBlbXB0eSB2YWx1ZTwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpc0Jsb2JcIj4tIHRydWUgaXMgdmFsdWUgaXMgZm9yIGJsb2I8L3BhcmFtPlxyXG4gIHByaXZhdGUgc3RhdGljIGdldEVtcHR5VmFsdWUoaXNCbG9iOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpc0Jsb2IgPyAoQmxvYlR5cGUuZ2V0RW1wdHlCbG9iUHJlZml4KCdcXDAnKSAvKidcdTAwMDAnKi8gKyBcIjtcIikgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBmaWxsIHRoZSBhcmd1bWVudCBmcm9tIGEgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJhcmdTdHJcIj48L3BhcmFtPlxyXG4gIHB1YmxpYyBGaWxsRnJvbVN0cmluZyhhcmdTdHI6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgLy8gdHlwZSBpcyBhbHdheXMgYSB2YWx1ZVxyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFO1xyXG5cclxuICAgIGxldCBhcmdUeXBlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgLy8gSWYgc3RyaW5nIGlzIHNob3J0ZXIgdGhhbiAzLCBhc3N1bWUgaXQgZG9lcyBub3QgaGF2ZSBhbiBhdHRyaWJ1dGUgaWRlbnRpZmllclxyXG4gICAgaWYgKGFyZ1N0ci5sZW5ndGggPiAyKVxyXG4gICAgICBhcmdUeXBlID0gYXJnU3RyLnN1YnN0cigwLCAyKTtcclxuXHJcbiAgICBzd2l0Y2ggKGFyZ1R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX0FMUEhBOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19VTklDT0RFOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX05VTUVSSUM6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfRE9VQkxFOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX0xPR0lDQUw6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfTlVMTDpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgLy8gaWYgc3RvcmFnZSB0eXBlIGlzIG5vdCBkZWZpbmVkLCBhc3N1bWUgYWxwaGEgc3RyaW5nIGFuZCB0aGUgZW50aXJlIHN0cmluZyBpcyB0aGUgdmFsdWVcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBO1xyXG4gICAgICAgIHRoaXMuX3ZhbCA9IGFyZ1N0cjtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyB0aGUgY2FzZSB0aGUgc3RyaW5nIGlzIHRvbyBzaG9ydCB3YXMgZGVhbHQgd2l0aCBlYXJsaWVyIC0gaXQgd2lsbCBnZXQgdG8gdGhlIGRlZmF1bHQgY2FzZSBpbiB0aGUgc3dpdGNoXHJcbiAgICAvLyBhbmQgcmV0dXJuIGZyb20gdGhlcmVcclxuICAgIHRoaXMuX3ZhbCA9IGFyZ1N0ci5zdWJzdHIoMik7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNoYW5nZXMgYWxsIGlsbGVnYWwgY2hhcmFjdGVycyBvciBzcGVjaWFsIGNoYXJhY3RlcnMgdXNlZCBmb3IgcGFyc2luZyB0byB0aGVpciBsZWdhbCBmb3JtYXRcclxuICAvLy8gICB0aGUgcGFyc2luZyBpcyBwZXJmb3JtZWQgYXQgc2V2ZXJhbCBwbGFjZXMgZmlyc3Qgd2hlbiBwYXNzaW5nIHRoZSB1cmwgdG8gSUUgYnkgSUVcclxuICAvLy8gICBzZWNvbmQgaW4gdGhlIHJlcXVlc3RlciAocnFodHRwLmNwcCkgd2hlbiBwYXJzaW5nIHRoZSB1cmwgZm9yIGFyZ3VtZW50c1xyXG4gIC8vLyAgIHRoaXJzdCBpbiB0aGUgbWFnaWMgZW5naW5lIChtZ3JxbXJnLmNwcCAtIGNvcHlfaW5fYXJncylcclxuICAvLy8gICB3ZSBtdXN0IGRpc3Rpbmd1aXNoIGJldHdlZW4gY2hhcmFjdGVycyB0aGF0IGFyZSByZXNlcnZlZCBmb3Igc3BlY2lhbCB1c2UgYnkgdGhlIFVSTCBSRkMgYW5kXHJcbiAgLy8vICAgYmV0d2VlbiBjaGFyYWN0ZXJzIHVzZWQgaW50ZXJuYWxseSBieSBtYWdpYyBmb3Igc3BlY2lhbCB1c2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic291cmNlXCI+dXJsIHRvIGJlIGNvbnZlcnRlZCA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGNvbnZlcnRlZCB1cmwgICA8L3JldHVybnM+XHJcbiAgbWFrZVVSTFByaW50YWJsZShzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgZnJvbTogc3RyaW5nW10gPSBbXHJcbiAgICAgIFwiXFxcXFwiLCBcIlxcMFwiLCBcIixcIlxyXG4gICAgXTtcclxuICAgIGxldCB0bzogc3RyaW5nW10gPSBbXHJcbiAgICAgIFwiXFxcXFxcXFxcIiwgXCJcXFxcMFwiLCBcIlxcXFwsXCJcclxuICAgIF07XHJcbiAgICByZXR1cm4gU3RyVXRpbC5zZWFyY2hBbmRSZXBsYWNlKHNvdXJjZSwgZnJvbSwgdG8pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0FyZ3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHOUMsTUFBTSxPQUFPLFFBQVE7SUFhbkIsWUFBWSxxQkFBMkI7UUFaL0IsU0FBSSxHQUFlLElBQUksQ0FBQztRQUN4QixTQUFJLEdBQWMsSUFBSSxDQUFDO1FBQ3ZCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsVUFBSyxHQUFXLElBQUksQ0FBQztRQUNyQixTQUFJLEdBQVcsSUFBSSxDQUFDO1FBQ3BCLGVBQVUsR0FBcUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQ3JELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBT3BDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLE9BQU87U0FDUjtRQUNELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLElBQUkscUJBQXFCLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDNUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzFDLE9BQU87U0FDUjtRQUNELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLElBQUkscUJBQXFCLFlBQVksTUFBTSxDQUFDLEVBQUU7WUFDekcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzFDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBS08sYUFBYTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBUTtRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBS08sYUFBYSxDQUFDLEtBQWdCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBUztRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBTU8sYUFBYSxDQUFDLE1BQWM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksTUFBTSxDQUFDLE1BQU07WUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQzs7WUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFPRCxhQUFhLENBQUMsTUFBZ0I7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBRTNDLFFBQVEsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNwQixLQUFLLGNBQWMsQ0FBQyxjQUFjO2dCQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQyxZQUFZO2dCQUM5QixNQUFNO1lBQ1IsS0FBSyxjQUFjLENBQUMsYUFBYTtnQkFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksb0JBQW9CLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUMzRjtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWdCO1FBQ3RDLFFBQVEsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNwQixLQUFLLGNBQWMsQ0FBQyxjQUFjO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pDLE1BQU07WUFFUixLQUFLLGNBQWMsQ0FBQyxZQUFZO2dCQUM5QixJQUFJLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxJQUFJLENBQUMsWUFBWTtvQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJO3dCQUN2RSxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ25ELE1BQU07U0FDVDtJQUNILENBQUM7SUFPTSxRQUFRLENBQUMsR0FBVyxFQUFFLE9BQWE7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxXQUFXLEdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDbEIsS0FBSyxjQUFjLENBQUMsY0FBYztnQkFBRTtvQkFDbEMsSUFBSSxPQUFPLEdBQWEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxNQUFNLEdBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEQsSUFBSSxNQUFNLEdBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEQsSUFBSSxDQUFDLElBQUksR0FBYyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDNUQ7Z0JBQ0MsTUFBTTtZQUVSLEtBQUssY0FBYyxDQUFDLFlBQVk7Z0JBQzlCLElBQUksTUFBTSxHQUFXLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUVSLEtBQUssY0FBYyxDQUFDLGFBQWE7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyx1Q0FBdUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDMUYsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQU1NLFFBQVEsQ0FBQyxPQUFzQjtRQUNwQyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDbEIsS0FBSyxjQUFjLENBQUMsY0FBYztnQkFDaEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRixNQUFNO1lBRVIsS0FBSyxjQUFjLENBQUMsWUFBWTtnQkFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxNQUFNO1lBRVIsS0FBSyxjQUFjLENBQUMsYUFBYTtnQkFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsTUFBTTtZQUVSO2dCQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsdUNBQXVDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqRyxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBS0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBS0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxjQUFjLENBQUMsY0FBYztZQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBS1MsTUFBTTtRQUNkLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxjQUFjLENBQUMsWUFBWTtZQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT00sS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFrQjtRQUM3QyxJQUFJLEdBQVcsQ0FBQztRQUNoQixJQUFJLE1BQWUsQ0FBQztRQUVwQixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDbEIsS0FBSyxjQUFjLENBQUMsY0FBYztnQkFDaEMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixHQUFHLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDeEUsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQztnQkFDM0MsTUFBTTtZQUVSLEtBQUssY0FBYyxDQUFDLFlBQVk7Z0JBQzlCLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RixNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksTUFBTTtvQkFDUixHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJO3dCQUN2RSxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDekQsTUFBTTtZQUNSLEtBQUssY0FBYyxDQUFDLGNBQWM7Z0JBQ2hDLEdBQUcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDMUUsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQztnQkFDMUMsTUFBTTtZQUNSO2dCQUNFLE9BQU87U0FDVjtRQUdELE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixNQUFNLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFTLE9BQU8sQ0FBQyxPQUFPLEVBQUcsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQVNNLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYSxFQUFFLE9BQXlCLEVBQUUsWUFBOEI7UUFDaEcsSUFBSSxVQUFVLEdBQVksS0FBSyxDQUFDO1FBRWhDLFFBQVEsWUFBWSxFQUFFO1lBQ3BCLEtBQUssZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBQzVCLEtBQUssZ0JBQWdCLENBQUMsT0FBTztnQkFDM0IsSUFBSSxPQUFPLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxFQUFFO29CQUNyQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO3dCQUM3QixLQUFLLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDckM7cUJBQ0ksSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztvQkFDM0QsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDcEIsTUFBTTtZQUVSLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1lBQzlCLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1lBQzNCLEtBQUssZ0JBQWdCLENBQUMsSUFBSTtnQkFDeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7b0JBQy9DLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFFUixLQUFLLGdCQUFnQixDQUFDLElBQUk7Z0JBQ3hCLElBQUkscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3ZELElBQUksV0FBVyxHQUFXLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLO3dCQUMxRCxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQjt3QkFDNUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDbEMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7aUJBQ3ZEO3FCQUNJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUNqRCxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixNQUFNO1NBQ1Q7UUFHRCxJQUFJLFVBQVU7WUFDWixLQUFLLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQVFNLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBeUIsRUFBRSxPQUFlO1FBQzlELFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNsQixLQUFLLGNBQWMsQ0FBQyxZQUFZO2dCQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzlFLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO29CQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDLElBQUk7MkJBQy9ELE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDakQsTUFBTTtZQUVSLEtBQUssY0FBYyxDQUFDLGNBQWM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLE1BQU07WUFFUixLQUFLLGNBQWMsQ0FBQyxjQUFjO2dCQUNoQyxNQUFNO1lBRVI7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBR0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBUUQsZ0JBQWdCLENBQUMsY0FBZ0MsRUFBRSxVQUFrQixFQUFFLFNBQWtCO1FBQ3ZGLElBQUksQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBRzlCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFTO1lBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ25CO2FBQ0k7WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQU87U0FDbEQ7SUFDSCxDQUFDO0lBSU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFlO1FBQzFDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFNTSxjQUFjLENBQUMsTUFBYztRQUVsQyxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUM7UUFFM0MsSUFBSSxPQUFPLEdBQVcsSUFBSSxDQUFDO1FBRTNCLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ25CLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoQyxRQUFRLE9BQU8sRUFBRTtZQUNmLEtBQUssY0FBYyxDQUFDLGFBQWE7Z0JBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO2dCQUN6QyxNQUFNO1lBQ1IsS0FBSyxjQUFjLENBQUMsZUFBZTtnQkFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzNDLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQyxlQUFlO2dCQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDM0MsTUFBTTtZQUNSLEtBQUssY0FBYyxDQUFDLGNBQWM7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1IsS0FBSyxjQUFjLENBQUMsZUFBZTtnQkFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7Z0JBQzNDLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQyxZQUFZO2dCQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDeEMsTUFBTTtZQUNSO2dCQUVFLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztnQkFDbkIsT0FBTztTQUNWO1FBR0QsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uRXhjZXB0aW9uLCBOTnVtYmVyLCBTdHJpbmdCdWlsZGVyIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBMb2dnZXIsIFN0b3JhZ2VBdHRyaWJ1dGUsIFN0b3JhZ2VBdHRyaWJ1dGVDaGVja30gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IEJsb2JUeXBlLCBFeHBWYWwsIEZpZWxkRGVmIH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi4vZXhwL0V4cHJlc3Npb24nO1xyXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vdGFza3MvVGFzayc7XHJcbmltcG9ydCB7IENvbnN0SW50ZXJmYWNlIH0gZnJvbSAnLi4vQ29uc3RJbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tICcuLi9kYXRhL0ZpZWxkQmFzZSc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFyZ3VtZW50IHtcclxuICBwcml2YXRlIF9leHA6IEV4cHJlc3Npb24gPSBudWxsO1xyXG4gIHByaXZhdGUgX2ZsZDogRmllbGRCYXNlID0gbnVsbDtcclxuICBwcml2YXRlIF9za2lwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdHlwZTogc3RyaW5nID0gJ1xcMCc7IC8vIEZpZWxkQmFzZXxFeHByZXNzaW9ufFZhbHVlXHJcbiAgcHJpdmF0ZSBfdmFsOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX3ZhbHVlQXR0cjogU3RvcmFnZUF0dHJpYnV0ZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTsgLy8gdHJ1ZSBpcyBhcmd1bWVudCBpcyBvZiB0eXBlIEFSR19UWVBFX1ZBTFVFIGFuZFxyXG4gIHByaXZhdGUgX3ZhbHVlSXNOdWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCk7XHJcbiAgY29uc3RydWN0b3IoZmllbGQ6IEZpZWxkQmFzZSk7XHJcbiAgY29uc3RydWN0b3IoZXhwVmFsOiBFeHBWYWwpO1xyXG4gIGNvbnN0cnVjdG9yKHNyY0FyZzogQXJndW1lbnQpO1xyXG4gIGNvbnN0cnVjdG9yKGZpZWxkT3JFeHBWYWxPclNyY0FyZz86IGFueSkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIChmaWVsZE9yRXhwVmFsT3JTcmNBcmcgPT09IG51bGwgfHwgZmllbGRPckV4cFZhbE9yU3JjQXJnIGluc3RhbmNlb2YgRmllbGRCYXNlKSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEoZmllbGRPckV4cFZhbE9yU3JjQXJnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYgKGZpZWxkT3JFeHBWYWxPclNyY0FyZyA9PT0gbnVsbCB8fCBmaWVsZE9yRXhwVmFsT3JTcmNBcmcgaW5zdGFuY2VvZiBFeHBWYWwpKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMihmaWVsZE9yRXhwVmFsT3JTcmNBcmcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzMoZmllbGRPckV4cFZhbE9yU3JjQXJnKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl90eXBlID0gJ1xcMCcvKidcdTAwMDAnKi87XHJcbiAgICB0aGlzLl9mbGQgPSBudWxsO1xyXG4gICAgdGhpcy5fZXhwID0gbnVsbDtcclxuICAgIHRoaXMuX3NraXAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUiAtIGNyZWF0ZSBhbiBhcmd1bWVudCBmcm9tIGEgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMShmaWVsZDogRmllbGRCYXNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9mbGQgPSBmaWVsZDtcclxuICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRCAvKidGJyovO1xyXG4gICAgdGhpcy5fZXhwID0gbnVsbDtcclxuICAgIHRoaXMuX3NraXAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SIHRoYXQgY3JlYXRlcyBhIFwiVmFsdWVcIiB0eXBlIGFyZ3VtZW50IGZyb20gYSBnaXZlbiBFeHByZXNzaW9uIFZhbHVlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFZhbFwiPnRoZSBzb3VyY2UgZXhwcmVzc2lvbiB2YWx1ZTwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8yKGV4cFZhbDogRXhwVmFsKTogdm9pZCB7XHJcbiAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU7XHJcbiAgICB0aGlzLl9mbGQgPSBudWxsO1xyXG4gICAgdGhpcy5fZXhwID0gbnVsbDtcclxuICAgIHRoaXMuX3NraXAgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoZXhwVmFsLklzTnVsbClcclxuICAgICAgdGhpcy5fdmFsID0gbnVsbDtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fdmFsID0gZXhwVmFsLlRvTWdWYWwoKTtcclxuXHJcbiAgICB0aGlzLl92YWx1ZUlzTnVsbCA9ICh0aGlzLl92YWwgPT09IG51bGwpO1xyXG4gICAgdGhpcy5fdmFsdWVBdHRyID0gZXhwVmFsLkF0dHI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUiB0aGF0IGNyZWF0ZXMgYSBcIlZhbHVlXCIgdHlwZSBhcmd1bWVudCBmcm9tIGEgZ2l2ZW4gRmllbGRCYXNlIG9yIEV4cHJlc3Npb24gdHlwZVxyXG4gIC8vLyAgIGFyZ3VtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNyY0FyZ1wiPnRoZSBzb3VyY2UgYXJndW1lbnQ8L3BhcmFtPlxyXG4gIGNvbnN0cnVjdG9yXzMoc3JjQXJnOiBBcmd1bWVudCkge1xyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFO1xyXG5cclxuICAgIHN3aXRjaCAoc3JjQXJnLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gc3JjQXJnLl9mbGQuZ2V0VHlwZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9TS0lQOlxyXG4gICAgICAgIHRoaXMuX3NraXAgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcImluIEFyZ3VtZW50LkFyZ3VtZW50KCk6IGlsbGVnYWwgc291cmNlIEFyZ3VtZW50IHR5cGUhXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIEluaXRpYWxpemUoc3JjQXJnOiBBcmd1bWVudCk6IFByb21pc2U8dm9pZD57XHJcbiAgICBzd2l0Y2ggKHNyY0FyZy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IHNyY0FyZy5fZmxkLmdldFZhbHVlKHRydWUpO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlSXNOdWxsID0gc3JjQXJnLl9mbGQuaXNOdWxsKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICBsZXQgcmV0VmFsID0gYXdhaXQgc3JjQXJnLl9leHAuZXZhbHVhdGVXaXRoUmVzTGVuZ3RoKDI1NSk7XHJcbiAgICAgICAgdGhpcy5fdmFsID0gcmV0VmFsLm1nVmFsO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IHJldFZhbC50eXBlO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlSXNOdWxsID0gKHRoaXMuX3ZhbCA9PSBudWxsKTtcclxuICAgICAgICBpZiAodGhpcy5fdmFsdWVJc051bGwpXHJcbiAgICAgICAgICB0aGlzLl92YWwgPSBBcmd1bWVudC5nZXRFbXB0eVZhbHVlKChyZXRWYWwudHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CIHx8XHJcbiAgICAgICAgICAgIHJldFZhbC50eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgUGFyc2luZyBBcmd1bWVudCBzdHJpbmcgYW5kIGZpbGwgaW5uZXIgb2JqZWN0c1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJhcmdcIj5zdHJpbmcgdG8gcGFyc2UgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNyY1Rhc2tcIj5vZiB0aGUgYXJndW1lbnQgdG8gZmluZCBleHByZXNzaW9uIGFyZ3VtZW50IDwvcGFyYW0+XHJcbiAgcHVibGljIGZpbGxEYXRhKGFyZzogU3RyaW5nLCBzcmNUYXNrOiBUYXNrKTogdm9pZCB7XHJcbiAgICB0aGlzLl90eXBlID0gYXJnWzBdO1xyXG4gICAgbGV0IGFyZ0VsZW1lbnRzOiBzdHJpbmcgPSBhcmcuc3Vic3RyKDIpO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOiB7XHJcbiAgICAgICAgbGV0IGZpZWxkSWQ6IHN0cmluZ1tdID0gYXJnRWxlbWVudHMuc3BsaXQoJywnKTtcclxuICAgICAgICBsZXQgcGFyZW50OiBudW1iZXIgPSAgTk51bWJlci5QYXJzZShmaWVsZElkWzBdKTtcclxuICAgICAgICBsZXQgZmxkSWR4OiBudW1iZXIgPSAgTk51bWJlci5QYXJzZShmaWVsZElkWzFdKTtcclxuICAgICAgICB0aGlzLl9mbGQgPSA8RmllbGRCYXNlPnNyY1Rhc2suZ2V0RmllbGREZWYocGFyZW50LCBmbGRJZHgpO1xyXG4gICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICBsZXQgZXhwTnVtOiBudW1iZXIgPSBOTnVtYmVyLlBhcnNlKGFyZ0VsZW1lbnRzKTtcclxuICAgICAgICB0aGlzLl9leHAgPSBzcmNUYXNrLmdldEV4cEJ5SWQoZXhwTnVtKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfU0tJUDpcclxuICAgICAgICB0aGlzLl9za2lwID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJpbiBBcmd1bWVudC5GaWxsRGF0YSgpIGlsbGVnYWwgdHlwZTogXCIgKyBhcmcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGJ1aWxkIHRoZSBYTUwgc3RyaW5nIGZvciB0aGUgYXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibWVzc2FnZVwiPnRoZSBYTUwgc3RyaW5nIHRvIGFwcGVuZCB0aGUgYXJndW1lbnQgdG88L3BhcmFtPlxyXG4gIHB1YmxpYyBidWlsZFhNTChtZXNzYWdlOiBTdHJpbmdCdWlsZGVyKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChcIkY6XCIgKyB0aGlzLl9mbGQuZ2V0VGFzaygpLmdldFRhc2tUYWcoKSArIFwiLFwiICsgdGhpcy5fZmxkLmdldElkKCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCJFOlwiICsgdGhpcy5fZXhwLmdldElkKCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9TS0lQOlxyXG4gICAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiWDowXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJpbiBBcmd1bWVudC5idWlsZFhNTCgpIGlsbGVnYWwgdHlwZTogXCIgKyB0aGlzLl90eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBhcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZm9yIGZpZWxkIHR5cGUgYXJndW1lbnRzIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRGaWVsZCgpOiBGaWVsZEJhc2Uge1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEKVxyXG4gICAgICByZXR1cm4gdGhpcy5fZmxkO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZm9yIGV4cHJlc3Npb24gdHlwZSBhcmd1bWVudHMgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgZXhwcmVzc2lvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJvdGVjdGVkIGdldEV4cCgpOiBFeHByZXNzaW9uIHtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFApXHJcbiAgICAgIHJldHVybiB0aGlzLl9leHA7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgdGhlIHZhbHVlIG9mIHRoaXMgYXJndW1lbnQgdG8gYSBnaXZlbiBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJkZXN0RmxkXCI+dGhlIGRlc3RpbmF0aW9uIGZpZWxkXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgcHVibGljIGFzeW5jIHNldFZhbHVlVG9GaWVsZChkZXN0RmxkOiBGaWVsZEJhc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB2YWw6IHN0cmluZztcclxuICAgIGxldCBpc051bGw6IGJvb2xlYW47XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6XHJcbiAgICAgICAgdmFsID0gdGhpcy5fZmxkLmdldFZhbHVlKHRydWUpO1xyXG4gICAgICAgIHZhbCA9IEFyZ3VtZW50LmNvbnZlcnRBcmdzKHZhbCwgdGhpcy5fZmxkLmdldFR5cGUoKSwgZGVzdEZsZC5nZXRUeXBlKCkpO1xyXG4gICAgICAgIGlzTnVsbCA9IHRoaXMuX2ZsZC5pc051bGwoKSB8fCB2YWwgPT0gbnVsbDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIHZhbCA9IGF3YWl0IHRoaXMuX2V4cC5ldmFsdWF0ZVdpdGhSZXN1bHRUeXBlQW5kTGVuZ3RoKGRlc3RGbGQuZ2V0VHlwZSgpLCBkZXN0RmxkLmdldFNpemUoKSk7XHJcbiAgICAgICAgaXNOdWxsID0gKHZhbCA9PSBudWxsKTtcclxuICAgICAgICBpZiAoaXNOdWxsKVxyXG4gICAgICAgICAgdmFsID0gQXJndW1lbnQuZ2V0RW1wdHlWYWx1ZSgoZGVzdEZsZC5nZXRUeXBlKCkgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiB8fFxyXG4gICAgICAgICAgICBkZXN0RmxkLmdldFR5cGUoKSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUikpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFOlxyXG4gICAgICAgIHZhbCA9IEFyZ3VtZW50LmNvbnZlcnRBcmdzKHRoaXMuX3ZhbCwgdGhpcy5fdmFsdWVBdHRyLCBkZXN0RmxkLmdldFR5cGUoKSk7XHJcbiAgICAgICAgaXNOdWxsID0gdGhpcy5fdmFsdWVJc051bGwgfHwgdmFsID09IG51bGw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gVXBkYXRlIGRlc3RpbmF0aW9uIGZpZWxkJ3MgX2lzTlVMTCB3aXRoIHRoZSB2YWx1ZSBmcm9tIHJlY29yZC4gVGhpcyBpcyBuZWVkZWQgdG8gaWRlbnRpZnlcclxuICAgIC8vIGlmIHRoZSB2YXJpYWJsZSBpcyBtb2RpZmllZC5cclxuICAgIGRlc3RGbGQudGFrZVZhbEZyb21SZWMoKTtcclxuICAgIGF3YWl0IGRlc3RGbGQuc2V0VmFsdWVBbmRTdGFydFJlY29tcHV0ZSh2YWwsIGlzTnVsbCwgKDxUYXNrPmRlc3RGbGQuZ2V0VGFzaygpKS5EYXRhVmlld1dhc1JldHJpZXZlZCwgZmFsc2UsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBjb252ZXJ0cyBBbHBoYS9Vbmljb2RlIHZhbHVlcyB0byBCbG9iIGFuZCB2aWNlIHZlcnNhLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidmFsdWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNyY0F0dHJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImV4cGVjdGVkVHlwZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRBcmdzKHZhbHVlOiBzdHJpbmcsIHNyY0F0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUsIGV4cGVjdGVkVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgaW52YWxpZEFyZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHN3aXRjaCAoZXhwZWN0ZWRUeXBlKSB7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgICAgaWYgKHNyY0F0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQikge1xyXG4gICAgICAgICAgaWYgKEJsb2JUeXBlLmlzVmFsaWRCbG9iKHZhbHVlKSlcclxuICAgICAgICAgICAgdmFsdWUgPSBCbG9iVHlwZS5nZXRTdHJpbmcodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLklzVHlwZUFscGhhT3JVbmljb2RlKHNyY0F0dHIpKVxyXG4gICAgICAgICAgaW52YWxpZEFyZyA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIGlmICghU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZU51bWVyaWMoc3JjQXR0cikpXHJcbiAgICAgICAgICBpbnZhbGlkQXJnID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CTE9COlxyXG4gICAgICAgIGlmIChTdG9yYWdlQXR0cmlidXRlQ2hlY2suSXNUeXBlQWxwaGFPclVuaWNvZGUoc3JjQXR0cikpIHtcclxuICAgICAgICAgIGxldCBjb250ZW50VHlwZTogc3RyaW5nID0gc3JjQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQVxyXG4gICAgICAgICAgICA/IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9BTlNJXHJcbiAgICAgICAgICAgIDogQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREU7XHJcbiAgICAgICAgICB2YWx1ZSA9IEJsb2JUeXBlLmNyZWF0ZUZyb21TdHJpbmcodmFsdWUsIGNvbnRlbnRUeXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIVN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5pc1R5cGVCbG9iKHNyY0F0dHIpKVxyXG4gICAgICAgICAgaW52YWxpZEFyZyA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlcmUgaXMgbWlzbWF0Y2ggaW4gYXR0cmlidXRlLCB0YWtlIGRlZmF1bHQgdmFsdWUgb2YgZXhwZWN0ZCBhcmd1bWVudC5cclxuICAgIGlmIChpbnZhbGlkQXJnKVxyXG4gICAgICB2YWx1ZSA9IEZpZWxkRGVmLmdldE1hZ2ljRGVmYXVsdFZhbHVlKGV4cGVjdGVkVHlwZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHZhbHVlIG9mIEFyZ3VtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFR5cGVcIj50eXBlIG9mIGV4cGVjdGVkIHR5cGUgb2YgZXZhbHVhdGlvbjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBTaXplXCI+c2l6ZSBvZiBleHBlY3RlZCBzdHJpbmcgZnJvbSBldmFsdWF0aW9uPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHZhbHVlIG9mIHRoZSBBcmd1bWVudDwvcmV0dXJucz5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWUoZXhwVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgZXhwU2l6ZTogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICB0aGlzLl92YWwgPSBhd2FpdCB0aGlzLl9leHAuZXZhbHVhdGVXaXRoUmVzdWx0VHlwZUFuZExlbmd0aChleHBUeXBlLCBleHBTaXplKTtcclxuICAgICAgICBpZiAodGhpcy5fdmFsID09IG51bGwpXHJcbiAgICAgICAgICB0aGlzLl92YWwgPSBBcmd1bWVudC5nZXRFbXB0eVZhbHVlKGV4cFR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQlxyXG4gICAgICAgICAgICB8fCBleHBUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6XHJcbiAgICAgICAgdGhpcy5fdmFsID0gdGhpcy5fZmxkLmdldFZhbHVlKHRydWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTpcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxyZXR1cm5zPiB2YWx1ZSBvZiB0aGUgc2tpcCBmbGFnIDwvcmV0dXJucz5cclxuICBza2lwQXJnKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NraXA7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZmlsbCBhbiBhcmd1bWVudCBkYXRhIGZyb20gYSBwYXJhbWV0ZXIgZGF0YVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwYXJhbVZhbHVlQXR0clwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwYXJhbVZhbHVlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInBhcmFtTnVsbFwiPjwvcGFyYW0+XHJcbiAgZmlsbERhdGFCeVBhcmFtcyhwYXJhbVZhbHVlQXR0cjogU3RvcmFnZUF0dHJpYnV0ZSwgcGFyYW1WYWx1ZTogc3RyaW5nLCBwYXJhbU51bGw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3ZhbHVlQXR0ciA9IHBhcmFtVmFsdWVBdHRyO1xyXG4gICAgdGhpcy5fdmFsID0gcGFyYW1WYWx1ZTtcclxuICAgIHRoaXMuX3ZhbHVlSXNOdWxsID0gcGFyYW1OdWxsO1xyXG5cclxuICAgIC8vIFRoZSBzZXJ2ZXIgaW5kaWNhdGVzIHNraXAgb24gYSBwYXJhbWV0ZXIgYnkgc2VuZGluZyBEQVRBX1RZUEVfU0tJUCBpbnN0ZWFkIG9mIHRoZSByZWFsIGF0dHJpYnV0ZS5cclxuICAgIGlmICh0aGlzLl92YWx1ZUF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuU0tJUCkge1xyXG4gICAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfU0tJUCAvKidYJyovO1xyXG4gICAgICB0aGlzLl9za2lwID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUUgLypWKi87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHJldHVybnMgZW1wdHkgdmFsdWU8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaXNCbG9iXCI+LSB0cnVlIGlzIHZhbHVlIGlzIGZvciBibG9iPC9wYXJhbT5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRFbXB0eVZhbHVlKGlzQmxvYjogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXNCbG9iID8gKEJsb2JUeXBlLmdldEVtcHR5QmxvYlByZWZpeCgnXFwwJykgLyonXHUwMDAwJyovICsgXCI7XCIpIDogXCJcIjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZmlsbCB0aGUgYXJndW1lbnQgZnJvbSBhIHN0cmluZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYXJnU3RyXCI+PC9wYXJhbT5cclxuICBwdWJsaWMgRmlsbEZyb21TdHJpbmcoYXJnU3RyOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIHR5cGUgaXMgYWx3YXlzIGEgdmFsdWVcclxuICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTtcclxuXHJcbiAgICBsZXQgYXJnVHlwZTogc3RyaW5nID0gbnVsbDtcclxuICAgIC8vIElmIHN0cmluZyBpcyBzaG9ydGVyIHRoYW4gMywgYXNzdW1lIGl0IGRvZXMgbm90IGhhdmUgYW4gYXR0cmlidXRlIGlkZW50aWZpZXJcclxuICAgIGlmIChhcmdTdHIubGVuZ3RoID4gMilcclxuICAgICAgYXJnVHlwZSA9IGFyZ1N0ci5zdWJzdHIoMCwgMik7XHJcblxyXG4gICAgc3dpdGNoIChhcmdUeXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19BTFBIQTpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfVU5JQ09ERTpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19OVU1FUklDOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX0RPVUJMRTpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19MT0dJQ0FMOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX05VTEw6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIC8vIGlmIHN0b3JhZ2UgdHlwZSBpcyBub3QgZGVmaW5lZCwgYXNzdW1lIGFscGhhIHN0cmluZyBhbmQgdGhlIGVudGlyZSBzdHJpbmcgaXMgdGhlIHZhbHVlXHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuICAgICAgICB0aGlzLl92YWwgPSBhcmdTdHI7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gdGhlIGNhc2UgdGhlIHN0cmluZyBpcyB0b28gc2hvcnQgd2FzIGRlYWx0IHdpdGggZWFybGllciAtIGl0IHdpbGwgZ2V0IHRvIHRoZSBkZWZhdWx0IGNhc2UgaW4gdGhlIHN3aXRjaFxyXG4gICAgLy8gYW5kIHJldHVybiBmcm9tIHRoZXJlXHJcbiAgICB0aGlzLl92YWwgPSBhcmdTdHIuc3Vic3RyKDIpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -19,12 +19,6 @@ export class Boundary {
|
|
|
19
19
|
else
|
|
20
20
|
this.constructor_1(task, minIdx, maxIdx, returnType, size, cacheTableId);
|
|
21
21
|
}
|
|
22
|
-
get MaxExpVal() {
|
|
23
|
-
return this._maxExpVal;
|
|
24
|
-
}
|
|
25
|
-
get MinExpVal() {
|
|
26
|
-
return this._minExpVal;
|
|
27
|
-
}
|
|
28
22
|
constructor_0(task, minIdx, maxIdx, returnType, size) {
|
|
29
23
|
this.constructor_1(task, minIdx, maxIdx, returnType, size, -1);
|
|
30
24
|
}
|
|
@@ -155,4 +149,4 @@ export class Boundary {
|
|
|
155
149
|
]);
|
|
156
150
|
}
|
|
157
151
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmRhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0JvdW5kYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHM0QsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtuRCxNQUFNLE9BQU8sUUFBUTtJQXVCbkIsWUFBWSxJQUFVLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxVQUE0QixFQUFFLElBQVksRUFBRSxZQUFxQjtRQXRCakgscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLFNBQUksR0FBZSxJQUFJLENBQUM7UUFDeEIsU0FBSSxHQUFlLElBQUksQ0FBQztRQUN4QixhQUFRLEdBQXFCLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNuRCxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGVBQVUsR0FBVyxJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUVsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFhNUIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7O1lBRTNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUs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QUFJLFNBQVMsR0FBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU0sR0FBWSxLQUFLLENBQUM7UUFHNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQzNCLElBQUksV0FBVyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBRWpELEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3RDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ2QsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V4cHJlc3Npb25FdmFsdWF0b3IsIE51bGxWYWx1ZUV4Y2VwdGlvbn0gZnJvbSBcIi4uL2V4cC9FeHByZXNzaW9uRXZhbHVhdG9yXCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvciwgRXhwVmFsfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlLCBTdHJVdGlsfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0V4cHJlc3Npb259IGZyb20gXCIuLi9leHAvRXhwcmVzc2lvblwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7Q2hhciwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIHRoaXMgY2xhc3MgcmVwcmVzZW50IGEgcmFuZ2Ugb3IgbG9jYXRlIHNlY3Rpb25zIC0gaS5lLiBtaW4vbWF4IGV4cHJlc3Npb25zXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBCb3VuZGFyeSB7XHJcbiAgcHJpdmF0ZSBfY2FjaGVUYWJsZUZsZElkOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX21heDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbWluOiBFeHByZXNzaW9uID0gbnVsbDtcclxuICBwcml2YXRlIF9yZXRUeXBlOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FO1xyXG4gIHByaXZhdGUgX3NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfbWF4RXhwVmFsOiBFeHBWYWwgPSBudWxsO1xyXG4gIHByaXZhdGUgX21pbkV4cFZhbDogRXhwVmFsID0gbnVsbDtcclxuXHJcbiAgRGlzY2FyZE1pbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIERpc2NhcmRNYXg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBNYXhFcXVhbHNNaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IE1heEV4cFZhbCgpOiBFeHBWYWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heEV4cFZhbDtcclxuICB9XHJcblxyXG4gIGdldCBNaW5FeHBWYWwoKTogRXhwVmFsIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5FeHBWYWw7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrLCBtaW5JZHg6IG51bWJlciwgbWF4SWR4OiBudW1iZXIsIHJldHVyblR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHNpemU6IG51bWJlcik7XHJcbiAgY29uc3RydWN0b3IodGFzazogVGFzaywgbWluSWR4OiBudW1iZXIsIG1heElkeDogbnVtYmVyLCByZXR1cm5UeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBzaXplOiBudW1iZXIsIGNhY2hlVGFibGVJZDogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrLCBtaW5JZHg6IG51bWJlciwgbWF4SWR4OiBudW1iZXIsIHJldHVyblR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHNpemU6IG51bWJlciwgY2FjaGVUYWJsZUlkPzogbnVtYmVyKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gNSlcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKHRhc2ssIG1pbklkeCwgbWF4SWR4LCByZXR1cm5UeXBlLCBzaXplKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8xKHRhc2ssIG1pbklkeCwgbWF4SWR4LCByZXR1cm5UeXBlLCBzaXplLCBjYWNoZVRhYmxlSWQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgQm91bmRhcnkgb2JqZWN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJtaW5JZHhcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1heElkeFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmV0dXJuVHlwZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic2l6ZVwiPjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8wKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzEodGFzaywgbWluSWR4LCBtYXhJZHgsIHJldHVyblR5cGUsIHNpemUsIC0xKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMSh0YXNrOiBUYXNrLCBtaW5JZHg6IG51bWJlciwgbWF4SWR4OiBudW1iZXIsIHJldHVyblR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHNpemU6IG51bWJlciwgY2FjaGVUYWJsZUlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JldFR5cGUgPSByZXR1cm5UeXBlO1xyXG4gICAgdGhpcy5fc2l6ZSA9IHNpemU7XHJcbiAgICB0aGlzLl9jYWNoZVRhYmxlRmxkSWQgPSBjYWNoZVRhYmxlSWQ7XHJcbiAgICBpZiAobWluSWR4ICE9PSAtMSlcclxuICAgICAgdGhpcy5fbWluID0gdGFzay5nZXRFeHBCeUlkKG1pbklkeCk7XHJcblxyXG4gICAgaWYgKG1heElkeCAhPT0gLTEpXHJcbiAgICAgIHRoaXMuX21heCA9IHRhc2suZ2V0RXhwQnlJZChtYXhJZHgpO1xyXG4gIH1cclxuXHJcbiAgLy8gc29tZXRpbWVzIHRoZSBtaW4gb3IgbWF4IGRvZXMgbm90IGhhdmUgYW4gZXhwcmVzc2lvblxyXG4gIGhhc01pbkV4cCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9taW4gIT09IG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBzb21ldGltZXMgdGhlIG1pbiBvciBtYXggZG9lcyBub3QgaGF2ZSBhbiBleHByZXNzaW9uXHJcbiAgaGFzTWF4RXhwKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heCAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBtaW4vbWF4IGV4cHJlc3Npb25zIHJldHVybiB0eXBlIC0gaXQgYWN0dWFsbHkgdGhlIHR5cGUgb2YgdGhlIGZpZWxkIHRoZXkgYXJlIEFzc29jaWF0ZWQgd2l0aFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0RXhwVHlwZSgpOiBTdG9yYWdlQXR0cmlidXRlIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXRUeXBlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIGlkIG9mIHRoZSBjYWNoZWQgdGFibGUgZmllbGQgdGhpcyByYW5nZSBjb3JyZXNwb25kcyB0b1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0Q2FjaGVUYWJsZUZsZElkKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVUYWJsZUZsZElkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNvbXB1dGVzIHRoZSBtaW4gYW5kIG1heCBleHByZXNzaW9uIHRvIGNoZWNrIHRoZWlyIHZhbHVlc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYXN5bmMgY29tcHV0ZShwYWRWYWx1ZVdpdGhNaW5NYXhDaGFyYWN0ZXJzOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5oYXNNaW5FeHAoKSkge1xyXG5cclxuICAgICAgLy8gZXZhbHVhdGUgdGhlIG1pbiBleHByZXNzaW9uXHJcbiAgICAgIGxldCBtaW5WYWw6IHN0cmluZyA9IGF3YWl0IHRoaXMuX21pbi5ldmFsdWF0ZVdpdGhSZXN1bHRUeXBlQW5kTGVuZ3RoKHRoaXMuZ2V0RXhwVHlwZSgpLCB0aGlzLl9zaXplKTtcclxuICAgICAgaWYgKG1pblZhbCAhPT0gbnVsbCkge1xyXG4gICAgICAgIG1pblZhbCA9IE5TdHJpbmcuVHJpbUVuZChtaW5WYWwsIG5ldyBBcnJheTxzdHJpbmc+KDApKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fbWluRXhwVmFsID0gbmV3IEV4cFZhbCh0aGlzLmdldEV4cFR5cGUoKSwgbWluVmFsID09PSBudWxsLCBtaW5WYWwpO1xyXG5cclxuICAgICAgLy8gY2hlY2sgYW5kIHNldCB0aGUgTWF4RXF1YWxzTWluIGJlZm9yZSB0aGUgd2lsZCBjaGFycyBhcmUgcmVwbGFjZWQgb24gdGhlIHN0cmluZyByZXN1bHRcclxuICAgICAgdGhpcy5NYXhFcXVhbHNNaW4gPSB0aGlzLklzTWF4RXF1YWxzTWluKCk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuX21pbkV4cFZhbC5Jc051bGwgJiYgKHRoaXMuX21pbkV4cFZhbC5BdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8IHRoaXMuX21pbkV4cFZhbC5BdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUpKSB7XHJcbiAgICAgICAgaWYgKHBhZFZhbHVlV2l0aE1pbk1heENoYXJhY3RlcnMpIHtcclxuICAgICAgICAgIHRoaXMuX21pbkV4cFZhbC5TdHJWYWwgPSBEaXNwbGF5Q29udmVydG9yLlN0cmluZ1ZhbHVlVG9NZ1ZhbHVlKHRoaXMuX21pbkV4cFZhbC5TdHJWYWwsIHRoaXMuX21pbkV4cFZhbC5BdHRyLCBDaGFyLk1pblZhbHVlLCAvKidcdTAwMDAnKi90aGlzLl9zaXplKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgdGhpcy5NYXhFcXVhbHNNaW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbWluRXhwVmFsLlN0clZhbCA9IFN0clV0aWwuU2VhcmNoQW5kUmVwbGFjZVdpbGRDaGFycyh0aGlzLl9taW5FeHBWYWwuU3RyVmFsLCB0aGlzLl9zaXplLCBDaGFyLk1pblZhbHVlKS8qJ1x1MDAwMCcqLztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLkRpc2NhcmRNaW4gPSBhd2FpdCB0aGlzLl9taW4uRGlzY2FyZENuZFJhbmdlUmVzdWx0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaGFzTWF4RXhwKCkpIHtcclxuXHJcbiAgICAgIC8vIGV2YWx1YXRlIHRoZSBtYXggZXhwcmVzc2lvblxyXG4gICAgICBsZXQgbWF4VmFsOiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9tYXguZXZhbHVhdGVXaXRoUmVzdWx0VHlwZUFuZExlbmd0aCh0aGlzLmdldEV4cFR5cGUoKSwgdGhpcy5fc2l6ZSk7XHJcbiAgICAgIHRoaXMuX21heEV4cFZhbCA9IG5ldyBFeHBWYWwodGhpcy5nZXRFeHBUeXBlKCksIG1heFZhbCA9PT0gbnVsbCwgbWF4VmFsKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5fbWF4RXhwVmFsLklzTnVsbCAmJiAodGhpcy5fbWF4RXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdGhpcy5fbWF4RXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSkpIHtcclxuICAgICAgICBpZiAocGFkVmFsdWVXaXRoTWluTWF4Q2hhcmFjdGVycykge1xyXG4gICAgICAgICAgdGhpcy5fbWF4RXhwVmFsLlN0clZhbCA9IERpc3BsYXlDb252ZXJ0b3IuU3RyaW5nVmFsdWVUb01nVmFsdWUodGhpcy5fbWF4RXhwVmFsLlN0clZhbCwgdGhpcy5fbWF4RXhwVmFsLkF0dHIsIENoYXIuTWF4VmFsdWUgLyon77+/JyovLCB0aGlzLl9zaXplKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbWF4RXhwVmFsLlN0clZhbCA9IFN0clV0aWwuU2VhcmNoQW5kUmVwbGFjZVdpbGRDaGFycyh0aGlzLl9tYXhFeHBWYWwuU3RyVmFsLCB0aGlzLl9zaXplLCBDaGFyLk1heFZhbHVlKS8qJ++/vycqLztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLkRpc2NhcmRNYXggPSBhd2FpdCB0aGlzLl9tYXguRGlzY2FyZENuZFJhbmdlUmVzdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgdGhpcyBmdW5jdGlvbiBnZXRzIGEgdmFsdWUgYW5kIGNoZWNrcyB3aGV0aGVyIGl0IHNhdGlzZmllcyB0aGUgcmFuZ2Ugc2VjdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWxcIj4tIHRoZSB2YWx1ZSB0byBiZSBjb21wYXJlZFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIGNoZWNrUmFuZ2UodmFsOiBzdHJpbmcsIElzTnVsbDogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgbGV0IGNtcFZhbDogRXhwVmFsID0gbmV3IEV4cFZhbCh0aGlzLmdldEV4cFR5cGUoKSwgSXNOdWxsLCB2YWwpO1xyXG5cclxuICAgIGlmIChjbXBWYWwuSXNOdWxsICYmICgodGhpcy5oYXNNaW5FeHAoKSAmJiB0aGlzLl9taW5FeHBWYWwuSXNOdWxsKSB8fCAodGhpcy5oYXNNYXhFeHAoKSAmJiB0aGlzLl9tYXhFeHBWYWwuSXNOdWxsKSkpIHtcclxuICAgICAgcmVzID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyBjaGVjayBtaW4gZXhwcmVzc2lvbiBDb21wbGlhbmNlXHJcbiAgICAgIGlmICh0aGlzLmhhc01pbkV4cCgpKSB7XHJcblxyXG4gICAgICAgIC8vIGlmIGJvdGggb2YgdGhlIGNvbXBhcmVkIHZhbHVlcyBhcmUgbm90IG51bGxcclxuICAgICAgICBpZiAoIXRoaXMuX21pbkV4cFZhbC5Jc051bGwgJiYgIWNtcFZhbC5Jc051bGwpIHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIHRoZSBjb21wYXJlZCB2YWx1ZSBtdXN0IGJlIGVxdWFsIG9yIGdyZWF0ZXIgdG8gdGhlIG1pbiB2YWx1ZVxyXG4gICAgICAgICAgICBpZiAoRXhwcmVzc2lvbkV2YWx1YXRvci52YWxfY21wX2FueShjbXBWYWwsIHRoaXMuX21pbkV4cFZhbCkgPCAwKVxyXG4gICAgICAgICAgICAgIHJlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xyXG4gICAgICAgICAgICBpZiAoZXhjZXB0aW9uIGluc3RhbmNlb2YgTnVsbFZhbHVlRXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIHRocm93IGV4Y2VwdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAoY21wVmFsLklzTnVsbCAhPT0gdGhpcy5fbWluRXhwVmFsLklzTnVsbClcclxuICAgICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGNoZWNrIG1heCBleHByZXNzaW9uIENvbXBsaWFuY2VcclxuICAgICAgaWYgKHRoaXMuaGFzTWF4RXhwKCkgJiYgcmVzKSB7XHJcbiAgICAgICAgLy8gaWYgYm90aCBvZiB0aGUgY29tcGFyZWQgdmFsdWVzIGFyZSBub3QgbnVsbFxyXG4gICAgICAgIGlmICghdGhpcy5fbWF4RXhwVmFsLklzTnVsbCAmJiAhY21wVmFsLklzTnVsbCkge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gdGhlIGNvbXBhcmVkIHZhbHVlIG11c3QgYmUgZXF1YWwgb3IgZ3JlYXRlciB0byB0aGUgbWluIHZhbHVlXHJcbiAgICAgICAgICAgIGlmIChFeHByZXNzaW9uRXZhbHVhdG9yLnZhbF9jbXBfYW55KGNtcFZhbCwgdGhpcy5fbWF4RXhwVmFsKSA+IDApXHJcbiAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChleGNlcHRpb24gaW5zdGFuY2VvZiBOdWxsVmFsdWVFeGNlcHRpb24pXHJcbiAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICB0aHJvdyBleGNlcHRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmIG9uZSBvZiB0aGVtIGlzIG51bGwgYW5kIG51bGwgaXMgdGhlIGdyZWF0ZXN0IHZhbHVlIHRoZXJlIGlzIHdlIG11c3QgY2hlY2sgdGhhdCBtYXhFeHBWYWwgaXMgbm90IG51bGxcclxuICAgICAgICBlbHNlIGlmIChjbXBWYWwuSXNOdWxsICE9PSB0aGlzLl9tYXhFeHBWYWwuSXNOdWxsKVxyXG4gICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybnMgdHJ1ZSBpZiBtaW4gZXhwcmVzc2lvbiBlcXVhbCB0byBtYXggZXhwcmVzc2lvbiBhbmQgbm8gd2lsZCBjaGFycyAoKiwgPykgZXhpc3QgaW4gdGhlIHJhbmdlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIElzTWF4RXF1YWxzTWluKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuaGFzTWF4RXhwKCkgJiYgdGhpcy5oYXNNaW5FeHAoKSkge1xyXG4gICAgICBpZiAodGhpcy5fbWluLmdldElkKCkgPT09IHRoaXMuX21heC5nZXRJZCgpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3JldFR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdGhpcy5fcmV0VHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFKVxyXG4gICAgICAgICAgcmVzdWx0ID0gIXRoaXMuV2lsZENoYXJFeGlzdCgpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGNoZWNrcyBpZiB3aWxkIGNoYXIgZXhpc3QgaW4gdG5lIHZhbHVlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgV2lsZENoYXJFeGlzdCgpOiBib29sZWFuIHtcclxuICAgIGxldCB3aWxkQ2hhcnM6IHN0cmluZ1tdID0gW1wiKlwiLCBcIj9cIl07XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLy8gY2hlY2sgdHJpbVxyXG4gICAgaWYgKCF0aGlzLl9taW5FeHBWYWwuSXNOdWxsKSB7XHJcbiAgICAgIGxldCBzdHJpbmdWYWx1ZTogc3RyaW5nID0gdGhpcy5fbWluRXhwVmFsLlN0clZhbDtcclxuXHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB3aWxkQ2hhcnMubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgICBpZiAoc3RyaW5nVmFsdWUuZW5kc1dpdGgod2lsZENoYXJzW2ldKSkge1xyXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5Gb3JtYXQoXCJ7e0JvdW5kYXJ5OiB7MH0tezF9LCB7Mn0sIHszfX19XCIsIFtcclxuICAgICAgdGhpcy5fbWF4LCB0aGlzLl9tYXgsIHRoaXMuX3JldFR5cGUsIHRoaXMuX3NpemVcclxuICAgIF0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmRhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0JvdW5kYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHM0QsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtuRCxNQUFNLE9BQU8sUUFBUTtJQWdCbkIsWUFBWSxJQUFVLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxVQUE0QixFQUFFLElBQVksRUFBRSxZQUFxQjtRQWZqSCxxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFDN0IsU0FBSSxHQUFlLElBQUksQ0FBQztRQUN4QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGFBQVEsR0FBcUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQ25ELFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQVcsSUFBSSxDQUFDO1FBRWxDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQU01QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQzs7WUFFM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxV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TSxFQUFFO1lBQzNCLElBQUksV0FBVyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBRWpELEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3RDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ2QsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V4cHJlc3Npb25FdmFsdWF0b3IsIE51bGxWYWx1ZUV4Y2VwdGlvbn0gZnJvbSBcIi4uL2V4cC9FeHByZXNzaW9uRXZhbHVhdG9yXCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvciwgRXhwVmFsfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlLCBTdHJVdGlsfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0V4cHJlc3Npb259IGZyb20gXCIuLi9leHAvRXhwcmVzc2lvblwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7Q2hhciwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIHRoaXMgY2xhc3MgcmVwcmVzZW50IGEgcmFuZ2Ugb3IgbG9jYXRlIHNlY3Rpb25zIC0gaS5lLiBtaW4vbWF4IGV4cHJlc3Npb25zXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBCb3VuZGFyeSB7XHJcbiAgcHJpdmF0ZSBfY2FjaGVUYWJsZUZsZElkOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX21heDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbWluOiBFeHByZXNzaW9uID0gbnVsbDtcclxuICBwcml2YXRlIF9yZXRUeXBlOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FO1xyXG4gIHByaXZhdGUgX3NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfbWF4RXhwVmFsOiBFeHBWYWwgPSBudWxsO1xyXG4gIHByaXZhdGUgX21pbkV4cFZhbDogRXhwVmFsID0gbnVsbDtcclxuXHJcbiAgRGlzY2FyZE1pbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIERpc2NhcmRNYXg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBNYXhFcXVhbHNNaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrLCBtaW5JZHg6IG51bWJlciwgbWF4SWR4OiBudW1iZXIsIHJldHVyblR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHNpemU6IG51bWJlciwgY2FjaGVUYWJsZUlkOiBudW1iZXIpO1xyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyLCBjYWNoZVRhYmxlSWQ/OiBudW1iZXIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA1KVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAodGFzaywgbWluSWR4LCBtYXhJZHgsIHJldHVyblR5cGUsIHNpemUpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEodGFzaywgbWluSWR4LCBtYXhJZHgsIHJldHVyblR5cGUsIHNpemUsIGNhY2hlVGFibGVJZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyBCb3VuZGFyeSBvYmplY3RcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1pbklkeFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibWF4SWR4XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJyZXR1cm5UeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzaXplXCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAodGFzazogVGFzaywgbWluSWR4OiBudW1iZXIsIG1heElkeDogbnVtYmVyLCByZXR1cm5UeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBzaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMSh0YXNrLCBtaW5JZHgsIG1heElkeCwgcmV0dXJuVHlwZSwgc2l6ZSwgLTEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyLCBjYWNoZVRhYmxlSWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fcmV0VHlwZSA9IHJldHVyblR5cGU7XHJcbiAgICB0aGlzLl9zaXplID0gc2l6ZTtcclxuICAgIHRoaXMuX2NhY2hlVGFibGVGbGRJZCA9IGNhY2hlVGFibGVJZDtcclxuICAgIGlmIChtaW5JZHggIT09IC0xKVxyXG4gICAgICB0aGlzLl9taW4gPSB0YXNrLmdldEV4cEJ5SWQobWluSWR4KTtcclxuXHJcbiAgICBpZiAobWF4SWR4ICE9PSAtMSlcclxuICAgICAgdGhpcy5fbWF4ID0gdGFzay5nZXRFeHBCeUlkKG1heElkeCk7XHJcbiAgfVxyXG5cclxuICAvLyBzb21ldGltZXMgdGhlIG1pbiBvciBtYXggZG9lcyBub3QgaGF2ZSBhbiBleHByZXNzaW9uXHJcbiAgaGFzTWluRXhwKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbiAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vIHNvbWV0aW1lcyB0aGUgbWluIG9yIG1heCBkb2VzIG5vdCBoYXZlIGFuIGV4cHJlc3Npb25cclxuICBoYXNNYXhFeHAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4ICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIG1pbi9tYXggZXhwcmVzc2lvbnMgcmV0dXJuIHR5cGUgLSBpdCBhY3R1YWxseSB0aGUgdHlwZSBvZiB0aGUgZmllbGQgdGhleSBhcmUgQXNzb2NpYXRlZCB3aXRoXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRFeHBUeXBlKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JldFR5cGU7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgaWQgb2YgdGhlIGNhY2hlZCB0YWJsZSBmaWVsZCB0aGlzIHJhbmdlIGNvcnJlc3BvbmRzIHRvXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRDYWNoZVRhYmxlRmxkSWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZVRhYmxlRmxkSWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY29tcHV0ZXMgdGhlIG1pbiBhbmQgbWF4IGV4cHJlc3Npb24gdG8gY2hlY2sgdGhlaXIgdmFsdWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhc3luYyBjb21wdXRlKHBhZFZhbHVlV2l0aE1pbk1heENoYXJhY3RlcnM6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmhhc01pbkV4cCgpKSB7XHJcblxyXG4gICAgICAvLyBldmFsdWF0ZSB0aGUgbWluIGV4cHJlc3Npb25cclxuICAgICAgbGV0IG1pblZhbDogc3RyaW5nID0gYXdhaXQgdGhpcy5fbWluLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgodGhpcy5nZXRFeHBUeXBlKCksIHRoaXMuX3NpemUpO1xyXG4gICAgICBpZiAobWluVmFsICE9PSBudWxsKSB7XHJcbiAgICAgICAgbWluVmFsID0gTlN0cmluZy5UcmltRW5kKG1pblZhbCwgbmV3IEFycmF5PHN0cmluZz4oMCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9taW5FeHBWYWwgPSBuZXcgRXhwVmFsKHRoaXMuZ2V0RXhwVHlwZSgpLCBtaW5WYWwgPT09IG51bGwsIG1pblZhbCk7XHJcblxyXG4gICAgICAvLyBjaGVjayBhbmQgc2V0IHRoZSBNYXhFcXVhbHNNaW4gYmVmb3JlIHRoZSB3aWxkIGNoYXJzIGFyZSByZXBsYWNlZCBvbiB0aGUgc3RyaW5nIHJlc3VsdFxyXG4gICAgICB0aGlzLk1heEVxdWFsc01pbiA9IHRoaXMuSXNNYXhFcXVhbHNNaW4oKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5fbWluRXhwVmFsLklzTnVsbCAmJiAodGhpcy5fbWluRXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdGhpcy5fbWluRXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSkpIHtcclxuICAgICAgICBpZiAocGFkVmFsdWVXaXRoTWluTWF4Q2hhcmFjdGVycykge1xyXG4gICAgICAgICAgdGhpcy5fbWluRXhwVmFsLlN0clZhbCA9IERpc3BsYXlDb252ZXJ0b3IuU3RyaW5nVmFsdWVUb01nVmFsdWUodGhpcy5fbWluRXhwVmFsLlN0clZhbCwgdGhpcy5fbWluRXhwVmFsLkF0dHIsIENoYXIuTWluVmFsdWUsIC8qJ1x1MDAwMCcqL3RoaXMuX3NpemUpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICB0aGlzLk1heEVxdWFsc01pbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5FeHBWYWwuU3RyVmFsID0gU3RyVXRpbC5TZWFyY2hBbmRSZXBsYWNlV2lsZENoYXJzKHRoaXMuX21pbkV4cFZhbC5TdHJWYWwsIHRoaXMuX3NpemUsIENoYXIuTWluVmFsdWUpLyonXHUwMDAwJyovO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuRGlzY2FyZE1pbiA9IGF3YWl0IHRoaXMuX21pbi5EaXNjYXJkQ25kUmFuZ2VSZXN1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSkge1xyXG5cclxuICAgICAgLy8gZXZhbHVhdGUgdGhlIG1heCBleHByZXNzaW9uXHJcbiAgICAgIGxldCBtYXhWYWw6IHN0cmluZyA9IGF3YWl0IHRoaXMuX21heC5ldmFsdWF0ZVdpdGhSZXN1bHRUeXBlQW5kTGVuZ3RoKHRoaXMuZ2V0RXhwVHlwZSgpLCB0aGlzLl9zaXplKTtcclxuICAgICAgdGhpcy5fbWF4RXhwVmFsID0gbmV3IEV4cFZhbCh0aGlzLmdldEV4cFR5cGUoKSwgbWF4VmFsID09PSBudWxsLCBtYXhWYWwpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLl9tYXhFeHBWYWwuSXNOdWxsICYmICh0aGlzLl9tYXhFeHBWYWwuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl9tYXhFeHBWYWwuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFKSkge1xyXG4gICAgICAgIGlmIChwYWRWYWx1ZVdpdGhNaW5NYXhDaGFyYWN0ZXJzKSB7XHJcbiAgICAgICAgICB0aGlzLl9tYXhFeHBWYWwuU3RyVmFsID0gRGlzcGxheUNvbnZlcnRvci5TdHJpbmdWYWx1ZVRvTWdWYWx1ZSh0aGlzLl9tYXhFeHBWYWwuU3RyVmFsLCB0aGlzLl9tYXhFeHBWYWwuQXR0ciwgQ2hhci5NYXhWYWx1ZSAvKifvv78nKi8sIHRoaXMuX3NpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9tYXhFeHBWYWwuU3RyVmFsID0gU3RyVXRpbC5TZWFyY2hBbmRSZXBsYWNlV2lsZENoYXJzKHRoaXMuX21heEV4cFZhbC5TdHJWYWwsIHRoaXMuX3NpemUsIENoYXIuTWF4VmFsdWUpLyon77+/JyovO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuRGlzY2FyZE1heCA9IGF3YWl0IHRoaXMuX21heC5EaXNjYXJkQ25kUmFuZ2VSZXN1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICB0aGlzIGZ1bmN0aW9uIGdldHMgYSB2YWx1ZSBhbmQgY2hlY2tzIHdoZXRoZXIgaXQgc2F0aXNmaWVzIHRoZSByYW5nZSBzZWN0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPi0gdGhlIHZhbHVlIHRvIGJlIGNvbXBhcmVkXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgY2hlY2tSYW5nZSh2YWw6IHN0cmluZywgSXNOdWxsOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgY21wVmFsOiBFeHBWYWwgPSBuZXcgRXhwVmFsKHRoaXMuZ2V0RXhwVHlwZSgpLCBJc051bGwsIHZhbCk7XHJcblxyXG4gICAgaWYgKGNtcFZhbC5Jc051bGwgJiYgKCh0aGlzLmhhc01pbkV4cCgpICYmIHRoaXMuX21pbkV4cFZhbC5Jc051bGwpIHx8ICh0aGlzLmhhc01heEV4cCgpICYmIHRoaXMuX21heEV4cFZhbC5Jc051bGwpKSkge1xyXG4gICAgICByZXMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIGNoZWNrIG1pbiBleHByZXNzaW9uIENvbXBsaWFuY2VcclxuICAgICAgaWYgKHRoaXMuaGFzTWluRXhwKCkpIHtcclxuXHJcbiAgICAgICAgLy8gaWYgYm90aCBvZiB0aGUgY29tcGFyZWQgdmFsdWVzIGFyZSBub3QgbnVsbFxyXG4gICAgICAgIGlmICghdGhpcy5fbWluRXhwVmFsLklzTnVsbCAmJiAhY21wVmFsLklzTnVsbCkge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gdGhlIGNvbXBhcmVkIHZhbHVlIG11c3QgYmUgZXF1YWwgb3IgZ3JlYXRlciB0byB0aGUgbWluIHZhbHVlXHJcbiAgICAgICAgICAgIGlmIChFeHByZXNzaW9uRXZhbHVhdG9yLnZhbF9jbXBfYW55KGNtcFZhbCwgdGhpcy5fbWluRXhwVmFsKSA8IDApXHJcbiAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChleGNlcHRpb24gaW5zdGFuY2VvZiBOdWxsVmFsdWVFeGNlcHRpb24pIHtcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChjbXBWYWwuSXNOdWxsICE9PSB0aGlzLl9taW5FeHBWYWwuSXNOdWxsKVxyXG4gICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2hlY2sgbWF4IGV4cHJlc3Npb24gQ29tcGxpYW5jZVxyXG4gICAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSAmJiByZXMpIHtcclxuICAgICAgICAvLyBpZiBib3RoIG9mIHRoZSBjb21wYXJlZCB2YWx1ZXMgYXJlIG5vdCBudWxsXHJcbiAgICAgICAgaWYgKCF0aGlzLl9tYXhFeHBWYWwuSXNOdWxsICYmICFjbXBWYWwuSXNOdWxsKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyB0aGUgY29tcGFyZWQgdmFsdWUgbXVzdCBiZSBlcXVhbCBvciBncmVhdGVyIHRvIHRoZSBtaW4gdmFsdWVcclxuICAgICAgICAgICAgaWYgKEV4cHJlc3Npb25FdmFsdWF0b3IudmFsX2NtcF9hbnkoY21wVmFsLCB0aGlzLl9tYXhFeHBWYWwpID4gMClcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhdGNoIChleGNlcHRpb24pIHtcclxuICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbiBpbnN0YW5jZW9mIE51bGxWYWx1ZUV4Y2VwdGlvbilcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIHRocm93IGV4Y2VwdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgb25lIG9mIHRoZW0gaXMgbnVsbCBhbmQgbnVsbCBpcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhlcmUgaXMgd2UgbXVzdCBjaGVjayB0aGF0IG1heEV4cFZhbCBpcyBub3QgbnVsbFxyXG4gICAgICAgIGVsc2UgaWYgKGNtcFZhbC5Jc051bGwgIT09IHRoaXMuX21heEV4cFZhbC5Jc051bGwpXHJcbiAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJucyB0cnVlIGlmIG1pbiBleHByZXNzaW9uIGVxdWFsIHRvIG1heCBleHByZXNzaW9uIGFuZCBubyB3aWxkIGNoYXJzICgqLCA/KSBleGlzdCBpbiB0aGUgcmFuZ2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgSXNNYXhFcXVhbHNNaW4oKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSAmJiB0aGlzLmhhc01pbkV4cCgpKSB7XHJcbiAgICAgIGlmICh0aGlzLl9taW4uZ2V0SWQoKSA9PT0gdGhpcy5fbWF4LmdldElkKCkpIHtcclxuICAgICAgICBpZiAodGhpcy5fcmV0VHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl9yZXRUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUpXHJcbiAgICAgICAgICByZXN1bHQgPSAhdGhpcy5XaWxkQ2hhckV4aXN0KCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY2hlY2tzIGlmIHdpbGQgY2hhciBleGlzdCBpbiB0bmUgdmFsdWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBXaWxkQ2hhckV4aXN0KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHdpbGRDaGFyczogc3RyaW5nW10gPSBbXCIqXCIsIFwiP1wiXTtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvLyBjaGVjayB0cmltXHJcbiAgICBpZiAoIXRoaXMuX21pbkV4cFZhbC5Jc051bGwpIHtcclxuICAgICAgbGV0IHN0cmluZ1ZhbHVlOiBzdHJpbmcgPSB0aGlzLl9taW5FeHBWYWwuU3RyVmFsO1xyXG5cclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHdpbGRDaGFycy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGlmIChzdHJpbmdWYWx1ZS5lbmRzV2l0aCh3aWxkQ2hhcnNbaV0pKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChcInt7Qm91bmRhcnk6IHswfS17MX0sIHsyfSwgezN9fX1cIiwgW1xyXG4gICAgICB0aGlzLl9tYXgsIHRoaXMuX21heCwgdGhpcy5fcmV0VHlwZSwgdGhpcy5fc2l6ZVxyXG4gICAgXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -45,8 +45,5 @@ export class DataviewHeaders {
|
|
|
45
45
|
buf.Append("@");
|
|
46
46
|
return buf.ToString();
|
|
47
47
|
}
|
|
48
|
-
getDataiewHeadersCount() {
|
|
49
|
-
return this._dataviewHeaders.Count;
|
|
50
|
-
}
|
|
51
48
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YXZpZXdIZWFkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9ydC9EYXRhdmlld0hlYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBS2pELE1BQU0sT0FBTyxlQUFlO0lBSTFCO1FBSFEscUJBQWdCLEdBQTBDLElBQUksQ0FBQztRQUlyRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxTQUFTLEVBQThCLENBQUM7SUFDdEUsQ0FBQztJQUtELFFBQVEsQ0FBQyxNQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUU7U0FDMUQ7SUFDSCxDQUFDO0lBS08sZ0JBQWdCLENBQUMsTUFBaUIsRUFBRSxZQUFvQjtRQUM5RCxJQUFJLFlBQVksS0FBSyxJQUFJO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1FBRWYsSUFBSSxZQUFZLEtBQUssY0FBYyxDQUFDLFlBQVksRUFBRTtZQUNoRCxJQUFJLFVBQVUsR0FBVyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFFLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUMzSixJQUFJLEdBQUcsR0FBVyxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELEdBQUcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBSS9CLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakU7O1lBRUMsTUFBTSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyx5REFBeUQsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBS0QscUJBQXFCLENBQUMsTUFBYztRQUNsQyxPQUEyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFNRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLEdBQUcsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUM3QyxJQUFJLGVBQWUsR0FBeUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUV6RixPQUFPLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQyxJQUFJLElBQUksR0FBeUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLFlBQVksb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQXdCLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXJKLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtnQkFDakIsSUFBSSxZQUFZLEdBQVcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3RELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBR2hCLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtvQkFDekIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtTQUNGO1FBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FycmF5X0VudW1lcmF0b3IsIEhhc2h0YWJsZSwgU3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7TG9nZ2VyLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtEYXRhdmlld0hlYWRlckJhc2V9IGZyb20gXCIuL0RhdGF2aWV3SGVhZGVyQmFzZVwiO1xyXG5pbXBvcnQge1JlbW90ZURhdGF2aWV3SGVhZGVyfSBmcm9tIFwiLi9SZW1vdGVEYXRhdmlld0hlYWRlclwiO1xyXG5pbXBvcnQge0NvbnN0SW50ZXJmYWNlfSBmcm9tIFwiLi4vQ29uc3RJbnRlcmZhY2VcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgaGFuZGxlcyBhbGwgbGlua3MgaW4gdGhlIHRhc2tcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIERhdGF2aWV3SGVhZGVycyB7XHJcbiAgcHJpdmF0ZSBfZGF0YXZpZXdIZWFkZXJzOiBIYXNodGFibGU8bnVtYmVyLCBEYXRhdmlld0hlYWRlckJhc2U+ID0gbnVsbDtcclxuXHJcbiAgLy8gaW5pdGlhbGl6ZSB0aGUgbGlua3MgdGFibGUgb2YgYSBnaXZlbiB0YXNrXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9kYXRhdmlld0hlYWRlcnMgPSBuZXcgSGFzaHRhYmxlPG51bWJlciwgRGF0YXZpZXdIZWFkZXJCYXNlPigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHRoaXMgbWV0aG9kIHdpbGwgcGFyc2UgdGhlIHhtbCBkYXRhIHJlbGF0ZSB0byB0aGUgbGlua3MgdGFibGUgYW5kIHdpbGwgYWxsb2NhdGUgYW5kIGluaXRpbGFpemUgYWxsIHJlbGF0ZWQgZGF0YVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIHdoaWxlICh0aGlzLmluaXRJbm5lck9iamVjdHMocGFyc2VyLCBwYXJzZXIuZ2V0TmV4dFRhZygpKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGFsbG9jYXRlcyBhbmQgaW5pdGlhbGl6ZSBpbm5lciBvYmplY3QgYWNjb3JkaW5nIHRvIHRoZSBmb3VuZCB4bWwgZGF0YVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBpbml0SW5uZXJPYmplY3RzKHBhcnNlcjogWG1sUGFyc2VyLCBmb3VuZFRhZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGZvdW5kVGFnTmFtZSA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChmb3VuZFRhZ05hbWUgPT09IENvbnN0SW50ZXJmYWNlLk1HX1RBR19MSU5LUykge1xyXG4gICAgICBsZXQgZW5kQ29udGV4dDogbnVtYmVyID0gcGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKCBDb25zdEludGVyZmFjZS5NR19UQUdfTElOS1NfRU5ELCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0xJTktTX0VORC5sZW5ndGggKyAxO1xyXG4gICAgICBsZXQgeG1sOiBzdHJpbmcgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZENvbnRleHQpO1xyXG4gICAgICB4bWwgPSBYbWxQYXJzZXIuZXNjYXBlVXJsKHhtbCk7XHJcblxyXG4gICAgICAvLyBBY3RpdmF0ZSB0aGUgc2F4IHBhcnNlclxyXG4vLyBza2lwIHRvIGFmdGVyIHRoZSBsaW5rc1xyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZENvbnRleHQgKyBYTUxDb25zdGFudHMuVEFHX0NMT1NFLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcIlRoZXJlIGlzIG5vIHN1Y2ggdGFnIGluIExpbmtzVGFibGUuaW5pdElubmVyT2JqZWN0cygpOiBcIiArIGZvdW5kVGFnTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0cyBhIGxpbmtzIGJ5IGl0IGlkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXREYXRhdmlld0hlYWRlckJ5SWQobGlua0lkOiBudW1iZXIpOiBEYXRhdmlld0hlYWRlckJhc2Uge1xyXG4gICAgcmV0dXJuIDxEYXRhdmlld0hlYWRlckJhc2U+dGhpcy5fZGF0YXZpZXdIZWFkZXJzLmdldF9JdGVtKGxpbmtJZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYnVpbGRzIHRoZSBkYiBwb3Mgc3RyaW5nIG9mIGFsbCBsaW5rcyBpbiB0aGUgdGFibGVcclxuICAvLy8gICB0aGUgZm9ybWF0IGlzIEBsbmsxX2RiUG9zQGxuazJfZGJQb3NALi4uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBidWlsZERiUG9zU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5fZGF0YXZpZXdIZWFkZXJzLkNvdW50ID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBidWY6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG4gICAgbGV0IGRhdGF2aWV3SGVhZGVyczogQXJyYXlfRW51bWVyYXRvcjxEYXRhdmlld0hlYWRlckJhc2U+ID0gdGhpcy5fZGF0YXZpZXdIZWFkZXJzLlZhbHVlcztcclxuXHJcbiAgICB3aGlsZSAoZGF0YXZpZXdIZWFkZXJzLk1vdmVOZXh0KCkpIHtcclxuICAgICAgbGV0IGN1cnI6IFJlbW90ZURhdGF2aWV3SGVhZGVyID0gKChkYXRhdmlld0hlYWRlcnMuQ3VycmVudCBpbnN0YW5jZW9mIFJlbW90ZURhdGF2aWV3SGVhZGVyKSA/ICA8UmVtb3RlRGF0YXZpZXdIZWFkZXI+ZGF0YXZpZXdIZWFkZXJzLkN1cnJlbnQgOiBudWxsKTtcclxuXHJcbiAgICAgIGlmIChjdXJyICE9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGN1cnJEYlBvc1ZhbDogc3RyaW5nID0gY3Vyci5nZXRMYXN0RmV0Y2hlZERiUG9zKCk7XHJcbiAgICAgICAgYnVmLkFwcGVuZChcIkBcIik7XHJcblxyXG4gICAgICAgIC8vIGlmIHRoZSBsYXN0IGZldGNoIGRiIHBvcyBvZiB0aGUgbGluayBpcyBudWxsIGl0IG1lYW5zIHRoYXQgd2UgbmV2ZXIgZmV0Y2hlZCBhIHJlY29yZCBmcm9tIHRoZSBsaW5rXHJcbiAgICAgICAgaWYgKGN1cnJEYlBvc1ZhbCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgYnVmLkFwcGVuZChjdXJyRGJQb3NWYWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYnVmLkFwcGVuZChcIkBcIik7XHJcbiAgICByZXR1cm4gYnVmLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -38,9 +38,6 @@ export class HandlersTable {
|
|
|
38
38
|
add(handler) {
|
|
39
39
|
this._handlers.push(handler);
|
|
40
40
|
}
|
|
41
|
-
CalculateControlFormControlName() {
|
|
42
|
-
this._handlers.forEach(item => { item.calculateCtrlFromControlName(item.getTask()); });
|
|
43
|
-
}
|
|
44
41
|
remove(idx) {
|
|
45
42
|
this._handlers.RemoveAt(idx);
|
|
46
43
|
}
|
|
@@ -96,4 +93,4 @@ export class HandlersTable {
|
|
|
96
93
|
return timers;
|
|
97
94
|
}
|
|
98
95
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFuZGxlcnNUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvSGFuZGxlcnNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsTUFBTSxPQUFPLGFBQWE7SUFHeEI7UUFGUSxjQUFTLEdBQXVCLElBQUksQ0FBQztRQUczQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFnQixDQUFDO0lBQzVDLENBQUM7SUFHRCxRQUFRLENBQUMsT0FBYSxFQUFFLE1BQWlCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDbkU7SUFDSCxDQUFDO0lBTU8sZ0JBQWdCLENBQUMsTUFBaUIsRUFBRSxZQUFvQixFQUFFLE9BQWE7UUFDN0UsSUFBSSxZQUFZLEtBQUssSUFBSTtZQUN2QixPQUFPLEtBQUssQ0FBQztRQUVmLElBQUksWUFBWSxLQUFLLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRTtZQUN4RCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNyRzthQUNJO1lBQ0gsSUFBSSxZQUFZLEtB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Q0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQU9ELGVBQWU7UUFDYixJQUFJLE1BQU0sR0FBaUIsSUFBSSxJQUFJLEVBQVUsQ0FBQztRQUc5QyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEQsSUFBSSxRQUFRLEdBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRCxJQUFJLEdBQVcsQ0FBQztZQUNoQixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxjQUFjLENBQUMsZ0JBQWdCO2dCQUN4RCxHQUFHLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDOztnQkFFNUIsR0FBRyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3pDLElBQUksV0FBVyxHQUFZLEtBQUssQ0FBQztZQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxHQUFHLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDOUIsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDbkIsTUFBTTtpQkFDUDthQUNGO1lBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNsQjtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaXN0fSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtMb2dnZXIsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0V2ZW50fSBmcm9tIFwiLi4vZXZlbnQvRXZlbnRcIjtcclxuaW1wb3J0IHtFdmVudEhhbmRsZXJ9IGZyb20gXCIuLi9ldmVudC9FdmVudEhhbmRsZXJcIjtcclxuaW1wb3J0IHtUYXNrfSBmcm9tIFwiLi4vdGFza3MvVGFza1wiO1xyXG5pbXBvcnQge01HRGF0YX0gZnJvbSBcIi4uL3Rhc2tzL01HRGF0YVwiO1xyXG5pbXBvcnQge0dVSU1hbmFnZXJ9IGZyb20gXCIuLi9HVUlNYW5hZ2VyXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5cclxuLy8vICAgdGhlIGhhbmRsZXJzIHRhYmxlXHJcbmV4cG9ydCBjbGFzcyBIYW5kbGVyc1RhYmxlIHtcclxuICBwcml2YXRlIF9oYW5kbGVyczogTGlzdDxFdmVudEhhbmRsZXI+ID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9oYW5kbGVycyA9IG5ldyBMaXN0PEV2ZW50SGFuZGxlcj4oKTtcclxuICB9XHJcblxyXG4gIC8vLyAgIHBhcnNlIHRoZSBoYW5kbGVycyBvZiBhIHRhc2tcclxuICBmaWxsRGF0YSh0YXNrUmVmOiBUYXNrLCBwYXJzZXI6IFhtbFBhcnNlcik6IHZvaWQge1xyXG4gICAgd2hpbGUgKHRoaXMuaW5pdElubmVyT2JqZWN0cyhwYXJzZXIsIHBhcnNlci5nZXROZXh0VGFnKCksIHRhc2tSZWYpKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgVG8gYWxsb2NhdGUgYW5kIGZpbGwgaW5uZXIgb2JqZWN0cyBvZiB0aGUgY2xhc3NcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZm91bmRUYWdOYW1lXCI+bmFtZSBvZiB0YWcsIG9mIG9qZWN0LCB3aGljaCBuZWVkIGJlIGFsbG9jYXRlZCA8L3BhcmFtPlxyXG4gIHByaXZhdGUgaW5pdElubmVyT2JqZWN0cyhwYXJzZXI6IFhtbFBhcnNlciwgZm91bmRUYWdOYW1lOiBzdHJpbmcsIHRhc2tSZWY6IFRhc2spOiBib29sZWFuIHtcclxuICAgIGlmIChmb3VuZFRhZ05hbWUgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSBDb25zdEludGVyZmFjZS5NR19UQUdfRVZFTlRIQU5ETEVSUykge1xyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICsgMSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGZvdW5kVGFnTmFtZSA9PT0gQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0hBTkRMRVIpIHtcclxuICAgICAgICBsZXQgZXZlbnRIYW5kbGVyOiBFdmVudEhhbmRsZXIgPSBuZXcgRXZlbnRIYW5kbGVyKCk7XHJcbiAgICAgICAgZXZlbnRIYW5kbGVyLmZpbGxEYXRhKHRhc2tSZWYsIHBhcnNlcik7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlcnMucHVzaChldmVudEhhbmRsZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChmb3VuZFRhZ05hbWUgPT09ICcvJyArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19FVkVOVEhBTkRMRVJTKSB7XHJcbiAgICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJUaGVyZSBpcyBubyBzdWNoIHRhZyBpbiBIYW5kbGVyc1RhYmxlLiBJbnNlcnQgZWxzZSBpZiB0byBIYW5kbGVyc1RhYmxlLmluaXRJbm5lck9iamVjdHMgZm9yIFwiICsgZm91bmRUYWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhZGQgYSBuZXcgZXZlbnQgaGFuZGxlciB0byB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaGFuZGxlclwiPnRoZSBuZXcgZXZlbnQgaGFuZGxlciA8L3BhcmFtPlxyXG4gIGFkZChoYW5kbGVyOiBFdmVudEhhbmRsZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzLnB1c2goaGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGNhbGN1bGF0ZSBjb250cm9sIGJ5IGNvbnRyb2wgbmFtZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgQ2FsY3VsYXRlQ29udHJvbEZvcm1Db250cm9sTmFtZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzLmZvckVhY2goaXRlbSA9PiB7IGl0ZW0uY2FsY3VsYXRlQ3RybEZyb21Db250cm9sTmFtZShpdGVtLmdldFRhc2soKSk7IH0gKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZW1vdmVzIHRoZSBoYW5kbGVyIGF0IGlkeCBwbGFjZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj4gPC9wYXJhbT5cclxuICByZW1vdmUoaWR4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzLlJlbW92ZUF0KGlkeCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgaW5zZXJ0IGEgbmV3IGV2ZW50IGhhbmRsZXIgdG8gdGhlIHRhYmxlIGFmdGVyIHRoZSBpZHgncyBlbGVtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImhhbmRsZXJcIj50aGUgbmV3IGV2ZW50IGhhbmRsZXIgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkeFwiPmluZGV4IG9mIHRoZSBlbGVtZW50IHRvIGFkZCB0aGUgbmV3IGVsZW1lbnQgYWZ0ZXIgPC9wYXJhbT5cclxuICBpbnNlcnRBZnRlcihoYW5kbGVyOiBFdmVudEhhbmRsZXIsIGlkeDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9oYW5kbGVycy5JbnNlcnQoaWR4LCBoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBudW1iZXIgb2YgaGFuZGxlcnMgaW4gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRTaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5faGFuZGxlcnMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBhIGhhbmRsZXIgYnkgaXRzIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkeFwiPnRoZSBpbmRleCBvZiB0aGUgaGFuZGxlciBpbiB0aGUgdGFibGUgPC9wYXJhbT5cclxuICBnZXRIYW5kbGVyKGlkeDogbnVtYmVyKTogRXZlbnRIYW5kbGVyIHtcclxuICAgIGlmIChpZHggPCAwIHx8IGlkeCA+PSB0aGlzLl9oYW5kbGVycy5sZW5ndGgpXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9oYW5kbGVycy5nZXRfSXRlbShpZHgpO1xyXG4gIH1cclxuXHJcbiAgaGFzRXhwcmVzc2lvbkhhbmRsZXIoKTogYm9vbGVhbiAge1xyXG4gICAgbGV0IGZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5faGFuZGxlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGV2dDogRXZlbnQgPSB0aGlzLmdldEhhbmRsZXIoaSkuZ2V0RXZlbnQoKTtcclxuICAgICAgaWYgKGV2dC5nZXRUeXBlKCkgPT09IENvbnN0SW50ZXJmYWNlLkVWRU5UX1RZUEVfRVhQUkVTU0lPTiB8fFxyXG4gICAgICAgIChldnQuZ2V0VHlwZSgpID09PSBDb25zdEludGVyZmFjZS5FVkVOVF9UWVBFX1VTRVIgJiYgZXZ0LmdldFVzZXJFdmVudFR5cGUoKSA9PT0gQ29uc3RJbnRlcmZhY2UuRVZFTlRfVFlQRV9FWFBSRVNTSU9OKSlcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3VuZDtcclxuICB9XHJcbiAgXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHN0YXJ0IHRpbWVycyBmb3IgdGltZXIgZXZlbnRzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGFydFRpbWVycyhtZ2Q6IE1HRGF0YSk6IHZvaWQge1xyXG4gICAgbGV0IGd1aU1hbmFnZXI6IEdVSU1hbmFnZXIgPSBHVUlNYW5hZ2VyLkluc3RhbmNlO1xyXG4gICAgaWYgKHRoaXMuX2hhbmRsZXJzICE9PSBudWxsKSB7XHJcbiAgICAgIGxldCB0aW1lcnNWZWN0b3I6IExpc3Q8bnVtYmVyPiA9IHRoaXMuZ2V0VGltZXJzVmVjdG9yKCk7XHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aW1lcnNWZWN0b3IubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgZ3VpTWFuYWdlci5zdGFydFRpbWVyKG1nZCwgdGltZXJzVmVjdG9yLmdldF9JdGVtKGkpLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgUmV0dXJucyBhIGxpc3Qgb2YgdGhlIG51bWJlciBvZiBzZWNvbmRzIGZvciBlYWNoIHRpbWVyXHJcbiAgLy8vICAgSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB0aW1lciBoYW5kbGVyIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIHNlY29uZHNcclxuICAvLy8gICB0aGlzIG51bWJlciB3aWxsIGFwcGVhciBpbiB0aGUgbGlzdCBvbmx5IG9uY2UuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRUaW1lcnNWZWN0b3IoKTogTGlzdDxudW1iZXI+IHtcclxuICAgIGxldCB0aW1lcnM6IExpc3Q8bnVtYmVyPiA9IG5ldyBMaXN0PG51bWJlcj4oKTtcclxuXHJcbiAgICAvLyBzY2FuIHRoZSB0aW1lcnNcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9oYW5kbGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgdGltZXJFdnQ6IEV2ZW50ID0gdGhpcy5nZXRIYW5kbGVyKGkpLmdldEV2ZW50KCk7XHJcbiAgICAgIGxldCBzZWM6IG51bWJlcjtcclxuICAgICAgaWYgKHRpbWVyRXZ0LmdldFR5cGUoKSA9PT0gQ29uc3RJbnRlcmZhY2UuRVZFTlRfVFlQRV9USU1FUilcclxuICAgICAgICBzZWMgPSB0aW1lckV2dC5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIGVsc2UgLy8gRVZFTlRfVFlQRV9VU0VSXHJcbiAgICAgICAgc2VjID0gdGltZXJFdnQuZ2V0U2Vjb25kc09mVXNlckV2ZW50KCk7XHJcbiAgICAgIGxldCB0aW1lckV4aXN0czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICBmb3IgKGxldCBqOiBudW1iZXIgPSAwOyBqIDwgdGltZXJzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHNlYyA9PT0gdGltZXJzLmdldF9JdGVtKGopKSB7XHJcbiAgICAgICAgICB0aW1lckV4aXN0cyA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aW1lckV4aXN0cykge1xyXG4gICAgICAgIHRpbWVycy5wdXNoKHNlYyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aW1lcnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFuZGxlcnNUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvSGFuZGxlcnNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsTUFBTSxPQUFPLGFBQWE7SUFHeEI7UUFGUSxjQUFTLEdBQXVCLElBQUksQ0FBQztRQUczQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFnQixDQUFDO0lBQzVDLENBQUM7SUFHRCxRQUFRLENBQUMsT0FBYSxFQUFFLE1BQWlCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDbkU7SUFDSCxDQUFDO0lBTU8sZ0JBQWdCLENBQUMsTUFBaUIsRUFBRSxZQUFvQixFQUFFLE9BQWE7UUFDN0UsSUFBSSxZQUFZLEtBQUssSUFBSTtZQUN2QixPQUFPLEtBQUssQ0FBQztRQUVmLElBQUksWUFBWSxLQUFLLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRTtZQUN4RCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNyRzthQUNJO1lBQ0gsSUFBSSxZQUFZLEtB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RSxDQUFDLEVBQUUsRUFBRTtZQUN0RCxJQUFJLFFBQVEsR0FBVSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BELElBQUksR0FBVyxDQUFDO1lBQ2hCLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLGNBQWMsQ0FBQyxnQkFBZ0I7Z0JBQ3hELEdBQUcsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7O2dCQUU1QixHQUFHLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDekMsSUFBSSxXQUFXLEdBQVksS0FBSyxDQUFDO1lBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLEdBQUcsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM5QixXQUFXLEdBQUcsSUFBSSxDQUFDO29CQUNuQixNQUFNO2lCQUNQO2FBQ0Y7WUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xpc3R9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0xvZ2dlciwgWE1MQ29uc3RhbnRzLCBYbWxQYXJzZXJ9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RXZlbnR9IGZyb20gXCIuLi9ldmVudC9FdmVudFwiO1xyXG5pbXBvcnQge0V2ZW50SGFuZGxlcn0gZnJvbSBcIi4uL2V2ZW50L0V2ZW50SGFuZGxlclwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7TUdEYXRhfSBmcm9tIFwiLi4vdGFza3MvTUdEYXRhXCI7XHJcbmltcG9ydCB7R1VJTWFuYWdlcn0gZnJvbSBcIi4uL0dVSU1hbmFnZXJcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcblxyXG4vLy8gICB0aGUgaGFuZGxlcnMgdGFibGVcclxuZXhwb3J0IGNsYXNzIEhhbmRsZXJzVGFibGUge1xyXG4gIHByaXZhdGUgX2hhbmRsZXJzOiBMaXN0PEV2ZW50SGFuZGxlcj4gPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzID0gbmV3IExpc3Q8RXZlbnRIYW5kbGVyPigpO1xyXG4gIH1cclxuXHJcbiAgLy8vICAgcGFyc2UgdGhlIGhhbmRsZXJzIG9mIGEgdGFza1xyXG4gIGZpbGxEYXRhKHRhc2tSZWY6IFRhc2ssIHBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICB3aGlsZSAodGhpcy5pbml0SW5uZXJPYmplY3RzKHBhcnNlciwgcGFyc2VyLmdldE5leHRUYWcoKSwgdGFza1JlZikpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBUbyBhbGxvY2F0ZSBhbmQgZmlsbCBpbm5lciBvYmplY3RzIG9mIHRoZSBjbGFzc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJmb3VuZFRhZ05hbWVcIj5uYW1lIG9mIHRhZywgb2Ygb2plY3QsIHdoaWNoIG5lZWQgYmUgYWxsb2NhdGVkIDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBpbml0SW5uZXJPYmplY3RzKHBhcnNlcjogWG1sUGFyc2VyLCBmb3VuZFRhZ05hbWU6IHN0cmluZywgdGFza1JlZjogVGFzayk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGZvdW5kVGFnTmFtZSA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChmb3VuZFRhZ05hbWUgPT09IENvbnN0SW50ZXJmYWNlLk1HX1RBR19FVkVOVEhBTkRMRVJTKSB7XHJcbiAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgocGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgKyAxKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAoZm91bmRUYWdOYW1lID09PSBDb25zdEludGVyZmFjZS5NR19UQUdfSEFORExFUikge1xyXG4gICAgICAgIGxldCBldmVudEhhbmRsZXI6IEV2ZW50SGFuZGxlciA9IG5ldyBFdmVudEhhbmRsZXIoKTtcclxuICAgICAgICBldmVudEhhbmRsZXIuZmlsbERhdGEodGFza1JlZiwgcGFyc2VyKTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVycy5wdXNoKGV2ZW50SGFuZGxlcik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGZvdW5kVGFnTmFtZSA9PT0gJy8nICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0VWRU5USEFORExFUlMpIHtcclxuICAgICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgyRW5kT2ZUYWcoKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcIlRoZXJlIGlzIG5vIHN1Y2ggdGFnIGluIEhhbmRsZXJzVGFibGUuIEluc2VydCBlbHNlIGlmIHRvIEhhbmRsZXJzVGFibGUuaW5pdElubmVyT2JqZWN0cyBmb3IgXCIgKyBmb3VuZFRhZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGFkZCBhIG5ldyBldmVudCBoYW5kbGVyIHRvIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJoYW5kbGVyXCI+dGhlIG5ldyBldmVudCBoYW5kbGVyIDwvcGFyYW0+XHJcbiAgYWRkKGhhbmRsZXI6IEV2ZW50SGFuZGxlcik6IHZvaWQge1xyXG4gICAgdGhpcy5faGFuZGxlcnMucHVzaChoYW5kbGVyKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJlbW92ZXMgdGhlIGhhbmRsZXIgYXQgaWR4IHBsYWNlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkeFwiPiA8L3BhcmFtPlxyXG4gIHJlbW92ZShpZHg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5faGFuZGxlcnMuUmVtb3ZlQXQoaWR4KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBpbnNlcnQgYSBuZXcgZXZlbnQgaGFuZGxlciB0byB0aGUgdGFibGUgYWZ0ZXIgdGhlIGlkeCdzIGVsZW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaGFuZGxlclwiPnRoZSBuZXcgZXZlbnQgaGFuZGxlciA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+aW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gYWRkIHRoZSBuZXcgZWxlbWVudCBhZnRlciA8L3BhcmFtPlxyXG4gIGluc2VydEFmdGVyKGhhbmRsZXI6IEV2ZW50SGFuZGxlciwgaWR4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzLkluc2VydChpZHgsIGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIG51bWJlciBvZiBoYW5kbGVycyBpbiB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9oYW5kbGVycy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IGEgaGFuZGxlciBieSBpdHMgaW5kZXhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+dGhlIGluZGV4IG9mIHRoZSBoYW5kbGVyIGluIHRoZSB0YWJsZSA8L3BhcmFtPlxyXG4gIGdldEhhbmRsZXIoaWR4OiBudW1iZXIpOiBFdmVudEhhbmRsZXIge1xyXG4gICAgaWYgKGlkeCA8IDAgfHwgaWR4ID49IHRoaXMuX2hhbmRsZXJzLmxlbmd0aClcclxuICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLmdldF9JdGVtKGlkeCk7XHJcbiAgfVxyXG5cclxuICBoYXNFeHByZXNzaW9uSGFuZGxlcigpOiBib29sZWFuICB7XHJcbiAgICBsZXQgZm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9oYW5kbGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZXZ0OiBFdmVudCA9IHRoaXMuZ2V0SGFuZGxlcihpKS5nZXRFdmVudCgpO1xyXG4gICAgICBpZiAoZXZ0LmdldFR5cGUoKSA9PT0gQ29uc3RJbnRlcmZhY2UuRVZFTlRfVFlQRV9FWFBSRVNTSU9OIHx8XHJcbiAgICAgICAgKGV2dC5nZXRUeXBlKCkgPT09IENvbnN0SW50ZXJmYWNlLkVWRU5UX1RZUEVfVVNFUiAmJiBldnQuZ2V0VXNlckV2ZW50VHlwZSgpID09PSBDb25zdEludGVyZmFjZS5FVkVOVF9UWVBFX0VYUFJFU1NJT04pKVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvdW5kO1xyXG4gIH1cclxuICBcclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc3RhcnQgdGltZXJzIGZvciB0aW1lciBldmVudHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXJ0VGltZXJzKG1nZDogTUdEYXRhKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpTWFuYWdlcjogR1VJTWFuYWdlciA9IEdVSU1hbmFnZXIuSW5zdGFuY2U7XHJcbiAgICBpZiAodGhpcy5faGFuZGxlcnMgIT09IG51bGwpIHtcclxuICAgICAgbGV0IHRpbWVyc1ZlY3RvcjogTGlzdDxudW1iZXI+ID0gdGhpcy5nZXRUaW1lcnNWZWN0b3IoKTtcclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRpbWVyc1ZlY3Rvci5sZW5ndGg7IGkrKylcclxuICAgICAgICBndWlNYW5hZ2VyLnN0YXJ0VGltZXIobWdkLCB0aW1lcnNWZWN0b3IuZ2V0X0l0ZW0oaSksIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBSZXR1cm5zIGEgbGlzdCBvZiB0aGUgbnVtYmVyIG9mIHNlY29uZHMgZm9yIGVhY2ggdGltZXJcclxuICAvLy8gICBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHRpbWVyIGhhbmRsZXIgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2Ygc2Vjb25kc1xyXG4gIC8vLyAgIHRoaXMgbnVtYmVyIHdpbGwgYXBwZWFyIGluIHRoZSBsaXN0IG9ubHkgb25jZS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFRpbWVyc1ZlY3RvcigpOiBMaXN0PG51bWJlcj4ge1xyXG4gICAgbGV0IHRpbWVyczogTGlzdDxudW1iZXI+ID0gbmV3IExpc3Q8bnVtYmVyPigpO1xyXG5cclxuICAgIC8vIHNjYW4gdGhlIHRpbWVyc1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuX2hhbmRsZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCB0aW1lckV2dDogRXZlbnQgPSB0aGlzLmdldEhhbmRsZXIoaSkuZ2V0RXZlbnQoKTtcclxuICAgICAgbGV0IHNlYzogbnVtYmVyO1xyXG4gICAgICBpZiAodGltZXJFdnQuZ2V0VHlwZSgpID09PSBDb25zdEludGVyZmFjZS5FVkVOVF9UWVBFX1RJTUVSKVxyXG4gICAgICAgIHNlYyA9IHRpbWVyRXZ0LmdldFNlY29uZHMoKTtcclxuICAgICAgZWxzZSAvLyBFVkVOVF9UWVBFX1VTRVJcclxuICAgICAgICBzZWMgPSB0aW1lckV2dC5nZXRTZWNvbmRzT2ZVc2VyRXZlbnQoKTtcclxuICAgICAgbGV0IHRpbWVyRXhpc3RzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGo6IG51bWJlciA9IDA7IGogPCB0aW1lcnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAoc2VjID09PSB0aW1lcnMuZ2V0X0l0ZW0oaikpIHtcclxuICAgICAgICAgIHRpbWVyRXhpc3RzID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRpbWVyRXhpc3RzKSB7XHJcbiAgICAgICAgdGltZXJzLnB1c2goc2VjKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpbWVycztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -6,7 +6,6 @@ export class Transaction {
|
|
|
6
6
|
this._transBegin = '\0';
|
|
7
7
|
this.Opened = false;
|
|
8
8
|
this.OwnerTask = null;
|
|
9
|
-
this.LocalTransactionId = 0;
|
|
10
9
|
this.OwnerTask = task;
|
|
11
10
|
this._transId = setTransId;
|
|
12
11
|
this._transBegin = ConstInterface.TRANS_TASK_PREFIX;
|
|
@@ -51,4 +50,4 @@ export class Transaction {
|
|
|
51
50
|
this.OwnerTask = task;
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L1RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxNQUFNLE9BQU8sV0FBVztJQWdCdEIsWUFBWSxJQUFjLEVBQUUsVUFBa0I7UUFmdEMsYUFBUSxHQUFXLElBQUksQ0FBQztRQUd4QixxQkFBZ0IsR0FBVyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBRXhELGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBQ25DLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsY0FBUyxHQUFTLElBQUksQ0FBQztRQVNyQixJQUFJLENBQUMsU0FBUyxHQUFTLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBUztJQUM5RCxDQUFDO0lBTUQsT0FBTyxDQUFDLElBQVU7UUFDaEIsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBS0QsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFLRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUtELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUtELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUlELGFBQWEsQ0FBQyxRQUFpQjtRQUM3QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFLTyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLGNBQWMsQ0FBQyxhQUFhLENBQVM7SUFDeEUsQ0FBQztJQUtPLGVBQWUsQ0FBQyxRQUFnQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLENBQUM7SUFDNUMsQ0FBQztJQUtELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUtELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFLRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFLRCxZQUFZLENBQUMsSUFBVTtRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge1Rhc2tCYXNlfSBmcm9tIFwiLi4vdGFza3MvVGFza0Jhc2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiB7XHJcbiAgcHJpdmF0ZSBfdHJhbnNJZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gaG9sZHMgdGhlIHJlY292ZXJ5IHR5cGUgb2YgYSBmYWlsZWQgdHJhbnNhY3Rpb24gc28gd2UgY2FuIGFzayBpZiB3ZSBhcmUgYWZ0ZXIgcmV0cnkuXHJcbiAgcHJpdmF0ZSBfYWZ0ZXJUcmFuc1JldHJ5OiBzdHJpbmcgPSBDb25zdEludGVyZmFjZS5SRUNPVkVSWV9OT05FO1xyXG5cclxuICBwcml2YXRlIF90cmFuc0JlZ2luOiBzdHJpbmcgPSAnXFwwJztcclxuICBPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBPd25lclRhc2s6IFRhc2sgPSBudWxsO1xyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1wiPnRoZSB0YXNrIHdobyBvd25zIHRoaXMgdHJhbnNhY3Rpb24gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzZXRUcmFuc0lkXCI+PC9wYXJhbT5cclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrQmFzZSwgc2V0VHJhbnNJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLk93bmVyVGFzayA9IDxUYXNrPnRhc2s7XHJcbiAgICB0aGlzLl90cmFuc0lkID0gc2V0VHJhbnNJZDtcclxuICAgIHRoaXMuX3RyYW5zQmVnaW4gPSBDb25zdEludGVyZmFjZS5UUkFOU19UQVNLX1BSRUZJWCAvKidUJyovO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGFzayBpcyB0aGUgb3duZXIgb2YgdGhpcyB0cmFuc2FjdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrXCI+dGhlIHRhc2sgdG8gY2hlY2sgPC9wYXJhbT5cclxuICBpc093bmVyKHRhc2s6IFRhc2spOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0YXNrID09PSB0aGlzLk93bmVyVGFzaztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjbG9zZSB0aGUgdHJhbnNhY3Rpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5PcGVuZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBvcGVucyB0aGUgdHJhbnNhY3Rpb24gLSBzaG91bGQgYmUgY2FsbGVkIHdoZW4gYW4gdXBkYXRlIG9jY3VyZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIG9wZW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLk9wZW5lZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoZSB0cmFuc2FjdGlvbiB3YXMgb3BlbmVkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc09wZW5lZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLk9wZW5lZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzaWduYWxscyB3aGVhdGhlciB3ZSBhcmUgbm93IGluIHRoZSBwcm9jZXNzIG9mIHJldHJ5aW5nIGEgZmFpbGVkIHRyYW5zYWN0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzZXRBZnRlclJldHJ5KHZhbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hZnRlclRyYW5zUmV0cnkgPSB2YWw7XHJcbiAgfVxyXG5cclxuICBnZXRBZnRlclJldHJ5KCk6IGJvb2xlYW47XHJcbiAgZ2V0QWZ0ZXJSZXRyeShyZWNvdmVyeTogc3RyaW5nKTogYm9vbGVhbjtcclxuICBnZXRBZnRlclJldHJ5KHJlY292ZXJ5Pzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRBZnRlclJldHJ5XzAoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEFmdGVyUmV0cnlfMShyZWNvdmVyeSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgaWYgd2UgYXJlIGFmdGVyIGEgdHJhbnNhY3Rpb24gcmV0cnlcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgZ2V0QWZ0ZXJSZXRyeV8wKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyVHJhbnNSZXRyeSAhPT0gQ29uc3RJbnRlcmZhY2UuUkVDT1ZFUllfTk9ORSAvKidcdTAwMDAnKi87XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgaWYgd2UgYXJlIGFmdGVyIGEgdHJhbnNhY3Rpb24gd2l0aCByZWNvdmVyeSBSRUNPVkVSWV9SRVRSWVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBnZXRBZnRlclJldHJ5XzEocmVjb3Zlcnk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyVHJhbnNSZXRyeSA9PT0gcmVjb3Zlcnk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdHJhbnNhY3Rpb24gbGV2ZWwgKFRhc2svUmVjb3JkKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TGV2ZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc0JlZ2luO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgdGhlIGxldmVsIG9mIHRoZSBUcmFuc2FjdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0VHJhbnNCZWdpbih2YWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJhbnNCZWdpbiA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXRzIHRyYW5zSWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFRyYW5zSWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc0lkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgT3duZXIgdGFza1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0T3duZXJUYXNrKHRhc2s6IFRhc2spOiB2b2lkIHtcclxuICAgIHRoaXMuT3duZXJUYXNrID0gdGFzaztcclxuICB9XHJcbn1cclxuIl19
|