ag-psd 14.3.11 → 14.4.0
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/CHANGELOG.md +7 -0
- package/README.md +12 -2
- package/README_PSD.md +729 -0
- package/TODO +4 -0
- package/dist/abr.js +45 -45
- package/dist/additionalInfo.js +638 -620
- package/dist/bundle.js +1294 -1237
- package/dist/csh.js +14 -14
- package/dist/descriptor.d.ts +7 -3
- package/dist/descriptor.js +119 -114
- package/dist/effectsHelpers.js +160 -140
- package/dist/engineData.js +4 -4
- package/dist/helpers.js +11 -11
- package/dist/imageResources.js +175 -170
- package/dist/index.js +15 -11
- package/dist/initializeCanvas.js +14 -6
- package/dist/jpeg.d.ts +1 -0
- package/dist/jpeg.js +1023 -0
- package/dist/psd.d.ts +3 -0
- package/dist/psd.js +1 -1
- package/dist/psdReader.js +77 -72
- package/dist/psdWriter.js +45 -45
- package/dist/text.js +2 -2
- package/dist/utf8.js +2 -2
- package/dist-es/abr.js +4 -4
- package/dist-es/additionalInfo.js +36 -18
- package/dist-es/descriptor.d.ts +7 -3
- package/dist-es/descriptor.js +30 -25
- package/dist-es/effectsHelpers.js +40 -20
- package/dist-es/engineData.js +4 -4
- package/dist-es/helpers.js +9 -9
- package/dist-es/imageResources.js +15 -10
- package/dist-es/initializeCanvas.js +14 -6
- package/dist-es/jpeg.d.ts +1 -0
- package/dist-es/jpeg.js +1019 -0
- package/dist-es/psd.d.ts +3 -0
- package/dist-es/psd.js +1 -1
- package/dist-es/psdReader.js +65 -60
- package/dist-es/psdWriter.js +34 -34
- package/dist-es/text.js +2 -2
- package/dist-es/utf8.js +2 -2
- package/package.json +4 -4
- package/tsconfig.json +1 -0
package/dist/text.js
CHANGED
|
@@ -345,7 +345,7 @@ function decodeEngineData(engineData) {
|
|
|
345
345
|
exports.decodeEngineData = decodeEngineData;
|
|
346
346
|
function encodeEngineData(data) {
|
|
347
347
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
348
|
-
var text = (data.text || '').replace(/\r?\n/g, '\r')
|
|
348
|
+
var text = "".concat((data.text || '').replace(/\r?\n/g, '\r'), "\r");
|
|
349
349
|
var fonts = [
|
|
350
350
|
{ name: 'AdobeInvisFont', script: 0, type: 0, synthetic: 0 },
|
|
351
351
|
];
|
|
@@ -555,4 +555,4 @@ function encodeEngineData(data) {
|
|
|
555
555
|
}
|
|
556
556
|
exports.encodeEngineData = encodeEngineData;
|
|
557
557
|
|
|
558
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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RSxNQUFNLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0Qsb0JBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN0RSwwQkFBMEIsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLDBCQUEwQjthQUNqRTtZQUNELFNBQVMsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQUEsSUFBSSxDQUFDLFNBQVMsbUNBQUksT0FBTyxDQUFDO1lBQ3ZELHdCQUF3QixFQUFFLE1BQUEsSUFBSSxDQUFDLHdCQUF3QixtQ0FBSSxJQUFJO1lBQy9ELFFBQVEsRUFBRTtnQkFDVCxPQUFPLEVBQUUsQ0FBQztnQkFDVixNQUFNLEVBQUU7b0JBQ1AsZ0JBQWdCLGtCQUFBO29CQUNoQixRQUFRLEVBQUU7d0JBQ1Q7NEJBQ0MsU0FBUyxXQUFBOzRCQUNULFVBQVUsWUFBQTs0QkFDVixLQUFLLEVBQUUsRUFBRSxnQkFBZ0Isa0JBQUEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzRCQUN6QyxNQUFNLEVBQUUsRUFBRSxTQUFTLFdBQUEsRUFBRTt5QkFDckI7cUJBQ0Q7aUJBQ0Q7YUFDRDtTQUNEO1FBQ0QsWUFBWSxlQUFPLGdCQUFnQixDQUFFO1FBQ3JDLGlCQUFpQixlQUFPLGdCQUFnQixDQUFFO0tBQzFDLENBQUM7SUFFRix5RkFBeUY7SUFDekYsT0FBTyxVQUFVLENBQUM7QUFDbkIsQ0FBQztBQTFPRCw0Q0EwT0MiLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRTdHlsZSwgTGF5ZXJUZXh0RGF0YSwgUGFyYWdyYXBoU3R5bGUsIEZvbnQsIEFudGlBbGlhcywgVGV4dEdyaWRJbmZvLCBKdXN0aWZpY2F0aW9uLCBDb2xvciB9IGZyb20gJy4vcHNkJztcclxuXHJcbmludGVyZmFjZSBBZGp1c3RtZW50cyB7XHJcblx0QXhpczogbnVtYmVyW107XHJcblx0WFk6IG51bWJlcltdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgVHlwZVZhbHVlcyB7XHJcblx0VHlwZTogbnVtYmVyO1xyXG5cdFZhbHVlczogbnVtYmVyW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBQYXJhZ3JhcGhQcm9wZXJ0aWVzIHtcclxuXHRKdXN0aWZpY2F0aW9uPzogbnVtYmVyO1xyXG5cdEZpcnN0TGluZUluZGVudD86IG51bWJlcjtcclxuXHRTdGFydEluZGVudD86IG51bWJlcjtcclxuXHRFbmRJbmRlbnQ/OiBudW1iZXI7XHJcblx0U3BhY2VCZWZvcmU/OiBudW1iZXI7XHJcblx0U3BhY2VBZnRlcj86IG51bWJlcjtcclxuXHRBdXRvSHlwaGVuYXRlPzogYm9vbGVhbjtcclxuXHRIeXBoZW5hdGVkV29yZFNpemU/OiBudW1iZXI7XHJcblx0UHJlSHlwaGVuPzogbnVtYmVyO1xyXG5cdFBvc3RIeXBoZW4/OiBudW1iZXI7XHJcblx0Q29uc2VjdXRpdmVIeXBoZW5zPzogbnVtYmVyO1xyXG5cdFpvbmU/OiBudW1iZXI7XHJcblx0V29yZFNwYWNpbmc/OiBudW1iZXJbXTtcclxuXHRMZXR0ZXJTcGFjaW5nPzogbnVtYmVyW107XHJcblx0R2x5cGhTcGFjaW5nPzogbnVtYmVyW107XHJcblx0QXV0b0xlYWRpbmc/OiBudW1iZXI7XHJcblx0TGVhZGluZ1R5cGU/OiBudW1iZXI7XHJcblx0SGFuZ2luZz86IGJvb2xlYW47XHJcblx0QnVyYXNhZ2FyaT86IGJvb2xlYW47XHJcblx0S2luc29rdU9yZGVyPzogbnVtYmVyO1xyXG5cdEV2ZXJ5TGluZUNvbXBvc2VyPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFBhcmFncmFwaFNoZWV0IHtcclxuXHROYW1lPzogc3RyaW5nO1xyXG5cdERlZmF1bHRTdHlsZVNoZWV0OiBudW1iZXI7XHJcblx0UHJvcGVydGllczogUGFyYWdyYXBoUHJvcGVydGllcztcclxufVxyXG5cclxuaW50ZXJmYWNlIFN0eWxlU2hlZXREYXRhIHtcclxuXHRGb250PzogbnVtYmVyO1xyXG5cdEZvbnRTaXplPzogbnVtYmVyO1xyXG5cdEZhdXhCb2xkPzogYm9vbGVhbjtcclxuXHRGYXV4SXRhbGljPzogYm9vbGVhbjtcclxuXHRBdXRvTGVhZGluZz86IGJvb2xlYW47XHJcblx0TGVhZGluZz86IG51bWJlcjtcclxuXHRIb3Jpem9udGFsU2NhbGU/OiBudW1iZXI7XHJcblx0VmVydGljYWxTY2FsZT86IG51bWJlcjtcclxuXHRUcmFja2luZz86IG51bWJlcjtcclxuXHRBdXRvS2VybmluZz86IGJvb2xlYW47XHJcblx0S2VybmluZz86IG51bWJlcjtcclxuXHRCYXNlbGluZVNoaWZ0PzogbnVtYmVyO1xyXG5cdEZvbnRDYXBzPzogbnVtYmVyO1xyXG5cdEZvbnRCYXNlbGluZT86IG51bWJlcjtcclxuXHRVbmRlcmxpbmU/OiBib29sZWFuO1xyXG5cdFN0cmlrZXRocm91Z2g/OiBib29sZWFuO1xyXG5cdExpZ2F0dXJlcz86IGJvb2xlYW47XHJcblx0RExpZ2F0dXJlcz86IGJvb2xlYW47XHJcblx0QmFzZWxpbmVEaXJlY3Rpb24/OiBudW1iZXI7XHJcblx0VHN1bWU/OiBudW1iZXI7XHJcblx0U3R5bGVSdW5BbGlnbm1lbnQ/OiBudW1iZXI7XHJcblx0TGFuZ3VhZ2U/OiBudW1iZXI7XHJcblx0Tm9CcmVhaz86IGJvb2xlYW47XHJcblx0RmlsbENvbG9yPzogVHlwZVZhbHVlcztcclxuXHRTdHJva2VDb2xvcj86IFR5cGVWYWx1ZXM7XHJcblx0RmlsbEZsYWc/OiBib29sZWFuO1xyXG5cdFN0cm9rZUZsYWc/OiBib29sZWFuO1xyXG5cdEZpbGxGaXJzdD86IGJvb2xlYW47XHJcblx0WVVuZGVybGluZT86IG51bWJlcjtcclxuXHRPdXRsaW5lV2lkdGg/OiBudW1iZXI7XHJcblx0Q2hhcmFjdGVyRGlyZWN0aW9uPzogbnVtYmVyO1xyXG5cdEhpbmRpTnVtYmVycz86IGJvb2xlYW47XHJcblx0S2FzaGlkYT86IG51bWJlcjtcclxuXHREaWFjcml0aWNQb3M/OiBudW1iZXI7XHJcbn1cclxuXHJcbmludGVyZmFjZSBGb250U2V0IHtcclxuXHROYW1lOiBzdHJpbmc7XHJcblx0U2NyaXB0OiBudW1iZXI7XHJcblx0Rm9udFR5cGU6IG51bWJlcjtcclxuXHRTeW50aGV0aWM6IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJlc291cmNlRGljdCB7XHJcblx0S2luc29rdVNldDogYW55W107XHJcblx0TW9qaUt1bWlTZXQ6IGFueVtdO1xyXG5cdFRoZU5vcm1hbFN0eWxlU2hlZXQ6IG51bWJlcjtcclxuXHRUaGVOb3JtYWxQYXJhZ3JhcGhTaGVldDogbnVtYmVyO1xyXG5cdFBhcmFncmFwaFNoZWV0U2V0OiBQYXJhZ3JhcGhTaGVldFtdO1xyXG5cdFN0eWxlU2hlZXRTZXQ6IHsgTmFtZTogc3RyaW5nOyBTdHlsZVNoZWV0RGF0YTogU3R5bGVTaGVldERhdGE7IH1bXTtcclxuXHRGb250U2V0OiBGb250U2V0W107XHJcblx0U3VwZXJzY3JpcHRTaXplOiBudW1iZXI7XHJcblx0U3VwZXJzY3JpcHRQb3NpdGlvbjogbnVtYmVyO1xyXG5cdFN1YnNjcmlwdFNpemU6IG51bWJlcjtcclxuXHRTdWJzY3JpcHRQb3NpdGlvbjogbnVtYmVyO1xyXG5cdFNtYWxsQ2FwU2l6ZTogbnVtYmVyO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGFyYWdyYXBoUnVuIHtcclxuXHRQYXJhZ3JhcGhTaGVldDogUGFyYWdyYXBoU2hlZXQ7XHJcblx0QWRqdXN0bWVudHM6IEFkanVzdG1lbnRzO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU3R5bGVSdW4ge1xyXG5cdFN0eWxlU2hlZXQ6IHsgU3R5bGVTaGVldERhdGE6IFN0eWxlU2hlZXREYXRhOyB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGhvdG9zaG9wTm9kZSB7XHJcblx0U2hhcGVUeXBlPzogbnVtYmVyO1xyXG5cdFBvaW50QmFzZT86IG51bWJlcltdO1xyXG5cdEJveEJvdW5kcz86IG51bWJlcltdO1xyXG5cdEJhc2U/OiB7XHJcblx0XHRTaGFwZVR5cGU6IG51bWJlcjtcclxuXHRcdFRyYW5zZm9ybVBvaW50MDogbnVtYmVyW107XHJcblx0XHRUcmFuc2Zvcm1Qb2ludDE6IG51bWJlcltdO1xyXG5cdFx0VHJhbnNmb3JtUG9pbnQyOiBudW1iZXJbXTtcclxuXHR9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRW5naW5lRGF0YSB7XHJcblx0RW5naW5lRGljdDoge1xyXG5cdFx0RWRpdG9yOiB7IFRleHQ6IHN0cmluZzsgfTtcclxuXHRcdFBhcmFncmFwaFJ1bjoge1xyXG5cdFx0XHREZWZhdWx0UnVuRGF0YTogUGFyYWdyYXBoUnVuO1xyXG5cdFx0XHRSdW5BcnJheTogUGFyYWdyYXBoUnVuW107XHJcblx0XHRcdFJ1bkxlbmd0aEFycmF5OiBudW1iZXJbXTtcclxuXHRcdFx0SXNKb2luYWJsZTogbnVtYmVyO1xyXG5cdFx0fTtcclxuXHRcdFN0eWxlUnVuOiB7XHJcblx0XHRcdERlZmF1bHRSdW5EYXRhOiBTdHlsZVJ1bjtcclxuXHRcdFx0UnVuQXJyYXk6IFN0eWxlUnVuW107XHJcblx0XHRcdFJ1bkxlbmd0aEFycmF5OiBudW1iZXJbXTtcclxuXHRcdFx0SXNKb2luYWJsZTogbnVtYmVyO1xyXG5cdFx0fTtcclxuXHRcdEdyaWRJbmZvOiB7XHJcblx0XHRcdEdyaWRJc09uOiBib29sZWFuO1xyXG5cdFx0XHRTaG93R3JpZDogYm9vbGVhbjtcclxuXHRcdFx0R3JpZFNpemU6IG51bWJlcjtcclxuXHRcdFx0R3JpZExlYWRpbmc6IG51bWJlcjtcclxuXHRcdFx0R3JpZENvbG9yOiBUeXBlVmFsdWVzO1xyXG5cdFx0XHRHcmlkTGVhZGluZ0ZpbGxDb2xvcjogVHlwZVZhbHVlcztcclxuXHRcdFx0QWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3M6IGJvb2xlYW47XHJcblx0XHR9O1xyXG5cdFx0QW50aUFsaWFzOiBudW1iZXI7XHJcblx0XHRVc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHM6IGJvb2xlYW47XHJcblx0XHRSZW5kZXJlZD86IHtcclxuXHRcdFx0VmVyc2lvbjogbnVtYmVyO1xyXG5cdFx0XHRTaGFwZXM/OiB7XHJcblx0XHRcdFx0V3JpdGluZ0RpcmVjdGlvbjogbnVtYmVyO1xyXG5cdFx0XHRcdENoaWxkcmVuPzoge1xyXG5cdFx0XHRcdFx0U2hhcGVUeXBlPzogbnVtYmVyO1xyXG5cdFx0XHRcdFx0UHJvY2Vzc2lvbjogbnVtYmVyO1xyXG5cdFx0XHRcdFx0TGluZXM6IHsgV3JpdGluZ0RpcmVjdGlvbjogbnVtYmVyOyBDaGlsZHJlbjogYW55W107IH07XHJcblx0XHRcdFx0XHRDb29raWU/OiB7XHJcblx0XHRcdFx0XHRcdFBob3Rvc2hvcD86IFBob3Rvc2hvcE5vZGU7XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH1bXTtcclxuXHRcdFx0fTtcclxuXHRcdH07XHJcblx0fTtcclxuXHRSZXNvdXJjZURpY3Q6IFJlc291cmNlRGljdDtcclxuXHREb2N1bWVudFJlc291cmNlczogUmVzb3VyY2VEaWN0O1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0Rm9udDogRm9udCA9IHtcclxuXHRuYW1lOiAnTXlyaWFkUHJvLVJlZ3VsYXInLFxyXG5cdHNjcmlwdDogMCxcclxuXHR0eXBlOiAwLFxyXG5cdHN5bnRoZXRpYzogMCxcclxufTtcclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJhZ3JhcGhTdHlsZTogUGFyYWdyYXBoU3R5bGUgPSB7XHJcblx0anVzdGlmaWNhdGlvbjogJ2xlZnQnLFxyXG5cdGZpcnN0TGluZUluZGVudDogMCxcclxuXHRzdGFydEluZGVudDogMCxcclxuXHRlbmRJbmRlbnQ6IDAsXHJcblx0c3BhY2VCZWZvcmU6IDAsXHJcblx0c3BhY2VBZnRlcjogMCxcclxuXHRhdXRvSHlwaGVuYXRlOiB0cnVlLFxyXG5cdGh5cGhlbmF0ZWRXb3JkU2l6ZTogNixcclxuXHRwcmVIeXBoZW46IDIsXHJcblx0cG9zdEh5cGhlbjogMixcclxuXHRjb25zZWN1dGl2ZUh5cGhlbnM6IDgsXHJcblx0em9uZTogMzYsXHJcblx0d29yZFNwYWNpbmc6IFswLjgsIDEsIDEuMzNdLFxyXG5cdGxldHRlclNwYWNpbmc6IFswLCAwLCAwXSxcclxuXHRnbHlwaFNwYWNpbmc6IFsxLCAxLCAxXSxcclxuXHRhdXRvTGVhZGluZzogMS4yLFxyXG5cdGxlYWRpbmdUeXBlOiAwLFxyXG5cdGhhbmdpbmc6IGZhbHNlLFxyXG5cdGJ1cmFzYWdhcmk6IGZhbHNlLFxyXG5cdGtpbnNva3VPcmRlcjogMCxcclxuXHRldmVyeUxpbmVDb21wb3NlcjogZmFsc2UsXHJcbn07XHJcblxyXG5jb25zdCBkZWZhdWx0U3R5bGU6IFRleHRTdHlsZSA9IHtcclxuXHRmb250OiBkZWZhdWx0Rm9udCxcclxuXHRmb250U2l6ZTogMTIsXHJcblx0ZmF1eEJvbGQ6IGZhbHNlLFxyXG5cdGZhdXhJdGFsaWM6IGZhbHNlLFxyXG5cdGF1dG9MZWFkaW5nOiB0cnVlLFxyXG5cdGxlYWRpbmc6IDAsXHJcblx0aG9yaXpvbnRhbFNjYWxlOiAxLFxyXG5cdHZlcnRpY2FsU2NhbGU6IDEsXHJcblx0dHJhY2tpbmc6IDAsXHJcblx0YXV0b0tlcm5pbmc6IHRydWUsXHJcblx0a2VybmluZzogMCxcclxuXHRiYXNlbGluZVNoaWZ0OiAwLFxyXG5cdGZvbnRDYXBzOiAwLFxyXG5cdGZvbnRCYXNlbGluZTogMCxcclxuXHR1bmRlcmxpbmU6IGZhbHNlLFxyXG5cdHN0cmlrZXRocm91Z2g6IGZhbHNlLFxyXG5cdGxpZ2F0dXJlczogdHJ1ZSxcclxuXHRkTGlnYXR1cmVzOiBmYWxzZSxcclxuXHRiYXNlbGluZURpcmVjdGlvbjogMixcclxuXHR0c3VtZTogMCxcclxuXHRzdHlsZVJ1bkFsaWdubWVudDogMixcclxuXHRsYW5ndWFnZTogMCxcclxuXHRub0JyZWFrOiBmYWxzZSxcclxuXHRmaWxsQ29sb3I6IHsgcjogMCwgZzogMCwgYjogMCB9LFxyXG5cdHN0cm9rZUNvbG9yOiB7IHI6IDAsIGc6IDAsIGI6IDAgfSxcclxuXHRmaWxsRmxhZzogdHJ1ZSxcclxuXHRzdHJva2VGbGFnOiBmYWxzZSxcclxuXHRmaWxsRmlyc3Q6IHRydWUsXHJcblx0eVVuZGVybGluZTogMSxcclxuXHRvdXRsaW5lV2lkdGg6IDEsXHJcblx0Y2hhcmFjdGVyRGlyZWN0aW9uOiAwLFxyXG5cdGhpbmRpTnVtYmVyczogZmFsc2UsXHJcblx0a2FzaGlkYTogMSxcclxuXHRkaWFjcml0aWNQb3M6IDIsXHJcbn07XHJcblxyXG5jb25zdCBkZWZhdWx0R3JpZEluZm86IFRleHRHcmlkSW5mbyA9IHtcclxuXHRpc09uOiBmYWxzZSxcclxuXHRzaG93OiBmYWxzZSxcclxuXHRzaXplOiAxOCxcclxuXHRsZWFkaW5nOiAyMixcclxuXHRjb2xvcjogeyByOiAwLCBnOiAwLCBiOiAyNTUgfSxcclxuXHRsZWFkaW5nRmlsbENvbG9yOiB7IHI6IDAsIGc6IDAsIGI6IDI1NSB9LFxyXG5cdGFsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzOiBmYWxzZSxcclxufTtcclxuXHJcbmNvbnN0IHBhcmFncmFwaFN0eWxlS2V5czogKGtleW9mIFBhcmFncmFwaFN0eWxlKVtdID0gW1xyXG5cdCdqdXN0aWZpY2F0aW9uJywgJ2ZpcnN0TGluZUluZGVudCcsICdzdGFydEluZGVudCcsICdlbmRJbmRlbnQnLCAnc3BhY2VCZWZvcmUnLCAnc3BhY2VBZnRlcicsXHJcblx0J2F1dG9IeXBoZW5hdGUnLCAnaHlwaGVuYXRlZFdvcmRTaXplJywgJ3ByZUh5cGhlbicsICdwb3N0SHlwaGVuJywgJ2NvbnNlY3V0aXZlSHlwaGVucycsXHJcblx0J3pvbmUnLCAnd29yZFNwYWNpbmcnLCAnbGV0dGVyU3BhY2luZycsICdnbHlwaFNwYWNpbmcnLCAnYXV0b0xlYWRpbmcnLCAnbGVhZGluZ1R5cGUnLFxyXG5cdCdoYW5naW5nJywgJ2J1cmFzYWdhcmknLCAna2luc29rdU9yZGVyJywgJ2V2ZXJ5TGluZUNvbXBvc2VyJyxcclxuXTtcclxuXHJcbmNvbnN0IHN0eWxlS2V5czogKGtleW9mIFRleHRTdHlsZSlbXSA9IFtcclxuXHQnZm9udCcsICdmb250U2l6ZScsICdmYXV4Qm9sZCcsICdmYXV4SXRhbGljJywgJ2F1dG9MZWFkaW5nJywgJ2xlYWRpbmcnLCAnaG9yaXpvbnRhbFNjYWxlJyxcclxuXHQndmVydGljYWxTY2FsZScsICd0cmFja2luZycsICdhdXRvS2VybmluZycsICdrZXJuaW5nJywgJ2Jhc2VsaW5lU2hpZnQnLCAnZm9udENhcHMnLCAnZm9udEJhc2VsaW5lJyxcclxuXHQndW5kZXJsaW5lJywgJ3N0cmlrZXRocm91Z2gnLCAnbGlnYXR1cmVzJywgJ2RMaWdhdHVyZXMnLCAnYmFzZWxpbmVEaXJlY3Rpb24nLCAndHN1bWUnLFxyXG5cdCdzdHlsZVJ1bkFsaWdubWVudCcsICdsYW5ndWFnZScsICdub0JyZWFrJywgJ2ZpbGxDb2xvcicsICdzdHJva2VDb2xvcicsICdmaWxsRmxhZycsXHJcblx0J3N0cm9rZUZsYWcnLCAnZmlsbEZpcnN0JywgJ3lVbmRlcmxpbmUnLCAnb3V0bGluZVdpZHRoJywgJ2NoYXJhY3RlckRpcmVjdGlvbicsICdoaW5kaU51bWJlcnMnLFxyXG5cdCdrYXNoaWRhJywgJ2RpYWNyaXRpY1BvcycsXHJcbl07XHJcblxyXG5jb25zdCBhbnRpYWxpYXM6IEFudGlBbGlhc1tdID0gWydub25lJywgJ2NyaXNwJywgJ3N0cm9uZycsICdzbW9vdGgnLCAnc2hhcnAnXTtcclxuY29uc3QganVzdGlmaWNhdGlvbjogSnVzdGlmaWNhdGlvbltdID0gWydsZWZ0JywgJ3JpZ2h0JywgJ2NlbnRlciddO1xyXG5cclxuZnVuY3Rpb24gdXBwZXJGaXJzdCh2YWx1ZTogc3RyaW5nKSB7XHJcblx0cmV0dXJuIHZhbHVlLnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc3Vic3RyKDEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkZWNvZGVDb2xvcihjb2xvcjogeyBUeXBlOiBudW1iZXI7IFZhbHVlczogbnVtYmVyW107IH0pOiBDb2xvciB7XHJcblx0Y29uc3QgYyA9IGNvbG9yLlZhbHVlcztcclxuXHJcblx0aWYgKGNvbG9yLlR5cGUgPT09IDApIHsgLy8gZ3JheXNjYWxlXHJcblx0XHRyZXR1cm4geyByOiBjWzFdICogMjU1LCBnOiBjWzFdICogMjU1LCBiOiBjWzFdICogMjU1IH07IC8vICwgY1swXSAqIDI1NV07XHJcblx0fSBlbHNlIHsgLy8gcmdiXHJcblx0XHRyZXR1cm4geyByOiBjWzFdICogMjU1LCBnOiBjWzJdICogMjU1LCBiOiBjWzNdICogMjU1LCBhOiBjWzBdIH07IC8vICwgY1swXSAqIDI1NV07XHJcblx0fVxyXG59XHJcblxyXG5mdW5jdGlvbiBlbmNvZGVDb2xvcihjb2xvcjogQ29sb3IgfCB1bmRlZmluZWQpIHtcclxuXHRpZiAoY29sb3IgJiYgJ3InIGluIGNvbG9yKSB7XHJcblx0XHRyZXR1cm4gWydhJyBpbiBjb2xvciA/IGNvbG9yLmEgOiAxLCBjb2xvci5yIC8gMjU1LCBjb2xvci5nIC8gMjU1LCBjb2xvci5iIC8gMjU1XTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0cmV0dXJuIFswLCAwLCAwLCAwXTtcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFycmF5c0VxdWFsKGE6IGFueVtdLCBiOiBhbnlbXSkge1xyXG5cdGlmICghYSB8fCAhYikgcmV0dXJuIGZhbHNlO1xyXG5cdGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XHJcblx0cmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG9iamVjdHNFcXVhbChhOiBhbnksIGI6IGFueSkge1xyXG5cdGlmICghYSB8fCAhYikgcmV0dXJuIGZhbHNlO1xyXG5cdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGEpKSBpZiAoYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcclxuXHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhiKSkgaWYgKGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XHJcblx0cmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRPckFkZEZvbnQoZm9udHM6IEZvbnRbXSwgZm9udDogRm9udCkge1xyXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgZm9udHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdGlmIChmb250c1tpXS5uYW1lID09PSBmb250Lm5hbWUpIHJldHVybiBpO1xyXG5cdH1cclxuXHJcblx0Zm9udHMucHVzaChmb250KTtcclxuXHRyZXR1cm4gZm9udHMubGVuZ3RoIC0gMTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVjb2RlT2JqZWN0KG9iajogYW55LCBrZXlzOiBzdHJpbmdbXSwgZm9udHM6IEZvbnRbXSkge1xyXG5cdGNvbnN0IHJlc3VsdDogYW55ID0ge307XHJcblxyXG5cdGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcclxuXHRcdGNvbnN0IEtleSA9IHVwcGVyRmlyc3Qoa2V5KTtcclxuXHJcblx0XHRpZiAob2JqW0tleV0gPT09IHVuZGVmaW5lZCkgY29udGludWU7XHJcblxyXG5cdFx0aWYgKGtleSA9PT0gJ2p1c3RpZmljYXRpb24nKSB7XHJcblx0XHRcdHJlc3VsdFtrZXldID0ganVzdGlmaWNhdGlvbltvYmpbS2V5XV07XHJcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ2ZvbnQnKSB7XHJcblx0XHRcdHJlc3VsdFtrZXldID0gZm9udHNbb2JqW0tleV1dO1xyXG5cdFx0fSBlbHNlIGlmIChrZXkgPT09ICdmaWxsQ29sb3InIHx8IGtleSA9PT0gJ3N0cm9rZUNvbG9yJykge1xyXG5cdFx0XHRyZXN1bHRba2V5XSA9IGRlY29kZUNvbG9yKG9ialtLZXldKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJlc3VsdFtrZXldID0gb2JqW0tleV07XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmNvZGVPYmplY3Qob2JqOiBhbnksIGtleXM6IHN0cmluZ1tdLCBmb250czogRm9udFtdKSB7XHJcblx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcclxuXHJcblx0Zm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xyXG5cdFx0Y29uc3QgS2V5ID0gdXBwZXJGaXJzdChrZXkpO1xyXG5cclxuXHRcdGlmIChvYmpba2V5XSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcclxuXHJcblx0XHRpZiAoa2V5ID09PSAnanVzdGlmaWNhdGlvbicpIHtcclxuXHRcdFx0cmVzdWx0W0tleV0gPSBqdXN0aWZpY2F0aW9uLmluZGV4T2Yob2JqW2tleV0gPz8gJ2xlZnQnKTtcclxuXHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnZm9udCcpIHtcclxuXHRcdFx0cmVzdWx0W0tleV0gPSBmaW5kT3JBZGRGb250KGZvbnRzLCBvYmpba2V5XSk7XHJcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ2ZpbGxDb2xvcicgfHwga2V5ID09PSAnc3Ryb2tlQ29sb3InKSB7XHJcblx0XHRcdHJlc3VsdFtLZXldID0geyBUeXBlOiAxLCBWYWx1ZXM6IGVuY29kZUNvbG9yKG9ialtrZXldKSB9IGFzIFR5cGVWYWx1ZXM7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXN1bHRbS2V5XSA9IG9ialtrZXldO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVjb2RlUGFyYWdyYXBoU3R5bGUob2JqOiBQYXJhZ3JhcGhQcm9wZXJ0aWVzLCBmb250czogRm9udFtdKTogUGFyYWdyYXBoU3R5bGUge1xyXG5cdHJldHVybiBkZWNvZGVPYmplY3Qob2JqLCBwYXJhZ3JhcGhTdHlsZUtleXMsIGZvbnRzKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVjb2RlU3R5bGUob2JqOiBTdHlsZVNoZWV0RGF0YSwgZm9udHM6IEZvbnRbXSk6IFRleHRTdHlsZSB7XHJcblx0cmV0dXJuIGRlY29kZU9iamVjdChvYmosIHN0eWxlS2V5cywgZm9udHMpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmNvZGVQYXJhZ3JhcGhTdHlsZShvYmo6IFBhcmFncmFwaFN0eWxlLCBmb250czogRm9udFtdKTogUGFyYWdyYXBoUHJvcGVydGllcyB7XHJcblx0cmV0dXJuIGVuY29kZU9iamVjdChvYmosIHBhcmFncmFwaFN0eWxlS2V5cywgZm9udHMpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmNvZGVTdHlsZShvYmo6IFRleHRTdHlsZSwgZm9udHM6IEZvbnRbXSk6IFN0eWxlU2hlZXREYXRhIHtcclxuXHRyZXR1cm4gZW5jb2RlT2JqZWN0KG9iaiwgc3R5bGVLZXlzLCBmb250cyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlZHVwbGljYXRlVmFsdWVzPFQ+KGJhc2U6IFQsIHJ1bnM6IHsgc3R5bGU6IFQ7IH1bXSwga2V5czogKGtleW9mIFQpW10pIHtcclxuXHRpZiAoIXJ1bnMubGVuZ3RoKSByZXR1cm47XHJcblxyXG5cdGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcclxuXHRcdGNvbnN0IHZhbHVlID0gcnVuc1swXS5zdHlsZVtrZXldO1xyXG5cclxuXHRcdGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdGxldCBpZGVudGljYWwgPSBmYWxzZTtcclxuXHJcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG5cdFx0XHRcdGlkZW50aWNhbCA9IHJ1bnMuZXZlcnkociA9PiBhcnJheXNFcXVhbChyLnN0eWxlW2tleV0gYXMgYW55LCB2YWx1ZSkpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRpZGVudGljYWwgPSBydW5zLmV2ZXJ5KHIgPT4gb2JqZWN0c0VxdWFsKHIuc3R5bGVba2V5XSBhcyBhbnksIHZhbHVlKSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aWRlbnRpY2FsID0gcnVucy5ldmVyeShyID0+IHIuc3R5bGVba2V5XSA9PT0gdmFsdWUpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoaWRlbnRpY2FsKSB7XHJcblx0XHRcdFx0YmFzZVtrZXldID0gdmFsdWUgYXMgYW55O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgc3R5bGVWYWx1ZSA9IGJhc2Vba2V5XTtcclxuXHJcblx0XHRpZiAoc3R5bGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdGZvciAoY29uc3QgciBvZiBydW5zKSB7XHJcblx0XHRcdFx0bGV0IHNhbWUgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcblx0XHRcdFx0XHRzYW1lID0gYXJyYXlzRXF1YWwoci5zdHlsZVtrZXldIGFzIGFueSwgdmFsdWUpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRcdFx0c2FtZSA9IG9iamVjdHNFcXVhbChyLnN0eWxlW2tleV0gYXMgYW55LCB2YWx1ZSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHNhbWUgPSByLnN0eWxlW2tleV0gPT09IHZhbHVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHNhbWUpIGRlbGV0ZSByLnN0eWxlW2tleV07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGlmIChydW5zLmV2ZXJ5KHggPT4gT2JqZWN0LmtleXMoeC5zdHlsZSkubGVuZ3RoID09PSAwKSkge1xyXG5cdFx0cnVucy5sZW5ndGggPSAwO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUVuZ2luZURhdGEoZW5naW5lRGF0YTogRW5naW5lRGF0YSkge1xyXG5cdC8vIGNvbnNvbGUubG9nKCdlbmdpbmVEYXRhJywgcmVxdWlyZSgndXRpbCcpLmluc3BlY3QoZW5naW5lRGF0YSwgZmFsc2UsIDk5LCB0cnVlKSk7XHJcblx0Y29uc3QgZW5naW5lRGljdCA9IGVuZ2luZURhdGEuRW5naW5lRGljdDtcclxuXHRjb25zdCByZXNvdXJjZURpY3QgPSBlbmdpbmVEYXRhLlJlc291cmNlRGljdDtcclxuXHJcblx0Y29uc3QgZm9udHMgPSByZXNvdXJjZURpY3QuRm9udFNldC5tYXA8Rm9udD4oZiA9PiAoe1xyXG5cdFx0bmFtZTogZi5OYW1lLFxyXG5cdFx0c2NyaXB0OiBmLlNjcmlwdCxcclxuXHRcdHR5cGU6IGYuRm9udFR5cGUsXHJcblx0XHRzeW50aGV0aWM6IGYuU3ludGhldGljLFxyXG5cdH0pKTtcclxuXHJcblx0bGV0IHRleHQgPSBlbmdpbmVEaWN0LkVkaXRvci5UZXh0LnJlcGxhY2UoL1xcci9nLCAnXFxuJyk7XHJcblx0bGV0IHJlbW92ZWRDaGFyYWN0ZXJzID0gMDtcclxuXHJcblx0d2hpbGUgKC9cXG4kLy50ZXN0KHRleHQpKSB7XHJcblx0XHR0ZXh0ID0gdGV4dC5zdWJzdHIoMCwgdGV4dC5sZW5ndGggLSAxKTtcclxuXHRcdHJlbW92ZWRDaGFyYWN0ZXJzKys7XHJcblx0fVxyXG5cclxuXHRjb25zdCByZXN1bHQ6IExheWVyVGV4dERhdGEgPSB7XHJcblx0XHR0ZXh0LFxyXG5cdFx0YW50aUFsaWFzOiBhbnRpYWxpYXNbZW5naW5lRGljdC5BbnRpQWxpYXNdID8/ICdzbW9vdGgnLFxyXG5cdFx0dXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzOiAhIWVuZ2luZURpY3QuVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzLFxyXG5cdFx0c3VwZXJzY3JpcHRTaXplOiByZXNvdXJjZURpY3QuU3VwZXJzY3JpcHRTaXplLFxyXG5cdFx0c3VwZXJzY3JpcHRQb3NpdGlvbjogcmVzb3VyY2VEaWN0LlN1cGVyc2NyaXB0UG9zaXRpb24sXHJcblx0XHRzdWJzY3JpcHRTaXplOiByZXNvdXJjZURpY3QuU3Vic2NyaXB0U2l6ZSxcclxuXHRcdHN1YnNjcmlwdFBvc2l0aW9uOiByZXNvdXJjZURpY3QuU3Vic2NyaXB0UG9zaXRpb24sXHJcblx0XHRzbWFsbENhcFNpemU6IHJlc291cmNlRGljdC5TbWFsbENhcFNpemUsXHJcblx0fTtcclxuXHJcblx0Ly8gc2hhcGVcclxuXHJcblx0Y29uc3QgcGhvdG9zaG9wID0gZW5naW5lRGljdC5SZW5kZXJlZD8uU2hhcGVzPy5DaGlsZHJlbj8uWzBdPy5Db29raWU/LlBob3Rvc2hvcDtcclxuXHJcblx0aWYgKHBob3Rvc2hvcCkge1xyXG5cdFx0cmVzdWx0LnNoYXBlVHlwZSA9IHBob3Rvc2hvcC5TaGFwZVR5cGUgPT09IDEgPyAnYm94JyA6ICdwb2ludCc7XHJcblx0XHRpZiAocGhvdG9zaG9wLlBvaW50QmFzZSkgcmVzdWx0LnBvaW50QmFzZSA9IHBob3Rvc2hvcC5Qb2ludEJhc2U7XHJcblx0XHRpZiAocGhvdG9zaG9wLkJveEJvdW5kcykgcmVzdWx0LmJveEJvdW5kcyA9IHBob3Rvc2hvcC5Cb3hCb3VuZHM7XHJcblx0fVxyXG5cclxuXHQvLyBwYXJhZ3JhcGggc3R5bGVcclxuXHJcblx0Ly8gY29uc3QgdGhlTm9ybWFsUGFyYWdyYXBoU2hlZXQgPSByZXNvdXJjZURpY3QuVGhlTm9ybWFsUGFyYWdyYXBoU2hlZXQ7XHJcblx0Ly8gY29uc3QgcGFyYWdyYXBoU2hlZXRTZXQgPSByZXNvdXJjZURpY3QuUGFyYWdyYXBoU2hlZXRTZXQ7XHJcblx0Ly8gY29uc3QgcGFyYWdyYXBoUHJvcGVydGllcyA9IHBhcmFncmFwaFNoZWV0U2V0W3RoZU5vcm1hbFBhcmFncmFwaFNoZWV0XS5Qcm9wZXJ0aWVzO1xyXG5cdGNvbnN0IHBhcmFncmFwaFJ1biA9IGVuZ2luZURhdGEuRW5naW5lRGljdC5QYXJhZ3JhcGhSdW47XHJcblxyXG5cdHJlc3VsdC5wYXJhZ3JhcGhTdHlsZSA9IHt9OyAvLyBkZWNvZGVQYXJhZ3JhcGhTdHlsZShwYXJhZ3JhcGhQcm9wZXJ0aWVzLCBmb250cyk7XHJcblx0cmVzdWx0LnBhcmFncmFwaFN0eWxlUnVucyA9IFtdO1xyXG5cclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFncmFwaFJ1bi5SdW5BcnJheS5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y29uc3QgcnVuID0gcGFyYWdyYXBoUnVuLlJ1bkFycmF5W2ldO1xyXG5cdFx0Y29uc3QgbGVuZ3RoID0gcGFyYWdyYXBoUnVuLlJ1bkxlbmd0aEFycmF5W2ldO1xyXG5cdFx0Y29uc3Qgc3R5bGUgPSBkZWNvZGVQYXJhZ3JhcGhTdHlsZShydW4uUGFyYWdyYXBoU2hlZXQuUHJvcGVydGllcywgZm9udHMpO1xyXG5cdFx0Ly8gY29uc3QgYWRqdXN0bWVudHMgPSB7XHJcblx0XHQvLyAgIGF4aXM6IHJ1bi5BZGp1c3RtZW50cy5BeGlzLFxyXG5cdFx0Ly8gICB4eTogcnVuLkFkanVzdG1lbnRzLlhZLFxyXG5cdFx0Ly8gfTtcclxuXHRcdHJlc3VsdC5wYXJhZ3JhcGhTdHlsZVJ1bnMucHVzaCh7IGxlbmd0aCwgc3R5bGUvKiwgYWRqdXN0bWVudHMqLyB9KTtcclxuXHR9XHJcblxyXG5cdGZvciAobGV0IGNvdW50ZXIgPSByZW1vdmVkQ2hhcmFjdGVyczsgcmVzdWx0LnBhcmFncmFwaFN0eWxlUnVucy5sZW5ndGggJiYgY291bnRlciA+IDA7IGNvdW50ZXItLSkge1xyXG5cdFx0aWYgKC0tcmVzdWx0LnBhcmFncmFwaFN0eWxlUnVuc1tyZXN1bHQucGFyYWdyYXBoU3R5bGVSdW5zLmxlbmd0aCAtIDFdLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRyZXN1bHQucGFyYWdyYXBoU3R5bGVSdW5zLnBvcCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZGVkdXBsaWNhdGVWYWx1ZXMocmVzdWx0LnBhcmFncmFwaFN0eWxlLCByZXN1bHQucGFyYWdyYXBoU3R5bGVSdW5zLCBwYXJhZ3JhcGhTdHlsZUtleXMpO1xyXG5cclxuXHRpZiAoIXJlc3VsdC5wYXJhZ3JhcGhTdHlsZVJ1bnMubGVuZ3RoKSBkZWxldGUgcmVzdWx0LnBhcmFncmFwaFN0eWxlUnVucztcclxuXHJcblx0Ly8gc3R5bGVcclxuXHJcblx0Ly8gY29uc3QgdGhlTm9ybWFsU3R5bGVTaGVldCA9IHJlc291cmNlRGljdC5UaGVOb3JtYWxTdHlsZVNoZWV0O1xyXG5cdC8vIGNvbnN0IHN0eWxlU2hlZXRTZXQgPSByZXNvdXJjZURpY3QuU3R5bGVTaGVldFNldDtcclxuXHQvLyBjb25zdCBzdHlsZVNoZWV0RGF0YSA9IHN0eWxlU2hlZXRTZXRbdGhlTm9ybWFsU3R5bGVTaGVldF0uU3R5bGVTaGVldERhdGE7XHJcblx0Y29uc3Qgc3R5bGVSdW4gPSBlbmdpbmVEYXRhLkVuZ2luZURpY3QuU3R5bGVSdW47XHJcblxyXG5cdHJlc3VsdC5zdHlsZSA9IHt9OyAvLyBkZWNvZGVTdHlsZShzdHlsZVNoZWV0RGF0YSwgZm9udHMpO1xyXG5cdHJlc3VsdC5zdHlsZVJ1bnMgPSBbXTtcclxuXHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdHlsZVJ1bi5SdW5BcnJheS5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y29uc3QgbGVuZ3RoID0gc3R5bGVSdW4uUnVuTGVuZ3RoQXJyYXlbaV07XHJcblx0XHRjb25zdCBzdHlsZSA9IGRlY29kZVN0eWxlKHN0eWxlUnVuLlJ1bkFycmF5W2ldLlN0eWxlU2hlZXQuU3R5bGVTaGVldERhdGEsIGZvbnRzKTtcclxuXHRcdHJlc3VsdC5zdHlsZVJ1bnMucHVzaCh7IGxlbmd0aCwgc3R5bGUgfSk7XHJcblx0fVxyXG5cclxuXHRmb3IgKGxldCBjb3VudGVyID0gcmVtb3ZlZENoYXJhY3RlcnM7IHJlc3VsdC5zdHlsZVJ1bnMubGVuZ3RoICYmIGNvdW50ZXIgPiAwOyBjb3VudGVyLS0pIHtcclxuXHRcdGlmICgtLXJlc3VsdC5zdHlsZVJ1bnNbcmVzdWx0LnN0eWxlUnVucy5sZW5ndGggLSAxXS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0cmVzdWx0LnN0eWxlUnVucy5wb3AoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGRlZHVwbGljYXRlVmFsdWVzKHJlc3VsdC5zdHlsZSwgcmVzdWx0LnN0eWxlUnVucywgc3R5bGVLZXlzKTtcclxuXHJcblx0aWYgKCFyZXN1bHQuc3R5bGVSdW5zLmxlbmd0aCkgZGVsZXRlIHJlc3VsdC5zdHlsZVJ1bnM7XHJcblxyXG5cdHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVFbmdpbmVEYXRhKGRhdGE6IExheWVyVGV4dERhdGEpIHtcclxuXHRjb25zdCB0ZXh0ID0gYCR7KGRhdGEudGV4dCB8fCAnJykucmVwbGFjZSgvXFxyP1xcbi9nLCAnXFxyJyl9XFxyYDtcclxuXHJcblx0Y29uc3QgZm9udHM6IEZvbnRbXSA9IFtcclxuXHRcdHsgbmFtZTogJ0Fkb2JlSW52aXNGb250Jywgc2NyaXB0OiAwLCB0eXBlOiAwLCBzeW50aGV0aWM6IDAgfSxcclxuXHRdO1xyXG5cclxuXHRjb25zdCBkZWZGb250ID0gZGF0YS5zdHlsZT8uZm9udCB8fCBkYXRhLnN0eWxlUnVucz8uZmluZChzID0+IHMuc3R5bGUuZm9udCk/LnN0eWxlLmZvbnQgfHwgZGVmYXVsdEZvbnQ7XHJcblx0Y29uc3QgcGFyYWdyYXBoUnVuQXJyYXk6IFBhcmFncmFwaFJ1bltdID0gW107XHJcblx0Y29uc3QgcGFyYWdyYXBoUnVuTGVuZ3RoQXJyYXk6IG51bWJlcltdID0gW107XHJcblx0Y29uc3QgcGFyYWdyYXBoUnVucyA9IGRhdGEucGFyYWdyYXBoU3R5bGVSdW5zO1xyXG5cclxuXHRpZiAocGFyYWdyYXBoUnVucyAmJiBwYXJhZ3JhcGhSdW5zLmxlbmd0aCkge1xyXG5cdFx0bGV0IGxlZnRMZW5ndGggPSB0ZXh0Lmxlbmd0aDtcclxuXHJcblx0XHRmb3IgKGNvbnN0IHJ1biBvZiBwYXJhZ3JhcGhSdW5zKSB7XHJcblx0XHRcdGxldCBydW5MZW5ndGggPSBNYXRoLm1pbihydW4ubGVuZ3RoLCBsZWZ0TGVuZ3RoKTtcclxuXHRcdFx0bGVmdExlbmd0aCAtPSBydW5MZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIXJ1bkxlbmd0aCkgY29udGludWU7IC8vIGlnbm9yZSAwIHNpemUgcnVuc1xyXG5cclxuXHRcdFx0Ly8gZXh0ZW5kIGxhc3QgcnVuIGlmIGl0J3Mgb25seSBmb3IgdHJhaWxpbmcgXFxyXHJcblx0XHRcdGlmIChsZWZ0TGVuZ3RoID09PSAxICYmIHJ1biA9PT0gcGFyYWdyYXBoUnVuc1twYXJhZ3JhcGhSdW5zLmxlbmd0aCAtIDFdKSB7XHJcblx0XHRcdFx0cnVuTGVuZ3RoKys7XHJcblx0XHRcdFx0bGVmdExlbmd0aC0tO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRwYXJhZ3JhcGhSdW5MZW5ndGhBcnJheS5wdXNoKHJ1bkxlbmd0aCk7XHJcblx0XHRcdHBhcmFncmFwaFJ1bkFycmF5LnB1c2goe1xyXG5cdFx0XHRcdFBhcmFncmFwaFNoZWV0OiB7XHJcblx0XHRcdFx0XHREZWZhdWx0U3R5bGVTaGVldDogMCxcclxuXHRcdFx0XHRcdFByb3BlcnRpZXM6IGVuY29kZVBhcmFncmFwaFN0eWxlKHsgLi4uZGVmYXVsdFBhcmFncmFwaFN0eWxlLCAuLi5kYXRhLnBhcmFncmFwaFN0eWxlLCAuLi5ydW4uc3R5bGUgfSwgZm9udHMpLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0QWRqdXN0bWVudHM6IHsgQXhpczogWzEsIDAsIDFdLCBYWTogWzAsIDBdIH0sXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChsZWZ0TGVuZ3RoKSB7XHJcblx0XHRcdHBhcmFncmFwaFJ1bkxlbmd0aEFycmF5LnB1c2gobGVmdExlbmd0aCk7XHJcblx0XHRcdHBhcmFncmFwaFJ1bkFycmF5LnB1c2goe1xyXG5cdFx0XHRcdFBhcmFncmFwaFNoZWV0OiB7XHJcblx0XHRcdFx0XHREZWZhdWx0U3R5bGVTaGVldDogMCxcclxuXHRcdFx0XHRcdFByb3BlcnRpZXM6IGVuY29kZVBhcmFncmFwaFN0eWxlKHsgLi4uZGVmYXVsdFBhcmFncmFwaFN0eWxlLCAuLi5kYXRhLnBhcmFncmFwaFN0eWxlIH0sIGZvbnRzKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdEFkanVzdG1lbnRzOiB7IEF4aXM6IFsxLCAwLCAxXSwgWFk6IFswLCAwXSB9LFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9IGVsc2Uge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDAsIGxhc3QgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRpZiAodGV4dC5jaGFyQ29kZUF0KGkpID09PSAxMykgeyAvLyBcXHJcclxuXHRcdFx0XHRwYXJhZ3JhcGhSdW5MZW5ndGhBcnJheS5wdXNoKGkgLSBsYXN0ICsgMSk7XHJcblx0XHRcdFx0cGFyYWdyYXBoUnVuQXJyYXkucHVzaCh7XHJcblx0XHRcdFx0XHRQYXJhZ3JhcGhTaGVldDoge1xyXG5cdFx0XHRcdFx0XHREZWZhdWx0U3R5bGVTaGVldDogMCxcclxuXHRcdFx0XHRcdFx0UHJvcGVydGllczogZW5jb2RlUGFyYWdyYXBoU3R5bGUoeyAuLi5kZWZhdWx0UGFyYWdyYXBoU3R5bGUsIC4uLmRhdGEucGFyYWdyYXBoU3R5bGUgfSwgZm9udHMpLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdEFkanVzdG1lbnRzOiB7IEF4aXM6IFsxLCAwLCAxXSwgWFk6IFswLCAwXSB9LFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGxhc3QgPSBpICsgMTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y29uc3Qgc3R5bGVTaGVldERhdGEgPSBlbmNvZGVTdHlsZSh7IC4uLmRlZmF1bHRTdHlsZSwgZm9udDogZGVmRm9udCB9LCBmb250cyk7XHJcblx0Y29uc3Qgc3R5bGVSdW5zID0gZGF0YS5zdHlsZVJ1bnMgfHwgW3sgbGVuZ3RoOiB0ZXh0Lmxlbmd0aCwgc3R5bGU6IGRhdGEuc3R5bGUgfHwge30gfV07XHJcblx0Y29uc3Qgc3R5bGVSdW5BcnJheTogU3R5bGVSdW5bXSA9IFtdO1xyXG5cdGNvbnN0IHN0eWxlUnVuTGVuZ3RoQXJyYXk6IG51bWJlcltdID0gW107XHJcblxyXG5cdGxldCBsZWZ0TGVuZ3RoID0gdGV4dC5sZW5ndGg7XHJcblxyXG5cdGZvciAoY29uc3QgcnVuIG9mIHN0eWxlUnVucykge1xyXG5cdFx0bGV0IHJ1bkxlbmd0aCA9IE1hdGgubWluKHJ1bi5sZW5ndGgsIGxlZnRMZW5ndGgpO1xyXG5cdFx0bGVmdExlbmd0aCAtPSBydW5MZW5ndGg7XHJcblxyXG5cdFx0aWYgKCFydW5MZW5ndGgpIGNvbnRpbnVlOyAvLyBpZ25vcmUgMCBzaXplIHJ1bnNcclxuXHJcblx0XHQvLyBleHRlbmQgbGFzdCBydW4gaWYgaXQncyBvbmx5IGZvciB0cmFpbGluZyBcXHJcclxuXHRcdGlmIChsZWZ0TGVuZ3RoID09PSAxICYmIHJ1biA9PT0gc3R5bGVSdW5zW3N0eWxlUnVucy5sZW5ndGggLSAxXSkge1xyXG5cdFx0XHRydW5MZW5ndGgrKztcclxuXHRcdFx0bGVmdExlbmd0aC0tO1xyXG5cdFx0fVxyXG5cclxuXHRcdHN0eWxlUnVuTGVuZ3RoQXJyYXkucHVzaChydW5MZW5ndGgpO1xyXG5cdFx0c3R5bGVSdW5BcnJheS5wdXNoKHtcclxuXHRcdFx0U3R5bGVTaGVldDoge1xyXG5cdFx0XHRcdFN0eWxlU2hlZXREYXRhOiBlbmNvZGVTdHlsZSh7XHJcblx0XHRcdFx0XHRrZXJuaW5nOiAwLFxyXG5cdFx0XHRcdFx0YXV0b0tlcm5pbmc6IHRydWUsXHJcblx0XHRcdFx0XHRmaWxsQ29sb3I6IHsgcjogMCwgZzogMCwgYjogMCB9LFxyXG5cdFx0XHRcdFx0Li4uZGF0YS5zdHlsZSxcclxuXHRcdFx0XHRcdC4uLnJ1bi5zdHlsZSxcclxuXHRcdFx0XHR9LCBmb250cyksXHJcblx0XHRcdH0sXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIGFkZCBleHRyYSBydW4gdG8gdGhlIGVuZCBpZiBleGlzdGluZyBvbmVzIGRpZG4ndCBmaWxsIGl0IHVwXHJcblx0aWYgKGxlZnRMZW5ndGggJiYgc3R5bGVSdW5zLmxlbmd0aCkge1xyXG5cdFx0c3R5bGVSdW5MZW5ndGhBcnJheS5wdXNoKGxlZnRMZW5ndGgpO1xyXG5cdFx0c3R5bGVSdW5BcnJheS5wdXNoKHtcclxuXHRcdFx0U3R5bGVTaGVldDoge1xyXG5cdFx0XHRcdFN0eWxlU2hlZXREYXRhOiBlbmNvZGVTdHlsZSh7XHJcblx0XHRcdFx0XHRrZXJuaW5nOiAwLFxyXG5cdFx0XHRcdFx0YXV0b0tlcm5pbmc6IHRydWUsXHJcblx0XHRcdFx0XHRmaWxsQ29sb3I6IHsgcjogMCwgZzogMCwgYjogMCB9LFxyXG5cdFx0XHRcdFx0Li4uZGF0YS5zdHlsZSxcclxuXHRcdFx0XHR9LCBmb250cyksXHJcblx0XHRcdH0sXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IGdyaWRJbmZvID0geyAuLi5kZWZhdWx0R3JpZEluZm8sIC4uLmRhdGEuZ3JpZEluZm8gfTtcclxuXHRjb25zdCBXcml0aW5nRGlyZWN0aW9uID0gZGF0YS5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IDIgOiAwO1xyXG5cdGNvbnN0IFByb2Nlc3Npb24gPSBkYXRhLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gMSA6IDA7XHJcblx0Y29uc3QgU2hhcGVUeXBlID0gZGF0YS5zaGFwZVR5cGUgPT09ICdib3gnID8gMSA6IDA7XHJcblx0Y29uc3QgUGhvdG9zaG9wOiBQaG90b3Nob3BOb2RlID0ge1xyXG5cdFx0U2hhcGVUeXBlLFxyXG5cdH07XHJcblxyXG5cdGlmIChTaGFwZVR5cGUgPT09IDApIHtcclxuXHRcdFBob3Rvc2hvcC5Qb2ludEJhc2UgPSBkYXRhLnBvaW50QmFzZSB8fCBbMCwgMF07XHJcblx0fSBlbHNlIHtcclxuXHRcdFBob3Rvc2hvcC5Cb3hCb3VuZHMgPSBkYXRhLmJveEJvdW5kcyB8fCBbMCwgMCwgMCwgMF07XHJcblx0fVxyXG5cclxuXHQvLyBuZWVkZWQgZm9yIGNvcnJlY3Qgb3JkZXIgb2YgcHJvcGVydGllc1xyXG5cdFBob3Rvc2hvcC5CYXNlID0ge1xyXG5cdFx0U2hhcGVUeXBlLFxyXG5cdFx0VHJhbnNmb3JtUG9pbnQwOiBbMSwgMF0sXHJcblx0XHRUcmFuc2Zvcm1Qb2ludDE6IFswLCAxXSxcclxuXHRcdFRyYW5zZm9ybVBvaW50MjogWzAsIDBdLFxyXG5cdH07XHJcblxyXG5cdGNvbnN0IGRlZmF1bHRSZXNvdXJjZXMgPSB7XHJcblx0XHRLaW5zb2t1U2V0OiBbXHJcblx0XHRcdHtcclxuXHRcdFx0XHROYW1lOiAnUGhvdG9zaG9wS2luc29rdUhhcmQnLFxyXG5cdFx0XHRcdE5vU3RhcnQ6ICfjgIHjgILvvIzvvI7jg7vvvJrvvJvvvJ/vvIHjg7zigJXigJnigJ3vvInjgJXvvL3vvZ3jgInjgIvjgI3jgI/jgJHjg73jg77jgp3jgp7jgIXjgYHjgYPjgYXjgYfjgYnjgaPjgoPjgoXjgofjgo7jgqHjgqPjgqXjgqfjgqnjg4Pjg6Pjg6Xjg6fjg67jg7Xjg7bjgpvjgpw/ISldfSwuOjvihIPihInCou+8heKAsCcsXHJcblx0XHRcdFx0Tm9FbmQ6ICfigJjigJzvvIjjgJTvvLvvvZvjgIjjgIrjgIzjgI7jgJAoW3vvv6XvvITCo++8oMKn44CS77yDJyxcclxuXHRcdFx0XHRLZWVwOiAn4oCV4oClJyxcclxuXHRcdFx0XHRIYW5naW5nOiAn44CB44CCLiwnLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0TmFtZTogJ1Bob3Rvc2hvcEtpbnNva3VTb2Z0JyxcclxuXHRcdFx0XHROb1N0YXJ0OiAn44CB44CC77yM77yO44O777ya77yb77yf77yB4oCZ4oCd77yJ44CV77y9772d44CJ44CL44CN44CP44CR44O944O+44Kd44Ke44CFJyxcclxuXHRcdFx0XHROb0VuZDogJ+KAmOKAnO+8iOOAlO+8u++9m+OAiOOAiuOAjOOAjuOAkCcsXHJcblx0XHRcdFx0S2VlcDogJ+KAleKApScsXHJcblx0XHRcdFx0SGFuZ2luZzogJ+OAgeOAgi4sJyxcclxuXHRcdFx0fSxcclxuXHRcdF0sXHJcblx0XHRNb2ppS3VtaVNldDogW1xyXG5cdFx0XHR7IEludGVybmFsTmFtZTogJ1Bob3Rvc2hvcDZNb2ppS3VtaVNldDEnIH0sXHJcblx0XHRcdHsgSW50ZXJuYWxOYW1lOiAnUGhvdG9zaG9wNk1vamlLdW1pU2V0MicgfSxcclxuXHRcdFx0eyBJbnRlcm5hbE5hbWU6ICdQaG90b3Nob3A2TW9qaUt1bWlTZXQzJyB9LFxyXG5cdFx0XHR7IEludGVybmFsTmFtZTogJ1Bob3Rvc2hvcDZNb2ppS3VtaVNldDQnIH0sXHJcblx0XHRdLFxyXG5cdFx0VGhlTm9ybWFsU3R5bGVTaGVldDogMCxcclxuXHRcdFRoZU5vcm1hbFBhcmFncmFwaFNoZWV0OiAwLFxyXG5cdFx0UGFyYWdyYXBoU2hlZXRTZXQ6IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdE5hbWU6ICdOb3JtYWwgUkdCJyxcclxuXHRcdFx0XHREZWZhdWx0U3R5bGVTaGVldDogMCxcclxuXHRcdFx0XHRQcm9wZXJ0aWVzOiBlbmNvZGVQYXJhZ3JhcGhTdHlsZSh7IC4uLmRlZmF1bHRQYXJhZ3JhcGhTdHlsZSwgLi4uZGF0YS5wYXJhZ3JhcGhTdHlsZSB9LCBmb250cyksXHJcblx0XHRcdH0sXHJcblx0XHRdLFxyXG5cdFx0U3R5bGVTaGVldFNldDogW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0TmFtZTogJ05vcm1hbCBSR0InLFxyXG5cdFx0XHRcdFN0eWxlU2hlZXREYXRhOiBzdHlsZVNoZWV0RGF0YSxcclxuXHRcdFx0fSxcclxuXHRcdF0sXHJcblx0XHRGb250U2V0OiBmb250cy5tYXA8Rm9udFNldD4oZiA9PiAoe1xyXG5cdFx0XHROYW1lOiBmLm5hbWUsXHJcblx0XHRcdFNjcmlwdDogZi5zY3JpcHQgfHwgMCxcclxuXHRcdFx0Rm9udFR5cGU6IGYudHlwZSB8fCAwLFxyXG5cdFx0XHRTeW50aGV0aWM6IGYuc3ludGhldGljIHx8IDAsXHJcblx0XHR9KSksXHJcblx0XHRTdXBlcnNjcmlwdFNpemU6IGRhdGEuc3VwZXJzY3JpcHRTaXplID8/IDAuNTgzLFxyXG5cdFx0U3VwZXJzY3JpcHRQb3NpdGlvbjogZGF0YS5zdXBlcnNjcmlwdFBvc2l0aW9uID8/IDAuMzMzLFxyXG5cdFx0U3Vic2NyaXB0U2l6ZTogZGF0YS5zdWJzY3JpcHRTaXplID8/IDAuNTgzLFxyXG5cdFx0U3Vic2NyaXB0UG9zaXRpb246IGRhdGEuc3Vic2NyaXB0UG9zaXRpb24gPz8gMC4zMzMsXHJcblx0XHRTbWFsbENhcFNpemU6IGRhdGEuc21hbGxDYXBTaXplID8/IDAuNyxcclxuXHR9O1xyXG5cclxuXHRjb25zdCBlbmdpbmVEYXRhOiBFbmdpbmVEYXRhID0ge1xyXG5cdFx0RW5naW5lRGljdDoge1xyXG5cdFx0XHRFZGl0b3I6IHsgVGV4dDogdGV4dCB9LFxyXG5cdFx0XHRQYXJhZ3JhcGhSdW46IHtcclxuXHRcdFx0XHREZWZhdWx0UnVuRGF0YToge1xyXG5cdFx0XHRcdFx0UGFyYWdyYXBoU2hlZXQ6IHsgRGVmYXVsdFN0eWxlU2hlZXQ6IDAsIFByb3BlcnRpZXM6IHt9IH0sXHJcblx0XHRcdFx0XHRBZGp1c3RtZW50czogeyBBeGlzOiBbMSwgMCwgMV0sIFhZOiBbMCwgMF0gfSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdFJ1bkFycmF5OiBwYXJhZ3JhcGhSdW5BcnJheSxcclxuXHRcdFx0XHRSdW5MZW5ndGhBcnJheTogcGFyYWdyYXBoUnVuTGVuZ3RoQXJyYXksXHJcblx0XHRcdFx0SXNKb2luYWJsZTogMSxcclxuXHRcdFx0fSxcclxuXHRcdFx0U3R5bGVSdW46IHtcclxuXHRcdFx0XHREZWZhdWx0UnVuRGF0YTogeyBTdHlsZVNoZWV0OiB7IFN0eWxlU2hlZXREYXRhOiB7fSB9IH0sXHJcblx0XHRcdFx0UnVuQXJyYXk6IHN0eWxlUnVuQXJyYXksXHJcblx0XHRcdFx0UnVuTGVuZ3RoQXJyYXk6IHN0eWxlUnVuTGVuZ3RoQXJyYXksXHJcblx0XHRcdFx0SXNKb2luYWJsZTogMixcclxuXHRcdFx0fSxcclxuXHRcdFx0R3JpZEluZm86IHtcclxuXHRcdFx0XHRHcmlkSXNPbjogISFncmlkSW5mby5pc09uLFxyXG5cdFx0XHRcdFNob3dHcmlkOiAhIWdyaWRJbmZvLnNob3csXHJcblx0XHRcdFx0R3JpZFNpemU6IGdyaWRJbmZvLnNpemUgPz8gMTgsXHJcblx0XHRcdFx0R3JpZExlYWRpbmc6IGdyaWRJbmZvLmxlYWRpbmcgPz8gMjIsXHJcblx0XHRcdFx0R3JpZENvbG9yOiB7IFR5cGU6IDEsIFZhbHVlczogZW5jb2RlQ29sb3IoZ3JpZEluZm8uY29sb3IpIH0sXHJcblx0XHRcdFx0R3JpZExlYWRpbmdGaWxsQ29sb3I6IHsgVHlwZTogMSwgVmFsdWVzOiBlbmNvZGVDb2xvcihncmlkSW5mby5jb2xvcikgfSxcclxuXHRcdFx0XHRBbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFnczogISFncmlkSW5mby5hbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyxcclxuXHRcdFx0fSxcclxuXHRcdFx0QW50aUFsaWFzOiBhbnRpYWxpYXMuaW5kZXhPZihkYXRhLmFudGlBbGlhcyA/PyAnc2hhcnAnKSxcclxuXHRcdFx0VXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzOiBkYXRhLnVzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyA/PyB0cnVlLFxyXG5cdFx0XHRSZW5kZXJlZDoge1xyXG5cdFx0XHRcdFZlcnNpb246IDEsXHJcblx0XHRcdFx0U2hhcGVzOiB7XHJcblx0XHRcdFx0XHRXcml0aW5nRGlyZWN0aW9uLFxyXG5cdFx0XHRcdFx0Q2hpbGRyZW46IFtcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFNoYXBlVHlwZSxcclxuXHRcdFx0XHRcdFx0XHRQcm9jZXNzaW9uLFxyXG5cdFx0XHRcdFx0XHRcdExpbmVzOiB7IFdyaXRpbmdEaXJlY3Rpb24sIENoaWxkcmVuOiBbXSB9LFxyXG5cdFx0XHRcdFx0XHRcdENvb2tpZTogeyBQaG90b3Nob3AgfSxcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRSZXNvdXJjZURpY3Q6IHsgLi4uZGVmYXVsdFJlc291cmNlcyB9LFxyXG5cdFx0RG9jdW1lbnRSZXNvdXJjZXM6IHsgLi4uZGVmYXVsdFJlc291cmNlcyB9LFxyXG5cdH07XHJcblxyXG5cdC8vIGNvbnNvbGUubG9nKCdlbmNvZGVFbmdpbmVEYXRhJywgcmVxdWlyZSgndXRpbCcpLmluc3BlY3QoZW5naW5lRGF0YSwgZmFsc2UsIDk5LCB0cnVlKSk7XHJcblx0cmV0dXJuIGVuZ2luZURhdGE7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiJDOlxcUHJvamVjdHNcXGdpdGh1YlxcYWctcHNkXFxzcmMifQ==
|
|
558
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUF1S0EsSUFBTSxXQUFXLEdBQVM7SUFDekIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixNQUFNLEVBQUUsQ0FBQztJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsU0FBUyxFQUFFLENBQUM7Q0FDWixDQUFDO0FBRUYsSUFBTSxxQkFBcUIsR0FBbUI7SUFDN0MsYUFBYSxFQUFFLE1BQU07SUFDckIsZUFBZSxFQUFFLENBQUM7SUFDbEIsV0FBVyxFQUFFLENBQUM7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLFdBQVcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxFQUFFLENBQUM7SUFDYixhQUFhLEVBQUUsSUFBSTtJQUNuQixrQkFBa0IsRUFBRSxDQUFDO0lBQ3JCLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixrQkFBa0IsRUFBRSxDQUFDO0lBQ3JCLElBQUksRUFBRSxFQUFFO0lBQ1IsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM7SUFDM0IsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFlBQVksRUFBRSxDQUFDO0lBQ2YsaUJBQWlCLEVBQUUsS0FBSztDQUN4QixDQUFDO0FBRUYsSUFBTSxZQUFZLEdBQWM7SUFDL0IsSUFBSSxFQUFFLFdBQVc7SUFDakIsUUFBUSxFQUFFLEVBQUU7SUFDWixRQUFRLEVBQUUsS0FBSztJQUNmLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsZUFBZSxFQUFFLENBQUM7SUFDbEIsYUFBYSxFQUFFLENBQUM7SUFDaEIsUUFBUSxFQUFFLENBQUM7SUFDWCxXQUFXLEVBQUUsSUFBSTtJQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNWLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFFBQVEsRUFBRSxDQUFDO0lBQ1gsWUFBWSxFQUFFLENBQUM7SUFDZixTQUFTLEVBQUUsS0FBSztJQUNoQixhQUFhLEVBQUUsS0FBSztJQUNwQixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGlCQUFpQixFQUFFLENBQUM7SUFDcEIsS0FBSyxFQUFFLENBQUM7SUFDUixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLFFBQVEsRUFBRSxDQUFDO0lBQ1gsT0FBTyxFQUFFLEtBQUs7SUFDZCxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtJQUMvQixXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtJQUNqQyxRQUFRLEVBQUUsSUFBSTtJQUNkLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLENBQUM7SUFDYixZQUFZLEVBQUUsQ0FBQztJQUNmLGtCQUFrQixFQUFFLENBQUM7SUFDckIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsT0FBTyxFQUFFLENBQUM7SUFDVixZQUFZLEVBQUUsQ0FBQztDQUNmLENBQUM7QUFFRixJQUFNLGVBQWUsR0FBaUI7SUFDckMsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxFQUFFO0lBQ1IsT0FBTyxFQUFFLEVBQUU7SUFDWCxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRTtJQUM3QixnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLDBCQUEwQixFQUFFLEtBQUs7Q0FDakMsQ0FBQztBQUVGLElBQU0sa0JBQWtCLEdBQTZCO0lBQ3BELGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZO0lBQzNGLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG9CQUFvQjtJQUN0RixNQUFNLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWE7SUFDcEYsU0FBUyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsbUJBQW1CO0NBQzVELENBQUM7QUFFRixJQUFNLFNBQVMsR0FBd0I7SUFDdEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCO0lBQ3pGLGVBQWUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGNBQWM7SUFDbEcsV0FBVyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE9BQU87SUFDckYsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVU7SUFDbEYsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLGNBQWM7SUFDN0YsU0FBUyxFQUFFLGNBQWM7Q0FDekIsQ0FBQztBQUVGLElBQU0sU0FBUyxHQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5RSxJQUFNLGFBQWEsR0FBb0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRW5FLFNBQVMsVUFBVSxDQUFDLEtBQWE7SUFDaEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUEwQztJQUM5RCxJQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBRXZCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxZQUFZO1FBQ25DLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsaUJBQWlCO0tBQ3pFO1NBQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtLQUNsRjtBQUNGLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUF3QjtJQUM1QyxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztLQUNqRjtTQUFNO1FBQ04sT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3BCO0FBQ0YsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLENBQVEsRUFBRSxDQUFRO0lBQ3RDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDM0IsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1FBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ25FLE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLENBQU0sRUFBRSxDQUFNO0lBQ25DLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDM0IsS0FBa0IsVUFBYyxFQUFkLEtBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBZCxjQUFjLEVBQWQsSUFBYztRQUEzQixJQUFNLEdBQUcsU0FBQTtRQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7S0FBQTtJQUN0RSxLQUFrQixVQUFjLEVBQWQsS0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFkLGNBQWMsRUFBZCxJQUFjO1FBQTNCLElBQU0sR0FBRyxTQUFBO1FBQW9CLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztLQUFBO0lBQ3RFLE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEtBQWEsRUFBRSxJQUFVO0lBQy9DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxHQUFRLEVBQUUsSUFBYyxFQUFFLEtBQWE7SUFDNUQsSUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO0lBRXZCLEtBQWtCLFVBQUksRUFBSixhQUFJLEVBQUosa0JBQUksRUFBSixJQUFJLEVBQUU7UUFBbkIsSUFBTSxHQUFHLGFBQUE7UUFDYixJQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUIsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLFNBQVM7UUFFckMsSUFBSSxHQUFHLEtBQUssZUFBZSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7WUFDMUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM5QjthQUFNLElBQUksR0FBRyxLQUFLLFdBQVcsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDcEM7YUFBTTtZQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7S0FDRDtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEdBQVEsRUFBRSxJQUFjLEVBQUUsS0FBYTs7SUFDNUQsSUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO0lBRXZCLEtBQWtCLFVBQUksRUFBSixhQUFJLEVBQUosa0JBQUksRUFBSixJQUFJLEVBQUU7UUFBbkIsSUFBTSxHQUFHLGFBQUE7UUFDYixJQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUIsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLFNBQVM7UUFFckMsSUFBSSxHQUFHLEtBQUssZUFBZSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQUEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxtQ0FBSSxNQUFNLENBQUMsQ0FBQztTQUN4RDthQUFNLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtZQUMxQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3QzthQUFNLElBQUksR0FBRyxLQUFLLFdBQVcsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBZ0IsQ0FBQztTQUN2RTthQUFNO1lBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QjtLQUNEO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxHQUF3QixFQUFFLEtBQWE7SUFDcEUsT0FBTyxZQUFZLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFtQixFQUFFLEtBQWE7SUFDdEQsT0FBTyxZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxHQUFtQixFQUFFLEtBQWE7SUFDL0QsT0FBTyxZQUFZLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFjLEVBQUUsS0FBYTtJQUNqRCxPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFJLElBQU8sRUFBRSxJQUFxQixFQUFFLElBQWlCO0lBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU87NEJBRWQsR0FBRztRQUNiLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3hCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztZQUV0QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFRLEVBQUUsS0FBSyxDQUFDLEVBQXZDLENBQXVDLENBQUMsQ0FBQzthQUNyRTtpQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDckMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQVEsRUFBRSxLQUFLLENBQUMsRUFBeEMsQ0FBd0MsQ0FBQyxDQUFDO2FBQ3RFO2lCQUFNO2dCQUNOLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLEVBQXRCLENBQXNCLENBQUMsQ0FBQzthQUNwRDtZQUVELElBQUksU0FBUyxFQUFFO2dCQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFZLENBQUM7YUFDekI7U0FDRDtRQUVELElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDN0IsS0FBZ0IsVUFBSSxFQUFKLGFBQUksRUFBSixrQkFBSSxFQUFKLElBQUksRUFBRTtnQkFBakIsSUFBTSxDQUFDLGFBQUE7Z0JBQ1gsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUVqQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3pCLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDL0M7cUJBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7b0JBQ3JDLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDaEQ7cUJBQU07b0JBQ04sSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDO2lCQUM5QjtnQkFFRCxJQUFJLElBQUk7b0JBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzlCO1NBQ0Q7O0lBbkNGLEtBQWtCLFVBQUksRUFBSixhQUFJLEVBQUosa0JBQUksRUFBSixJQUFJO1FBQWpCLElBQU0sR0FBRyxhQUFBO2dCQUFILEdBQUc7S0FvQ2I7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFqQyxDQUFpQyxDQUFDLEVBQUU7UUFDdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDaEI7QUFDRixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBc0I7O0lBQ3RELG1GQUFtRjtJQUNuRixJQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQ3pDLElBQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFFN0MsSUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQU8sVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDO1FBQ2xELElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtRQUNaLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNoQixJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDaEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO0tBQ3RCLENBQUMsRUFMZ0QsQ0FLaEQsQ0FBQyxDQUFDO0lBRUosSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUUxQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsaUJBQWlCLEVBQUUsQ0FBQztLQUNwQjtJQUVELElBQU0sTUFBTSxHQUFrQjtRQUM3QixJQUFJLE1BQUE7UUFDSixTQUFTLEVBQUUsTUFBQSxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxtQ0FBSSxRQUFRO1FBQ3RELHdCQUF3QixFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsd0JBQXdCO1FBQy9ELGVBQWUsRUFBRSxZQUFZLENBQUMsZUFBZTtRQUM3QyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsbUJBQW1CO1FBQ3JELGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTtRQUN6QyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsaUJBQWlCO1FBQ2pELFlBQVksRUFBRSxZQUFZLENBQUMsWUFBWTtLQUN2QyxDQUFDO0lBRUYsUUFBUTtJQUVSLElBQU0sU0FBUyxHQUFHLE1BQUEsTUFBQSxNQUFBLE1BQUEsTUFBQSxVQUFVLENBQUMsUUFBUSwwQ0FBRSxNQUFNLDBDQUFFLFFBQVEsMENBQUcsQ0FBQyxDQUFDLDBDQUFFLE1BQU0sMENBQUUsU0FBUyxDQUFDO0lBRWhGLElBQUksU0FBUyxFQUFFO1FBQ2QsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDL0QsSUFBSSxTQUFTLENBQUMsU0FBUztZQUFFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUNoRSxJQUFJLFNBQVMsQ0FBQyxTQUFTO1lBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO0tBQ2hFO0lBRUQsa0JBQWtCO0lBRWxCLHdFQUF3RTtJQUN4RSw0REFBNEQ7SUFDNUQscUZBQXFGO0lBQ3JGLElBQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBRXhELE1BQU0sQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLENBQUMsb0RBQW9EO0lBQ2hGLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFFL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RELElBQU0sS0FBRyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBTSxRQUFNLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxLQUFHLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSx3QkFBd0I7UUFDeEIsZ0NBQWdDO1FBQ2hDLDRCQUE0QjtRQUM1QixLQUFLO1FBQ0wsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sVUFBQSxFQUFFLEtBQUssT0FBQSxDQUFBLGlCQUFpQixFQUFFLENBQUMsQ0FBQztLQUNuRTtJQUVELEtBQUssSUFBSSxPQUFPLEdBQUcsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ2pHLElBQUksRUFBRSxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25GLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUNoQztLQUNEO0lBRUQsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUV4RixJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUV4RSxRQUFRO0lBRVIsZ0VBQWdFO0lBQ2hFLG9EQUFvRDtJQUNwRCw0RUFBNEU7SUFDNUUsSUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFFaEQsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxzQ0FBc0M7SUFDekQsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2xELElBQU0sUUFBTSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRixNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sVUFBQSxFQUFFLEtBQUssT0FBQSxFQUFFLENBQUMsQ0FBQztLQUN6QztJQUVELEtBQUssSUFBSSxPQUFPLEdBQUcsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4RixJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdkI7S0FDRDtJQUVELGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBRXRELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQW5HRCw0Q0FtR0M7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFtQjs7SUFDbkQsSUFBTSxJQUFJLEdBQUcsVUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBSSxDQUFDO0lBRTlELElBQU0sS0FBSyxHQUFXO1FBQ3JCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO0tBQzVELENBQUM7SUFFRixJQUFNLE9BQU8sR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsSUFBSSxNQUFJLE1BQUEsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBWixDQUFZLENBQUMsMENBQUUsS0FBSyxDQUFDLElBQUksQ0FBQSxJQUFJLFdBQVcsQ0FBQztJQUN2RyxJQUFNLGlCQUFpQixHQUFtQixFQUFFLENBQUM7SUFDN0MsSUFBTSx1QkFBdUIsR0FBYSxFQUFFLENBQUM7SUFDN0MsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBRTlDLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7UUFDMUMsSUFBSSxZQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUU3QixLQUFrQixVQUFhLEVBQWIsK0JBQWEsRUFBYiwyQkFBYSxFQUFiLElBQWEsRUFBRTtZQUE1QixJQUFNLEtBQUcsc0JBQUE7WUFDYixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBVSxDQUFDLENBQUM7WUFDakQsWUFBVSxJQUFJLFNBQVMsQ0FBQztZQUV4QixJQUFJLENBQUMsU0FBUztnQkFBRSxTQUFTLENBQUMscUJBQXFCO1lBRS9DLCtDQUErQztZQUMvQyxJQUFJLFlBQVUsS0FBSyxDQUFDLElBQUksS0FBRyxLQUFLLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN4RSxTQUFTLEVBQUUsQ0FBQztnQkFDWixZQUFVLEVBQUUsQ0FBQzthQUNiO1lBRUQsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDdEIsY0FBYyxFQUFFO29CQUNmLGlCQUFpQixFQUFFLENBQUM7b0JBQ3BCLFVBQVUsRUFBRSxvQkFBb0IsZ0NBQU0scUJBQXFCLEdBQUssSUFBSSxDQUFDLGNBQWMsR0FBSyxLQUFHLENBQUMsS0FBSyxHQUFJLEtBQUssQ0FBQztpQkFDM0c7Z0JBQ0QsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7YUFDNUMsQ0FBQyxDQUFDO1NBQ0g7UUFFRCxJQUFJLFlBQVUsRUFBRTtZQUNmLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFVLENBQUMsQ0FBQztZQUN6QyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLGNBQWMsRUFBRTtvQkFDZixpQkFBaUIsRUFBRSxDQUFDO29CQUNwQixVQUFVLEVBQUUsb0JBQW9CLHVCQUFNLHFCQUFxQixHQUFLLElBQUksQ0FBQyxjQUFjLEdBQUksS0FBSyxDQUFDO2lCQUM3RjtnQkFDRCxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTthQUM1QyxDQUFDLENBQUM7U0FDSDtLQUNEO1NBQU07UUFDTixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9DLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLO2dCQUNyQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsaUJBQWlCLENBQUMsSUFBSSxDQUFDO29CQUN0QixjQUFjLEVBQUU7d0JBQ2YsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDcEIsVUFBVSxFQUFFLG9CQUFvQix1QkFBTSxxQkFBcUIsR0FBSyxJQUFJLENBQUMsY0FBYyxHQUFJLEtBQUssQ0FBQztxQkFDN0Y7b0JBQ0QsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7aUJBQzVDLENBQUMsQ0FBQztnQkFDSCxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNiO1NBQ0Q7S0FDRDtJQUVELElBQU0sY0FBYyxHQUFHLFdBQVcsdUJBQU0sWUFBWSxLQUFFLElBQUksRUFBRSxPQUFPLEtBQUksS0FBSyxDQUFDLENBQUM7SUFDOUUsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RixJQUFNLGFBQWEsR0FBZSxFQUFFLENBQUM7SUFDckMsSUFBTSxtQkFBbUIsR0FBYSxFQUFFLENBQUM7SUFFekMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUU3QixLQUFrQixVQUFTLEVBQVQsdUJBQVMsRUFBVCx1QkFBUyxFQUFULElBQVMsRUFBRTtRQUF4QixJQUFNLEtBQUcsa0JBQUE7UUFDYixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakQsVUFBVSxJQUFJLFNBQVMsQ0FBQztRQUV4QixJQUFJLENBQUMsU0FBUztZQUFFLFNBQVMsQ0FBQyxxQkFBcUI7UUFFL0MsK0NBQStDO1FBQy9DLElBQUksVUFBVSxLQUFLLENBQUMsSUFBSSxLQUFHLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDaEUsU0FBUyxFQUFFLENBQUM7WUFDWixVQUFVLEVBQUUsQ0FBQztTQUNiO1FBRUQsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDbEIsVUFBVSxFQUFFO2dCQUNYLGNBQWMsRUFBRSxXQUFXLHFCQUMxQixPQUFPLEVBQUUsQ0FBQyxFQUNWLFdBQVcsRUFBRSxJQUFJLEVBQ2pCLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQzVCLElBQUksQ0FBQyxLQUFLLEdBQ1YsS0FBRyxDQUFDLEtBQUssR0FDVixLQUFLLENBQUM7YUFDVDtTQUNELENBQUMsQ0FBQztLQUNIO0lBRUQsOERBQThEO0lBQzlELElBQUksVUFBVSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDbkMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDbEIsVUFBVSxFQUFFO2dCQUNYLGNBQWMsRUFBRSxXQUFXLFlBQzFCLE9BQU8sRUFBRSxDQUFDLEVBQ1YsV0FBVyxFQUFFLElBQUksRUFDakIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFDNUIsSUFBSSxDQUFDLEtBQUssR0FDWCxLQUFLLENBQUM7YUFDVDtTQUNELENBQUMsQ0FBQztLQUNIO0lBRUQsSUFBTSxRQUFRLHlCQUFRLGVBQWUsR0FBSyxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUM7SUFDMUQsSUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxJQUFNLFNBQVMsR0FBa0I7UUFDaEMsU0FBUyxXQUFBO0tBQ1QsQ0FBQztJQUVGLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtRQUNwQixTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDL0M7U0FBTTtRQUNOLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3JEO0lBRUQseUNBQXlDO0lBQ3pDLFNBQVMsQ0FBQyxJQUFJLEdBQUc7UUFDaEIsU0FBUyxXQUFBO1FBQ1QsZUFBZSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixlQUFlLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDdkIsQ0FBQztJQUVGLElBQU0sZ0JBQWdCLEdBQUc7UUFDeEIsVUFBVSxFQUFFO1lBQ1g7Z0JBQ0MsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsT0FBTyxFQUFFLG1FQUFtRTtnQkFDNUUsS0FBSyxFQUFFLHVCQUF1QjtnQkFDOUIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLE1BQU07YUFDZjtZQUNEO2dCQUNDLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsTUFBTTthQUNmO1NBQ0Q7UUFDRCxXQUFXLEVBQUU7WUFDWixFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRTtZQUMxQyxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRTtZQUMxQyxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRTtZQUMxQyxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRTtTQUMxQztRQUNELG1CQUFtQixFQUFFLENBQUM7UUFDdEIsdUJBQXVCLEVBQUUsQ0FBQztRQUMxQixpQkFBaUIsRUFBRTtZQUNsQjtnQkFDQyxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEIsVUFBVSxFQUFFLG9CQUFvQix1QkFBTSxxQkFBcUIsR0FBSyxJQUFJLENBQUMsY0FBYyxHQUFJLEtBQUssQ0FBQzthQUM3RjtTQUNEO1FBQ0QsYUFBYSxFQUFFO1lBQ2Q7Z0JBQ0MsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLGNBQWMsRUFBRSxjQUFjO2FBQzlCO1NBQ0Q7UUFDRCxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBVSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUM7WUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUNyQixRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ3JCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUM7U0FDM0IsQ0FBQyxFQUwrQixDQUsvQixDQUFDO1FBQ0gsZUFBZSxFQUFFLE1BQUEsSUFBSSxDQUFDLGVBQWUsbUNBQUksS0FBSztRQUM5QyxtQkFBbUIsRUFBRSxNQUFBLElBQUksQ0FBQyxtQkFBbUIsbUNBQUksS0FBSztRQUN0RCxhQUFhLEVBQUUsTUFBQSxJQUFJLENBQUMsYUFBYSxtQ0FBSSxLQUFLO1FBQzFDLGlCQUFpQixFQUFFLE1BQUEsSUFBSSxDQUFDLGlCQUFpQixtQ0FBSSxLQUFLO1FBQ2xELFlBQVksRUFBRSxNQUFBLElBQUksQ0FBQyxZQUFZLG1DQUFJLEdBQUc7S0FDdEMsQ0FBQztJQUVGLElBQU0sVUFBVSxHQUFlO1FBQzlCLFVBQVUsRUFBRTtZQUNYLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDdEIsWUFBWSxFQUFFO2dCQUNiLGNBQWMsRUFBRTtvQkFDZixjQUFjLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtvQkFDeEQsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7aUJBQzVDO2dCQUNELFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGNBQWMsRUFBRSx1QkFBdUI7Z0JBQ3ZDLFVBQVUsRUFBRSxDQUFDO2FBQ2I7WUFDRCxRQUFRLEVBQUU7Z0JBQ1QsY0FBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUN0RCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsY0FBYyxFQUFFLG1CQUFtQjtnQkFDbkMsVUFBVSxFQUFFLENBQUM7YUFDYjtZQUNELFFBQVEsRUFBRTtnQkFDVCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dCQUN6QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dCQUN6QixRQUFRLEVBQUUsTUFBQSxRQUFRLENBQUMsSUFBSSxtQ0FBSSxFQUFFO2dCQUM3QixXQUFXLEVBQUUsTUFBQSxRQUFRLENBQUMsT0FBTyxtQ0FBSSxFQUFFO2dCQUNuQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMzRCxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3RFLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCO2FBQ2pFO1lBQ0QsU0FBUyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBQSxJQUFJLENBQUMsU0FBUyxtQ0FBSSxPQUFPLENBQUM7WUFDdkQsd0JBQXdCLEVBQUUsTUFBQSxJQUFJLENBQUMsd0JBQXdCLG1DQUFJLElBQUk7WUFDL0QsUUFBUSxFQUFFO2dCQUNULE9BQU8sRUFBRSxDQUFDO2dCQUNWLE1BQU0sRUFBRTtvQkFDUCxnQkFBZ0Isa0JBQUE7b0JBQ2hCLFFBQVEsRUFBRTt3QkFDVDs0QkFDQyxTQUFTLFdBQUE7NEJBQ1QsVUFBVSxZQUFBOzRCQUNWLEtBQUssRUFBRSxFQUFFLGdCQUFnQixrQkFBQSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7NEJBQ3pDLE1BQU0sRUFBRSxFQUFFLFNBQVMsV0FBQSxFQUFFO3lCQUNyQjtxQkFDRDtpQkFDRDthQUNEO1NBQ0Q7UUFDRCxZQUFZLGVBQU8sZ0JBQWdCLENBQUU7UUFDckMsaUJBQWlCLGVBQU8sZ0JBQWdCLENBQUU7S0FDMUMsQ0FBQztJQUVGLHlGQUF5RjtJQUN6RixPQUFPLFVBQVUsQ0FBQztBQUNuQixDQUFDO0FBMU9ELDRDQTBPQyIsImZpbGUiOiJ0ZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dFN0eWxlLCBMYXllclRleHREYXRhLCBQYXJhZ3JhcGhTdHlsZSwgRm9udCwgQW50aUFsaWFzLCBUZXh0R3JpZEluZm8sIEp1c3RpZmljYXRpb24sIENvbG9yIH0gZnJvbSAnLi9wc2QnO1xyXG5cclxuaW50ZXJmYWNlIEFkanVzdG1lbnRzIHtcclxuXHRBeGlzOiBudW1iZXJbXTtcclxuXHRYWTogbnVtYmVyW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBUeXBlVmFsdWVzIHtcclxuXHRUeXBlOiBudW1iZXI7XHJcblx0VmFsdWVzOiBudW1iZXJbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFBhcmFncmFwaFByb3BlcnRpZXMge1xyXG5cdEp1c3RpZmljYXRpb24/OiBudW1iZXI7XHJcblx0Rmlyc3RMaW5lSW5kZW50PzogbnVtYmVyO1xyXG5cdFN0YXJ0SW5kZW50PzogbnVtYmVyO1xyXG5cdEVuZEluZGVudD86IG51bWJlcjtcclxuXHRTcGFjZUJlZm9yZT86IG51bWJlcjtcclxuXHRTcGFjZUFmdGVyPzogbnVtYmVyO1xyXG5cdEF1dG9IeXBoZW5hdGU/OiBib29sZWFuO1xyXG5cdEh5cGhlbmF0ZWRXb3JkU2l6ZT86IG51bWJlcjtcclxuXHRQcmVIeXBoZW4/OiBudW1iZXI7XHJcblx0UG9zdEh5cGhlbj86IG51bWJlcjtcclxuXHRDb25zZWN1dGl2ZUh5cGhlbnM/OiBudW1iZXI7XHJcblx0Wm9uZT86IG51bWJlcjtcclxuXHRXb3JkU3BhY2luZz86IG51bWJlcltdO1xyXG5cdExldHRlclNwYWNpbmc/OiBudW1iZXJbXTtcclxuXHRHbHlwaFNwYWNpbmc/OiBudW1iZXJbXTtcclxuXHRBdXRvTGVhZGluZz86IG51bWJlcjtcclxuXHRMZWFkaW5nVHlwZT86IG51bWJlcjtcclxuXHRIYW5naW5nPzogYm9vbGVhbjtcclxuXHRCdXJhc2FnYXJpPzogYm9vbGVhbjtcclxuXHRLaW5zb2t1T3JkZXI/OiBudW1iZXI7XHJcblx0RXZlcnlMaW5lQ29tcG9zZXI/OiBib29sZWFuO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGFyYWdyYXBoU2hlZXQge1xyXG5cdE5hbWU/OiBzdHJpbmc7XHJcblx0RGVmYXVsdFN0eWxlU2hlZXQ6IG51bWJlcjtcclxuXHRQcm9wZXJ0aWVzOiBQYXJhZ3JhcGhQcm9wZXJ0aWVzO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgU3R5bGVTaGVldERhdGEge1xyXG5cdEZvbnQ/OiBudW1iZXI7XHJcblx0Rm9udFNpemU/OiBudW1iZXI7XHJcblx0RmF1eEJvbGQ/OiBib29sZWFuO1xyXG5cdEZhdXhJdGFsaWM/OiBib29sZWFuO1xyXG5cdEF1dG9MZWFkaW5nPzogYm9vbGVhbjtcclxuXHRMZWFkaW5nPzogbnVtYmVyO1xyXG5cdEhvcml6b250YWxTY2FsZT86IG51bWJlcjtcclxuXHRWZXJ0aWNhbFNjYWxlPzogbnVtYmVyO1xyXG5cdFRyYWNraW5nPzogbnVtYmVyO1xyXG5cdEF1dG9LZXJuaW5nPzogYm9vbGVhbjtcclxuXHRLZXJuaW5nPzogbnVtYmVyO1xyXG5cdEJhc2VsaW5lU2hpZnQ/OiBudW1iZXI7XHJcblx0Rm9udENhcHM/OiBudW1iZXI7XHJcblx0Rm9udEJhc2VsaW5lPzogbnVtYmVyO1xyXG5cdFVuZGVybGluZT86IGJvb2xlYW47XHJcblx0U3RyaWtldGhyb3VnaD86IGJvb2xlYW47XHJcblx0TGlnYXR1cmVzPzogYm9vbGVhbjtcclxuXHRETGlnYXR1cmVzPzogYm9vbGVhbjtcclxuXHRCYXNlbGluZURpcmVjdGlvbj86IG51bWJlcjtcclxuXHRUc3VtZT86IG51bWJlcjtcclxuXHRTdHlsZVJ1bkFsaWdubWVudD86IG51bWJlcjtcclxuXHRMYW5ndWFnZT86IG51bWJlcjtcclxuXHROb0JyZWFrPzogYm9vbGVhbjtcclxuXHRGaWxsQ29sb3I/OiBUeXBlVmFsdWVzO1xyXG5cdFN0cm9rZUNvbG9yPzogVHlwZVZhbHVlcztcclxuXHRGaWxsRmxhZz86IGJvb2xlYW47XHJcblx0U3Ryb2tlRmxhZz86IGJvb2xlYW47XHJcblx0RmlsbEZpcnN0PzogYm9vbGVhbjtcclxuXHRZVW5kZXJsaW5lPzogbnVtYmVyO1xyXG5cdE91dGxpbmVXaWR0aD86IG51bWJlcjtcclxuXHRDaGFyYWN0ZXJEaXJlY3Rpb24/OiBudW1iZXI7XHJcblx0SGluZGlOdW1iZXJzPzogYm9vbGVhbjtcclxuXHRLYXNoaWRhPzogbnVtYmVyO1xyXG5cdERpYWNyaXRpY1Bvcz86IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEZvbnRTZXQge1xyXG5cdE5hbWU6IHN0cmluZztcclxuXHRTY3JpcHQ6IG51bWJlcjtcclxuXHRGb250VHlwZTogbnVtYmVyO1xyXG5cdFN5bnRoZXRpYzogbnVtYmVyO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUmVzb3VyY2VEaWN0IHtcclxuXHRLaW5zb2t1U2V0OiBhbnlbXTtcclxuXHRNb2ppS3VtaVNldDogYW55W107XHJcblx0VGhlTm9ybWFsU3R5bGVTaGVldDogbnVtYmVyO1xyXG5cdFRoZU5vcm1hbFBhcmFncmFwaFNoZWV0OiBudW1iZXI7XHJcblx0UGFyYWdyYXBoU2hlZXRTZXQ6IFBhcmFncmFwaFNoZWV0W107XHJcblx0U3R5bGVTaGVldFNldDogeyBOYW1lOiBzdHJpbmc7IFN0eWxlU2hlZXREYXRhOiBTdHlsZVNoZWV0RGF0YTsgfVtdO1xyXG5cdEZvbnRTZXQ6IEZvbnRTZXRbXTtcclxuXHRTdXBlcnNjcmlwdFNpemU6IG51bWJlcjtcclxuXHRTdXBlcnNjcmlwdFBvc2l0aW9uOiBudW1iZXI7XHJcblx0U3Vic2NyaXB0U2l6ZTogbnVtYmVyO1xyXG5cdFN1YnNjcmlwdFBvc2l0aW9uOiBudW1iZXI7XHJcblx0U21hbGxDYXBTaXplOiBudW1iZXI7XHJcbn1cclxuXHJcbmludGVyZmFjZSBQYXJhZ3JhcGhSdW4ge1xyXG5cdFBhcmFncmFwaFNoZWV0OiBQYXJhZ3JhcGhTaGVldDtcclxuXHRBZGp1c3RtZW50czogQWRqdXN0bWVudHM7XHJcbn1cclxuXHJcbmludGVyZmFjZSBTdHlsZVJ1biB7XHJcblx0U3R5bGVTaGVldDogeyBTdHlsZVNoZWV0RGF0YTogU3R5bGVTaGVldERhdGE7IH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBQaG90b3Nob3BOb2RlIHtcclxuXHRTaGFwZVR5cGU/OiBudW1iZXI7XHJcblx0UG9pbnRCYXNlPzogbnVtYmVyW107XHJcblx0Qm94Qm91bmRzPzogbnVtYmVyW107XHJcblx0QmFzZT86IHtcclxuXHRcdFNoYXBlVHlwZTogbnVtYmVyO1xyXG5cdFx0VHJhbnNmb3JtUG9pbnQwOiBudW1iZXJbXTtcclxuXHRcdFRyYW5zZm9ybVBvaW50MTogbnVtYmVyW107XHJcblx0XHRUcmFuc2Zvcm1Qb2ludDI6IG51bWJlcltdO1xyXG5cdH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBFbmdpbmVEYXRhIHtcclxuXHRFbmdpbmVEaWN0OiB7XHJcblx0XHRFZGl0b3I6IHsgVGV4dDogc3RyaW5nOyB9O1xyXG5cdFx0UGFyYWdyYXBoUnVuOiB7XHJcblx0XHRcdERlZmF1bHRSdW5EYXRhOiBQYXJhZ3JhcGhSdW47XHJcblx0XHRcdFJ1bkFycmF5OiBQYXJhZ3JhcGhSdW5bXTtcclxuXHRcdFx0UnVuTGVuZ3RoQXJyYXk6IG51bWJlcltdO1xyXG5cdFx0XHRJc0pvaW5hYmxlOiBudW1iZXI7XHJcblx0XHR9O1xyXG5cdFx0U3R5bGVSdW46IHtcclxuXHRcdFx0RGVmYXVsdFJ1bkRhdGE6IFN0eWxlUnVuO1xyXG5cdFx0XHRSdW5BcnJheTogU3R5bGVSdW5bXTtcclxuXHRcdFx0UnVuTGVuZ3RoQXJyYXk6IG51bWJlcltdO1xyXG5cdFx0XHRJc0pvaW5hYmxlOiBudW1iZXI7XHJcblx0XHR9O1xyXG5cdFx0R3JpZEluZm86IHtcclxuXHRcdFx0R3JpZElzT246IGJvb2xlYW47XHJcblx0XHRcdFNob3dHcmlkOiBib29sZWFuO1xyXG5cdFx0XHRHcmlkU2l6ZTogbnVtYmVyO1xyXG5cdFx0XHRHcmlkTGVhZGluZzogbnVtYmVyO1xyXG5cdFx0XHRHcmlkQ29sb3I6IFR5cGVWYWx1ZXM7XHJcblx0XHRcdEdyaWRMZWFkaW5nRmlsbENvbG9yOiBUeXBlVmFsdWVzO1xyXG5cdFx0XHRBbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFnczogYm9vbGVhbjtcclxuXHRcdH07XHJcblx0XHRBbnRpQWxpYXM6IG51bWJlcjtcclxuXHRcdFVzZUZyYWN0aW9uYWxHbHlwaFdpZHRoczogYm9vbGVhbjtcclxuXHRcdFJlbmRlcmVkPzoge1xyXG5cdFx0XHRWZXJzaW9uOiBudW1iZXI7XHJcblx0XHRcdFNoYXBlcz86IHtcclxuXHRcdFx0XHRXcml0aW5nRGlyZWN0aW9uOiBudW1iZXI7XHJcblx0XHRcdFx0Q2hpbGRyZW4/OiB7XHJcblx0XHRcdFx0XHRTaGFwZVR5cGU/OiBudW1iZXI7XHJcblx0XHRcdFx0XHRQcm9jZXNzaW9uOiBudW1iZXI7XHJcblx0XHRcdFx0XHRMaW5lczogeyBXcml0aW5nRGlyZWN0aW9uOiBudW1iZXI7IENoaWxkcmVuOiBhbnlbXTsgfTtcclxuXHRcdFx0XHRcdENvb2tpZT86IHtcclxuXHRcdFx0XHRcdFx0UGhvdG9zaG9wPzogUGhvdG9zaG9wTm9kZTtcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVtdO1xyXG5cdFx0XHR9O1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cdFJlc291cmNlRGljdDogUmVzb3VyY2VEaWN0O1xyXG5cdERvY3VtZW50UmVzb3VyY2VzOiBSZXNvdXJjZURpY3Q7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRGb250OiBGb250ID0ge1xyXG5cdG5hbWU6ICdNeXJpYWRQcm8tUmVndWxhcicsXHJcblx0c2NyaXB0OiAwLFxyXG5cdHR5cGU6IDAsXHJcblx0c3ludGhldGljOiAwLFxyXG59O1xyXG5cclxuY29uc3QgZGVmYXVsdFBhcmFncmFwaFN0eWxlOiBQYXJhZ3JhcGhTdHlsZSA9IHtcclxuXHRqdXN0aWZpY2F0aW9uOiAnbGVmdCcsXHJcblx0Zmlyc3RMaW5lSW5kZW50OiAwLFxyXG5cdHN0YXJ0SW5kZW50OiAwLFxyXG5cdGVuZEluZGVudDogMCxcclxuXHRzcGFjZUJlZm9yZTogMCxcclxuXHRzcGFjZUFmdGVyOiAwLFxyXG5cdGF1dG9IeXBoZW5hdGU6IHRydWUsXHJcblx0aHlwaGVuYXRlZFdvcmRTaXplOiA2LFxyXG5cdHByZUh5cGhlbjogMixcclxuXHRwb3N0SHlwaGVuOiAyLFxyXG5cdGNvbnNlY3V0aXZlSHlwaGVuczogOCxcclxuXHR6b25lOiAzNixcclxuXHR3b3JkU3BhY2luZzogWzAuOCwgMSwgMS4zM10sXHJcblx0bGV0dGVyU3BhY2luZzogWzAsIDAsIDBdLFxyXG5cdGdseXBoU3BhY2luZzogWzEsIDEsIDFdLFxyXG5cdGF1dG9MZWFkaW5nOiAxLjIsXHJcblx0bGVhZGluZ1R5cGU6IDAsXHJcblx0aGFuZ2luZzogZmFsc2UsXHJcblx0YnVyYXNhZ2FyaTogZmFsc2UsXHJcblx0a2luc29rdU9yZGVyOiAwLFxyXG5cdGV2ZXJ5TGluZUNvbXBvc2VyOiBmYWxzZSxcclxufTtcclxuXHJcbmNvbnN0IGRlZmF1bHRTdHlsZTogVGV4dFN0eWxlID0ge1xyXG5cdGZvbnQ6IGRlZmF1bHRGb250LFxyXG5cdGZvbnRTaXplOiAxMixcclxuXHRmYXV4Qm9sZDogZmFsc2UsXHJcblx0ZmF1eEl0YWxpYzogZmFsc2UsXHJcblx0YXV0b0xlYWRpbmc6IHRydWUsXHJcblx0bGVhZGluZzogMCxcclxuXHRob3Jpem9udGFsU2NhbGU6IDEsXHJcblx0dmVydGljYWxTY2FsZTogMSxcclxuXHR0cmFja2luZzogMCxcclxuXHRhdXRvS2VybmluZzogdHJ1ZSxcclxuXHRrZXJuaW5nOiAwLFxyXG5cdGJhc2VsaW5lU2hpZnQ6IDAsXHJcblx0Zm9udENhcHM6IDAsXHJcblx0Zm9udEJhc2VsaW5lOiAwLFxyXG5cdHVuZGVybGluZTogZmFsc2UsXHJcblx0c3RyaWtldGhyb3VnaDogZmFsc2UsXHJcblx0bGlnYXR1cmVzOiB0cnVlLFxyXG5cdGRMaWdhdHVyZXM6IGZhbHNlLFxyXG5cdGJhc2VsaW5lRGlyZWN0aW9uOiAyLFxyXG5cdHRzdW1lOiAwLFxyXG5cdHN0eWxlUnVuQWxpZ25tZW50OiAyLFxyXG5cdGxhbmd1YWdlOiAwLFxyXG5cdG5vQnJlYWs6IGZhbHNlLFxyXG5cdGZpbGxDb2xvcjogeyByOiAwLCBnOiAwLCBiOiAwIH0sXHJcblx0c3Ryb2tlQ29sb3I6IHsgcjogMCwgZzogMCwgYjogMCB9LFxyXG5cdGZpbGxGbGFnOiB0cnVlLFxyXG5cdHN0cm9rZUZsYWc6IGZhbHNlLFxyXG5cdGZpbGxGaXJzdDogdHJ1ZSxcclxuXHR5VW5kZXJsaW5lOiAxLFxyXG5cdG91dGxpbmVXaWR0aDogMSxcclxuXHRjaGFyYWN0ZXJEaXJlY3Rpb246IDAsXHJcblx0aGluZGlOdW1iZXJzOiBmYWxzZSxcclxuXHRrYXNoaWRhOiAxLFxyXG5cdGRpYWNyaXRpY1BvczogMixcclxufTtcclxuXHJcbmNvbnN0IGRlZmF1bHRHcmlkSW5mbzogVGV4dEdyaWRJbmZvID0ge1xyXG5cdGlzT246IGZhbHNlLFxyXG5cdHNob3c6IGZhbHNlLFxyXG5cdHNpemU6IDE4LFxyXG5cdGxlYWRpbmc6IDIyLFxyXG5cdGNvbG9yOiB7IHI6IDAsIGc6IDAsIGI6IDI1NSB9LFxyXG5cdGxlYWRpbmdGaWxsQ29sb3I6IHsgcjogMCwgZzogMCwgYjogMjU1IH0sXHJcblx0YWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3M6IGZhbHNlLFxyXG59O1xyXG5cclxuY29uc3QgcGFyYWdyYXBoU3R5bGVLZXlzOiAoa2V5b2YgUGFyYWdyYXBoU3R5bGUpW10gPSBbXHJcblx0J2p1c3RpZmljYXRpb24nLCAnZmlyc3RMaW5lSW5kZW50JywgJ3N0YXJ0SW5kZW50JywgJ2VuZEluZGVudCcsICdzcGFjZUJlZm9yZScsICdzcGFjZUFmdGVyJyxcclxuXHQnYXV0b0h5cGhlbmF0ZScsICdoeXBoZW5hdGVkV29yZFNpemUnLCAncHJlSHlwaGVuJywgJ3Bvc3RIeXBoZW4nLCAnY29uc2VjdXRpdmVIeXBoZW5zJyxcclxuXHQnem9uZScsICd3b3JkU3BhY2luZycsICdsZXR0ZXJTcGFjaW5nJywgJ2dseXBoU3BhY2luZycsICdhdXRvTGVhZGluZycsICdsZWFkaW5nVHlwZScsXHJcblx0J2hhbmdpbmcnLCAnYnVyYXNhZ2FyaScsICdraW5zb2t1T3JkZXInLCAnZXZlcnlMaW5lQ29tcG9zZXInLFxyXG5dO1xyXG5cclxuY29uc3Qgc3R5bGVLZXlzOiAoa2V5b2YgVGV4dFN0eWxlKVtdID0gW1xyXG5cdCdmb250JywgJ2ZvbnRTaXplJywgJ2ZhdXhCb2xkJywgJ2ZhdXhJdGFsaWMnLCAnYXV0b0xlYWRpbmcnLCAnbGVhZGluZycsICdob3Jpem9udGFsU2NhbGUnLFxyXG5cdCd2ZXJ0aWNhbFNjYWxlJywgJ3RyYWNraW5nJywgJ2F1dG9LZXJuaW5nJywgJ2tlcm5pbmcnLCAnYmFzZWxpbmVTaGlmdCcsICdmb250Q2FwcycsICdmb250QmFzZWxpbmUnLFxyXG5cdCd1bmRlcmxpbmUnLCAnc3RyaWtldGhyb3VnaCcsICdsaWdhdHVyZXMnLCAnZExpZ2F0dXJlcycsICdiYXNlbGluZURpcmVjdGlvbicsICd0c3VtZScsXHJcblx0J3N0eWxlUnVuQWxpZ25tZW50JywgJ2xhbmd1YWdlJywgJ25vQnJlYWsnLCAnZmlsbENvbG9yJywgJ3N0cm9rZUNvbG9yJywgJ2ZpbGxGbGFnJyxcclxuXHQnc3Ryb2tlRmxhZycsICdmaWxsRmlyc3QnLCAneVVuZGVybGluZScsICdvdXRsaW5lV2lkdGgnLCAnY2hhcmFjdGVyRGlyZWN0aW9uJywgJ2hpbmRpTnVtYmVycycsXHJcblx0J2thc2hpZGEnLCAnZGlhY3JpdGljUG9zJyxcclxuXTtcclxuXHJcbmNvbnN0IGFudGlhbGlhczogQW50aUFsaWFzW10gPSBbJ25vbmUnLCAnY3Jpc3AnLCAnc3Ryb25nJywgJ3Ntb290aCcsICdzaGFycCddO1xyXG5jb25zdCBqdXN0aWZpY2F0aW9uOiBKdXN0aWZpY2F0aW9uW10gPSBbJ2xlZnQnLCAncmlnaHQnLCAnY2VudGVyJ107XHJcblxyXG5mdW5jdGlvbiB1cHBlckZpcnN0KHZhbHVlOiBzdHJpbmcpIHtcclxuXHRyZXR1cm4gdmFsdWUuc3Vic3RyKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zdWJzdHIoMSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlY29kZUNvbG9yKGNvbG9yOiB7IFR5cGU6IG51bWJlcjsgVmFsdWVzOiBudW1iZXJbXTsgfSk6IENvbG9yIHtcclxuXHRjb25zdCBjID0gY29sb3IuVmFsdWVzO1xyXG5cclxuXHRpZiAoY29sb3IuVHlwZSA9PT0gMCkgeyAvLyBncmF5c2NhbGVcclxuXHRcdHJldHVybiB7IHI6IGNbMV0gKiAyNTUsIGc6IGNbMV0gKiAyNTUsIGI6IGNbMV0gKiAyNTUgfTsgLy8gLCBjWzBdICogMjU1XTtcclxuXHR9IGVsc2UgeyAvLyByZ2JcclxuXHRcdHJldHVybiB7IHI6IGNbMV0gKiAyNTUsIGc6IGNbMl0gKiAyNTUsIGI6IGNbM10gKiAyNTUsIGE6IGNbMF0gfTsgLy8gLCBjWzBdICogMjU1XTtcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuY29kZUNvbG9yKGNvbG9yOiBDb2xvciB8IHVuZGVmaW5lZCkge1xyXG5cdGlmIChjb2xvciAmJiAncicgaW4gY29sb3IpIHtcclxuXHRcdHJldHVybiBbJ2EnIGluIGNvbG9yID8gY29sb3IuYSA6IDEsIGNvbG9yLnIgLyAyNTUsIGNvbG9yLmcgLyAyNTUsIGNvbG9yLmIgLyAyNTVdO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRyZXR1cm4gWzAsIDAsIDAsIDBdO1xyXG5cdH1cclxufVxyXG5cclxuZnVuY3Rpb24gYXJyYXlzRXF1YWwoYTogYW55W10sIGI6IGFueVtdKSB7XHJcblx0aWYgKCFhIHx8ICFiKSByZXR1cm4gZmFsc2U7XHJcblx0aWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBmYWxzZTtcclxuXHRyZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gb2JqZWN0c0VxdWFsKGE6IGFueSwgYjogYW55KSB7XHJcblx0aWYgKCFhIHx8ICFiKSByZXR1cm4gZmFsc2U7XHJcblx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYSkpIGlmIChhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xyXG5cdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGIpKSBpZiAoYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcclxuXHRyZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZE9yQWRkRm9udChmb250czogRm9udFtdLCBmb250OiBGb250KSB7XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBmb250cy5sZW5ndGg7IGkrKykge1xyXG5cdFx0aWYgKGZvbnRzW2ldLm5hbWUgPT09IGZvbnQubmFtZSkgcmV0dXJuIGk7XHJcblx0fVxyXG5cclxuXHRmb250cy5wdXNoKGZvbnQpO1xyXG5cdHJldHVybiBmb250cy5sZW5ndGggLSAxO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkZWNvZGVPYmplY3Qob2JqOiBhbnksIGtleXM6IHN0cmluZ1tdLCBmb250czogRm9udFtdKSB7XHJcblx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcclxuXHJcblx0Zm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xyXG5cdFx0Y29uc3QgS2V5ID0gdXBwZXJGaXJzdChrZXkpO1xyXG5cclxuXHRcdGlmIChvYmpbS2V5XSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcclxuXHJcblx0XHRpZiAoa2V5ID09PSAnanVzdGlmaWNhdGlvbicpIHtcclxuXHRcdFx0cmVzdWx0W2tleV0gPSBqdXN0aWZpY2F0aW9uW29ialtLZXldXTtcclxuXHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnZm9udCcpIHtcclxuXHRcdFx0cmVzdWx0W2tleV0gPSBmb250c1tvYmpbS2V5XV07XHJcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ2ZpbGxDb2xvcicgfHwga2V5ID09PSAnc3Ryb2tlQ29sb3InKSB7XHJcblx0XHRcdHJlc3VsdFtrZXldID0gZGVjb2RlQ29sb3Iob2JqW0tleV0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmVzdWx0W2tleV0gPSBvYmpbS2V5XTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuY29kZU9iamVjdChvYmo6IGFueSwga2V5czogc3RyaW5nW10sIGZvbnRzOiBGb250W10pIHtcclxuXHRjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xyXG5cclxuXHRmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XHJcblx0XHRjb25zdCBLZXkgPSB1cHBlckZpcnN0KGtleSk7XHJcblxyXG5cdFx0aWYgKG9ialtrZXldID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG5cclxuXHRcdGlmIChrZXkgPT09ICdqdXN0aWZpY2F0aW9uJykge1xyXG5cdFx0XHRyZXN1bHRbS2V5XSA9IGp1c3RpZmljYXRpb24uaW5kZXhPZihvYmpba2V5XSA/PyAnbGVmdCcpO1xyXG5cdFx0fSBlbHNlIGlmIChrZXkgPT09ICdmb250Jykge1xyXG5cdFx0XHRyZXN1bHRbS2V5XSA9IGZpbmRPckFkZEZvbnQoZm9udHMsIG9ialtrZXldKTtcclxuXHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnZmlsbENvbG9yJyB8fCBrZXkgPT09ICdzdHJva2VDb2xvcicpIHtcclxuXHRcdFx0cmVzdWx0W0tleV0gPSB7IFR5cGU6IDEsIFZhbHVlczogZW5jb2RlQ29sb3Iob2JqW2tleV0pIH0gYXMgVHlwZVZhbHVlcztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJlc3VsdFtLZXldID0gb2JqW2tleV07XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkZWNvZGVQYXJhZ3JhcGhTdHlsZShvYmo6IFBhcmFncmFwaFByb3BlcnRpZXMsIGZvbnRzOiBGb250W10pOiBQYXJhZ3JhcGhTdHlsZSB7XHJcblx0cmV0dXJuIGRlY29kZU9iamVjdChvYmosIHBhcmFncmFwaFN0eWxlS2V5cywgZm9udHMpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkZWNvZGVTdHlsZShvYmo6IFN0eWxlU2hlZXREYXRhLCBmb250czogRm9udFtdKTogVGV4dFN0eWxlIHtcclxuXHRyZXR1cm4gZGVjb2RlT2JqZWN0KG9iaiwgc3R5bGVLZXlzLCBmb250cyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuY29kZVBhcmFncmFwaFN0eWxlKG9iajogUGFyYWdyYXBoU3R5bGUsIGZvbnRzOiBGb250W10pOiBQYXJhZ3JhcGhQcm9wZXJ0aWVzIHtcclxuXHRyZXR1cm4gZW5jb2RlT2JqZWN0KG9iaiwgcGFyYWdyYXBoU3R5bGVLZXlzLCBmb250cyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuY29kZVN0eWxlKG9iajogVGV4dFN0eWxlLCBmb250czogRm9udFtdKTogU3R5bGVTaGVldERhdGEge1xyXG5cdHJldHVybiBlbmNvZGVPYmplY3Qob2JqLCBzdHlsZUtleXMsIGZvbnRzKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVkdXBsaWNhdGVWYWx1ZXM8VD4oYmFzZTogVCwgcnVuczogeyBzdHlsZTogVDsgfVtdLCBrZXlzOiAoa2V5b2YgVClbXSkge1xyXG5cdGlmICghcnVucy5sZW5ndGgpIHJldHVybjtcclxuXHJcblx0Zm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xyXG5cdFx0Y29uc3QgdmFsdWUgPSBydW5zWzBdLnN0eWxlW2tleV07XHJcblxyXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0bGV0IGlkZW50aWNhbCA9IGZhbHNlO1xyXG5cclxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcblx0XHRcdFx0aWRlbnRpY2FsID0gcnVucy5ldmVyeShyID0+IGFycmF5c0VxdWFsKHIuc3R5bGVba2V5XSBhcyBhbnksIHZhbHVlKSk7XHJcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRcdGlkZW50aWNhbCA9IHJ1bnMuZXZlcnkociA9PiBvYmplY3RzRXF1YWwoci5zdHlsZVtrZXldIGFzIGFueSwgdmFsdWUpKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRpZGVudGljYWwgPSBydW5zLmV2ZXJ5KHIgPT4gci5zdHlsZVtrZXldID09PSB2YWx1ZSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChpZGVudGljYWwpIHtcclxuXHRcdFx0XHRiYXNlW2tleV0gPSB2YWx1ZSBhcyBhbnk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzdHlsZVZhbHVlID0gYmFzZVtrZXldO1xyXG5cclxuXHRcdGlmIChzdHlsZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0Zm9yIChjb25zdCByIG9mIHJ1bnMpIHtcclxuXHRcdFx0XHRsZXQgc2FtZSA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuXHRcdFx0XHRcdHNhbWUgPSBhcnJheXNFcXVhbChyLnN0eWxlW2tleV0gYXMgYW55LCB2YWx1ZSk7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdFx0XHRzYW1lID0gb2JqZWN0c0VxdWFsKHIuc3R5bGVba2V5XSBhcyBhbnksIHZhbHVlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0c2FtZSA9IHIuc3R5bGVba2V5XSA9PT0gdmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoc2FtZSkgZGVsZXRlIHIuc3R5bGVba2V5XTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aWYgKHJ1bnMuZXZlcnkoeCA9PiBPYmplY3Qua2V5cyh4LnN0eWxlKS5sZW5ndGggPT09IDApKSB7XHJcblx0XHRydW5zLmxlbmd0aCA9IDA7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlRW5naW5lRGF0YShlbmdpbmVEYXRhOiBFbmdpbmVEYXRhKSB7XHJcblx0Ly8gY29uc29sZS5sb2coJ2VuZ2luZURhdGEnLCByZXF1aXJlKCd1dGlsJykuaW5zcGVjdChlbmdpbmVEYXRhLCBmYWxzZSwgOTksIHRydWUpKTtcclxuXHRjb25zdCBlbmdpbmVEaWN0ID0gZW5naW5lRGF0YS5FbmdpbmVEaWN0O1xyXG5cdGNvbnN0IHJlc291cmNlRGljdCA9IGVuZ2luZURhdGEuUmVzb3VyY2VEaWN0O1xyXG5cclxuXHRjb25zdCBmb250cyA9IHJlc291cmNlRGljdC5Gb250U2V0Lm1hcDxGb250PihmID0+ICh7XHJcblx0XHRuYW1lOiBmLk5hbWUsXHJcblx0XHRzY3JpcHQ6IGYuU2NyaXB0LFxyXG5cdFx0dHlwZTogZi5Gb250VHlwZSxcclxuXHRcdHN5bnRoZXRpYzogZi5TeW50aGV0aWMsXHJcblx0fSkpO1xyXG5cclxuXHRsZXQgdGV4dCA9IGVuZ2luZURpY3QuRWRpdG9yLlRleHQucmVwbGFjZSgvXFxyL2csICdcXG4nKTtcclxuXHRsZXQgcmVtb3ZlZENoYXJhY3RlcnMgPSAwO1xyXG5cclxuXHR3aGlsZSAoL1xcbiQvLnRlc3QodGV4dCkpIHtcclxuXHRcdHRleHQgPSB0ZXh0LnN1YnN0cigwLCB0ZXh0Lmxlbmd0aCAtIDEpO1xyXG5cdFx0cmVtb3ZlZENoYXJhY3RlcnMrKztcclxuXHR9XHJcblxyXG5cdGNvbnN0IHJlc3VsdDogTGF5ZXJUZXh0RGF0YSA9IHtcclxuXHRcdHRleHQsXHJcblx0XHRhbnRpQWxpYXM6IGFudGlhbGlhc1tlbmdpbmVEaWN0LkFudGlBbGlhc10gPz8gJ3Ntb290aCcsXHJcblx0XHR1c2VGcmFjdGlvbmFsR2x5cGhXaWR0aHM6ICEhZW5naW5lRGljdC5Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMsXHJcblx0XHRzdXBlcnNjcmlwdFNpemU6IHJlc291cmNlRGljdC5TdXBlcnNjcmlwdFNpemUsXHJcblx0XHRzdXBlcnNjcmlwdFBvc2l0aW9uOiByZXNvdXJjZURpY3QuU3VwZXJzY3JpcHRQb3NpdGlvbixcclxuXHRcdHN1YnNjcmlwdFNpemU6IHJlc291cmNlRGljdC5TdWJzY3JpcHRTaXplLFxyXG5cdFx0c3Vic2NyaXB0UG9zaXRpb246IHJlc291cmNlRGljdC5TdWJzY3JpcHRQb3NpdGlvbixcclxuXHRcdHNtYWxsQ2FwU2l6ZTogcmVzb3VyY2VEaWN0LlNtYWxsQ2FwU2l6ZSxcclxuXHR9O1xyXG5cclxuXHQvLyBzaGFwZVxyXG5cclxuXHRjb25zdCBwaG90b3Nob3AgPSBlbmdpbmVEaWN0LlJlbmRlcmVkPy5TaGFwZXM/LkNoaWxkcmVuPy5bMF0/LkNvb2tpZT8uUGhvdG9zaG9wO1xyXG5cclxuXHRpZiAocGhvdG9zaG9wKSB7XHJcblx0XHRyZXN1bHQuc2hhcGVUeXBlID0gcGhvdG9zaG9wLlNoYXBlVHlwZSA9PT0gMSA/ICdib3gnIDogJ3BvaW50JztcclxuXHRcdGlmIChwaG90b3Nob3AuUG9pbnRCYXNlKSByZXN1bHQucG9pbnRCYXNlID0gcGhvdG9zaG9wLlBvaW50QmFzZTtcclxuXHRcdGlmIChwaG90b3Nob3AuQm94Qm91bmRzKSByZXN1bHQuYm94Qm91bmRzID0gcGhvdG9zaG9wLkJveEJvdW5kcztcclxuXHR9XHJcblxyXG5cdC8vIHBhcmFncmFwaCBzdHlsZVxyXG5cclxuXHQvLyBjb25zdCB0aGVOb3JtYWxQYXJhZ3JhcGhTaGVldCA9IHJlc291cmNlRGljdC5UaGVOb3JtYWxQYXJhZ3JhcGhTaGVldDtcclxuXHQvLyBjb25zdCBwYXJhZ3JhcGhTaGVldFNldCA9IHJlc291cmNlRGljdC5QYXJhZ3JhcGhTaGVldFNldDtcclxuXHQvLyBjb25zdCBwYXJhZ3JhcGhQcm9wZXJ0aWVzID0gcGFyYWdyYXBoU2hlZXRTZXRbdGhlTm9ybWFsUGFyYWdyYXBoU2hlZXRdLlByb3BlcnRpZXM7XHJcblx0Y29uc3QgcGFyYWdyYXBoUnVuID0gZW5naW5lRGF0YS5FbmdpbmVEaWN0LlBhcmFncmFwaFJ1bjtcclxuXHJcblx0cmVzdWx0LnBhcmFncmFwaFN0eWxlID0ge307IC8vIGRlY29kZVBhcmFncmFwaFN0eWxlKHBhcmFncmFwaFByb3BlcnRpZXMsIGZvbnRzKTtcclxuXHRyZXN1bHQucGFyYWdyYXBoU3R5bGVSdW5zID0gW107XHJcblxyXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgcGFyYWdyYXBoUnVuLlJ1bkFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRjb25zdCBydW4gPSBwYXJhZ3JhcGhSdW4uUnVuQXJyYXlbaV07XHJcblx0XHRjb25zdCBsZW5ndGggPSBwYXJhZ3JhcGhSdW4uUnVuTGVuZ3RoQXJyYXlbaV07XHJcblx0XHRjb25zdCBzdHlsZSA9IGRlY29kZVBhcmFncmFwaFN0eWxlKHJ1bi5QYXJhZ3JhcGhTaGVldC5Qcm9wZXJ0aWVzLCBmb250cyk7XHJcblx0XHQvLyBjb25zdCBhZGp1c3RtZW50cyA9IHtcclxuXHRcdC8vICAgYXhpczogcnVuLkFkanVzdG1lbnRzLkF4aXMsXHJcblx0XHQvLyAgIHh5OiBydW4uQWRqdXN0bWVudHMuWFksXHJcblx0XHQvLyB9O1xyXG5cdFx0cmVzdWx0LnBhcmFncmFwaFN0eWxlUnVucy5wdXNoKHsgbGVuZ3RoLCBzdHlsZS8qLCBhZGp1c3RtZW50cyovIH0pO1xyXG5cdH1cclxuXHJcblx0Zm9yIChsZXQgY291bnRlciA9IHJlbW92ZWRDaGFyYWN0ZXJzOyByZXN1bHQucGFyYWdyYXBoU3R5bGVSdW5zLmxlbmd0aCAmJiBjb3VudGVyID4gMDsgY291bnRlci0tKSB7XHJcblx0XHRpZiAoLS1yZXN1bHQucGFyYWdyYXBoU3R5bGVSdW5zW3Jlc3VsdC5wYXJhZ3JhcGhTdHlsZVJ1bnMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHJlc3VsdC5wYXJhZ3JhcGhTdHlsZVJ1bnMucG9wKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRkZWR1cGxpY2F0ZVZhbHVlcyhyZXN1bHQucGFyYWdyYXBoU3R5bGUsIHJlc3VsdC5wYXJhZ3JhcGhTdHlsZVJ1bnMsIHBhcmFncmFwaFN0eWxlS2V5cyk7XHJcblxyXG5cdGlmICghcmVzdWx0LnBhcmFncmFwaFN0eWxlUnVucy5sZW5ndGgpIGRlbGV0ZSByZXN1bHQucGFyYWdyYXBoU3R5bGVSdW5zO1xyXG5cclxuXHQvLyBzdHlsZVxyXG5cclxuXHQvLyBjb25zdCB0aGVOb3JtYWxTdHlsZVNoZWV0ID0gcmVzb3VyY2VEaWN0LlRoZU5vcm1hbFN0eWxlU2hlZXQ7XHJcblx0Ly8gY29uc3Qgc3R5bGVTaGVldFNldCA9IHJlc291cmNlRGljdC5TdHlsZVNoZWV0U2V0O1xyXG5cdC8vIGNvbnN0IHN0eWxlU2hlZXREYXRhID0gc3R5bGVTaGVldFNldFt0aGVOb3JtYWxTdHlsZVNoZWV0XS5TdHlsZVNoZWV0RGF0YTtcclxuXHRjb25zdCBzdHlsZVJ1biA9IGVuZ2luZURhdGEuRW5naW5lRGljdC5TdHlsZVJ1bjtcclxuXHJcblx0cmVzdWx0LnN0eWxlID0ge307IC8vIGRlY29kZVN0eWxlKHN0eWxlU2hlZXREYXRhLCBmb250cyk7XHJcblx0cmVzdWx0LnN0eWxlUnVucyA9IFtdO1xyXG5cclxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0eWxlUnVuLlJ1bkFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRjb25zdCBsZW5ndGggPSBzdHlsZVJ1bi5SdW5MZW5ndGhBcnJheVtpXTtcclxuXHRcdGNvbnN0IHN0eWxlID0gZGVjb2RlU3R5bGUoc3R5bGVSdW4uUnVuQXJyYXlbaV0uU3R5bGVTaGVldC5TdHlsZVNoZWV0RGF0YSwgZm9udHMpO1xyXG5cdFx0cmVzdWx0LnN0eWxlUnVucy5wdXNoKHsgbGVuZ3RoLCBzdHlsZSB9KTtcclxuXHR9XHJcblxyXG5cdGZvciAobGV0IGNvdW50ZXIgPSByZW1vdmVkQ2hhcmFjdGVyczsgcmVzdWx0LnN0eWxlUnVucy5sZW5ndGggJiYgY291bnRlciA+IDA7IGNvdW50ZXItLSkge1xyXG5cdFx0aWYgKC0tcmVzdWx0LnN0eWxlUnVuc1tyZXN1bHQuc3R5bGVSdW5zLmxlbmd0aCAtIDFdLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRyZXN1bHQuc3R5bGVSdW5zLnBvcCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZGVkdXBsaWNhdGVWYWx1ZXMocmVzdWx0LnN0eWxlLCByZXN1bHQuc3R5bGVSdW5zLCBzdHlsZUtleXMpO1xyXG5cclxuXHRpZiAoIXJlc3VsdC5zdHlsZVJ1bnMubGVuZ3RoKSBkZWxldGUgcmVzdWx0LnN0eWxlUnVucztcclxuXHJcblx0cmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZUVuZ2luZURhdGEoZGF0YTogTGF5ZXJUZXh0RGF0YSkge1xyXG5cdGNvbnN0IHRleHQgPSBgJHsoZGF0YS50ZXh0IHx8ICcnKS5yZXBsYWNlKC9cXHI/XFxuL2csICdcXHInKX1cXHJgO1xyXG5cclxuXHRjb25zdCBmb250czogRm9udFtdID0gW1xyXG5cdFx0eyBuYW1lOiAnQWRvYmVJbnZpc0ZvbnQnLCBzY3JpcHQ6IDAsIHR5cGU6IDAsIHN5bnRoZXRpYzogMCB9LFxyXG5cdF07XHJcblxyXG5cdGNvbnN0IGRlZkZvbnQgPSBkYXRhLnN0eWxlPy5mb250IHx8IGRhdGEuc3R5bGVSdW5zPy5maW5kKHMgPT4gcy5zdHlsZS5mb250KT8uc3R5bGUuZm9udCB8fCBkZWZhdWx0Rm9udDtcclxuXHRjb25zdCBwYXJhZ3JhcGhSdW5BcnJheTogUGFyYWdyYXBoUnVuW10gPSBbXTtcclxuXHRjb25zdCBwYXJhZ3JhcGhSdW5MZW5ndGhBcnJheTogbnVtYmVyW10gPSBbXTtcclxuXHRjb25zdCBwYXJhZ3JhcGhSdW5zID0gZGF0YS5wYXJhZ3JhcGhTdHlsZVJ1bnM7XHJcblxyXG5cdGlmIChwYXJhZ3JhcGhSdW5zICYmIHBhcmFncmFwaFJ1bnMubGVuZ3RoKSB7XHJcblx0XHRsZXQgbGVmdExlbmd0aCA9IHRleHQubGVuZ3RoO1xyXG5cclxuXHRcdGZvciAoY29uc3QgcnVuIG9mIHBhcmFncmFwaFJ1bnMpIHtcclxuXHRcdFx0bGV0IHJ1bkxlbmd0aCA9IE1hdGgubWluKHJ1bi5sZW5ndGgsIGxlZnRMZW5ndGgpO1xyXG5cdFx0XHRsZWZ0TGVuZ3RoIC09IHJ1bkxlbmd0aDtcclxuXHJcblx0XHRcdGlmICghcnVuTGVuZ3RoKSBjb250aW51ZTsgLy8gaWdub3JlIDAgc2l6ZSBydW5zXHJcblxyXG5cdFx0XHQvLyBleHRlbmQgbGFzdCBydW4gaWYgaXQncyBvbmx5IGZvciB0cmFpbGluZyBcXHJcclxuXHRcdFx0aWYgKGxlZnRMZW5ndGggPT09IDEgJiYgcnVuID09PSBwYXJhZ3JhcGhSdW5zW3BhcmFncmFwaFJ1bnMubGVuZ3RoIC0gMV0pIHtcclxuXHRcdFx0XHRydW5MZW5ndGgrKztcclxuXHRcdFx0XHRsZWZ0TGVuZ3RoLS07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHBhcmFncmFwaFJ1bkxlbmd0aEFycmF5LnB1c2gocnVuTGVuZ3RoKTtcclxuXHRcdFx0cGFyYWdyYXBoUnVuQXJyYXkucHVzaCh7XHJcblx0XHRcdFx0UGFyYWdyYXBoU2hlZXQ6IHtcclxuXHRcdFx0XHRcdERlZmF1bHRTdHlsZVNoZWV0OiAwLFxyXG5cdFx0XHRcdFx0UHJvcGVydGllczogZW5jb2RlUGFyYWdyYXBoU3R5bGUoeyAuLi5kZWZhdWx0UGFyYWdyYXBoU3R5bGUsIC4uLmRhdGEucGFyYWdyYXBoU3R5bGUsIC4uLnJ1bi5zdHlsZSB9LCBmb250cyksXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRBZGp1c3RtZW50czogeyBBeGlzOiBbMSwgMCwgMV0sIFhZOiBbMCwgMF0gfSxcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGxlZnRMZW5ndGgpIHtcclxuXHRcdFx0cGFyYWdyYXBoUnVuTGVuZ3RoQXJyYXkucHVzaChsZWZ0TGVuZ3RoKTtcclxuXHRcdFx0cGFyYWdyYXBoUnVuQXJyYXkucHVzaCh7XHJcblx0XHRcdFx0UGFyYWdyYXBoU2hlZXQ6IHtcclxuXHRcdFx0XHRcdERlZmF1bHRTdHlsZVNoZWV0OiAwLFxyXG5cdFx0XHRcdFx0UHJvcGVydGllczogZW5jb2RlUGFyYWdyYXBoU3R5bGUoeyAuLi5kZWZhdWx0UGFyYWdyYXBoU3R5bGUsIC4uLmRhdGEucGFyYWdyYXBoU3R5bGUgfSwgZm9udHMpLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0QWRqdXN0bWVudHM6IHsgQXhpczogWzEsIDAsIDFdLCBYWTogWzAsIDBdIH0sXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH0gZWxzZSB7XHJcblx0XHRmb3IgKGxldCBpID0gMCwgbGFzdCA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGlmICh0ZXh0LmNoYXJDb2RlQXQoaSkgPT09IDEzKSB7IC8vIFxcclxyXG5cdFx0XHRcdHBhcmFncmFwaFJ1bkxlbmd0aEFycmF5LnB1c2goaSAtIGxhc3QgKyAxKTtcclxuXHRcdFx0XHRwYXJhZ3JhcGhSdW5BcnJheS5wdXNoKHtcclxuXHRcdFx0XHRcdFBhcmFncmFwaFNoZWV0OiB7XHJcblx0XHRcdFx0XHRcdERlZmF1bHRTdHlsZVNoZWV0OiAwLFxyXG5cdFx0XHRcdFx0XHRQcm9wZXJ0aWVzOiBlbmNvZGVQYXJhZ3JhcGhTdHlsZSh7IC4uLmRlZmF1bHRQYXJhZ3JhcGhTdHlsZSwgLi4uZGF0YS5wYXJhZ3JhcGhTdHlsZSB9LCBmb250cyksXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0QWRqdXN0bWVudHM6IHsgQXhpczogWzEsIDAsIDFdLCBYWTogWzAsIDBdIH0sXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0bGFzdCA9IGkgKyAxO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb25zdCBzdHlsZVNoZWV0RGF0YSA9IGVuY29kZVN0eWxlKHsgLi4uZGVmYXVsdFN0eWxlLCBmb250OiBkZWZGb250IH0sIGZvbnRzKTtcclxuXHRjb25zdCBzdHlsZVJ1bnMgPSBkYXRhLnN0eWxlUnVucyB8fCBbeyBsZW5ndGg6IHRleHQubGVuZ3RoLCBzdHlsZTogZGF0YS5zdHlsZSB8fCB7fSB9XTtcclxuXHRjb25zdCBzdHlsZVJ1bkFycmF5OiBTdHlsZVJ1bltdID0gW107XHJcblx0Y29uc3Qgc3R5bGVSdW5MZW5ndGhBcnJheTogbnVtYmVyW10gPSBbXTtcclxuXHJcblx0bGV0IGxlZnRMZW5ndGggPSB0ZXh0Lmxlbmd0aDtcclxuXHJcblx0Zm9yIChjb25zdCBydW4gb2Ygc3R5bGVSdW5zKSB7XHJcblx0XHRsZXQgcnVuTGVuZ3RoID0gTWF0aC5taW4ocnVuLmxlbmd0aCwgbGVmdExlbmd0aCk7XHJcblx0XHRsZWZ0TGVuZ3RoIC09IHJ1bkxlbmd0aDtcclxuXHJcblx0XHRpZiAoIXJ1bkxlbmd0aCkgY29udGludWU7IC8vIGlnbm9yZSAwIHNpemUgcnVuc1xyXG5cclxuXHRcdC8vIGV4dGVuZCBsYXN0IHJ1biBpZiBpdCdzIG9ubHkgZm9yIHRyYWlsaW5nIFxcclxyXG5cdFx0aWYgKGxlZnRMZW5ndGggPT09IDEgJiYgcnVuID09PSBzdHlsZVJ1bnNbc3R5bGVSdW5zLmxlbmd0aCAtIDFdKSB7XHJcblx0XHRcdHJ1bkxlbmd0aCsrO1xyXG5cdFx0XHRsZWZ0TGVuZ3RoLS07XHJcblx0XHR9XHJcblxyXG5cdFx0c3R5bGVSdW5MZW5ndGhBcnJheS5wdXNoKHJ1bkxlbmd0aCk7XHJcblx0XHRzdHlsZVJ1bkFycmF5LnB1c2goe1xyXG5cdFx0XHRTdHlsZVNoZWV0OiB7XHJcblx0XHRcdFx0U3R5bGVTaGVldERhdGE6IGVuY29kZVN0eWxlKHtcclxuXHRcdFx0XHRcdGtlcm5pbmc6IDAsXHJcblx0XHRcdFx0XHRhdXRvS2VybmluZzogdHJ1ZSxcclxuXHRcdFx0XHRcdGZpbGxDb2xvcjogeyByOiAwLCBnOiAwLCBiOiAwIH0sXHJcblx0XHRcdFx0XHQuLi5kYXRhLnN0eWxlLFxyXG5cdFx0XHRcdFx0Li4ucnVuLnN0eWxlLFxyXG5cdFx0XHRcdH0sIGZvbnRzKSxcclxuXHRcdFx0fSxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gYWRkIGV4dHJhIHJ1biB0byB0aGUgZW5kIGlmIGV4aXN0aW5nIG9uZXMgZGlkbid0IGZpbGwgaXQgdXBcclxuXHRpZiAobGVmdExlbmd0aCAmJiBzdHlsZVJ1bnMubGVuZ3RoKSB7XHJcblx0XHRzdHlsZVJ1bkxlbmd0aEFycmF5LnB1c2gobGVmdExlbmd0aCk7XHJcblx0XHRzdHlsZVJ1bkFycmF5LnB1c2goe1xyXG5cdFx0XHRTdHlsZVNoZWV0OiB7XHJcblx0XHRcdFx0U3R5bGVTaGVldERhdGE6IGVuY29kZVN0eWxlKHtcclxuXHRcdFx0XHRcdGtlcm5pbmc6IDAsXHJcblx0XHRcdFx0XHRhdXRvS2VybmluZzogdHJ1ZSxcclxuXHRcdFx0XHRcdGZpbGxDb2xvcjogeyByOiAwLCBnOiAwLCBiOiAwIH0sXHJcblx0XHRcdFx0XHQuLi5kYXRhLnN0eWxlLFxyXG5cdFx0XHRcdH0sIGZvbnRzKSxcclxuXHRcdFx0fSxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgZ3JpZEluZm8gPSB7IC4uLmRlZmF1bHRHcmlkSW5mbywgLi4uZGF0YS5ncmlkSW5mbyB9O1xyXG5cdGNvbnN0IFdyaXRpbmdEaXJlY3Rpb24gPSBkYXRhLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gMiA6IDA7XHJcblx0Y29uc3QgUHJvY2Vzc2lvbiA9IGRhdGEub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAxIDogMDtcclxuXHRjb25zdCBTaGFwZVR5cGUgPSBkYXRhLnNoYXBlVHlwZSA9PT0gJ2JveCcgPyAxIDogMDtcclxuXHRjb25zdCBQaG90b3Nob3A6IFBob3Rvc2hvcE5vZGUgPSB7XHJcblx0XHRTaGFwZVR5cGUsXHJcblx0fTtcclxuXHJcblx0aWYgKFNoYXBlVHlwZSA9PT0gMCkge1xyXG5cdFx0UGhvdG9zaG9wLlBvaW50QmFzZSA9IGRhdGEucG9pbnRCYXNlIHx8IFswLCAwXTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0UGhvdG9zaG9wLkJveEJvdW5kcyA9IGRhdGEuYm94Qm91bmRzIHx8IFswLCAwLCAwLCAwXTtcclxuXHR9XHJcblxyXG5cdC8vIG5lZWRlZCBmb3IgY29ycmVjdCBvcmRlciBvZiBwcm9wZXJ0aWVzXHJcblx0UGhvdG9zaG9wLkJhc2UgPSB7XHJcblx0XHRTaGFwZVR5cGUsXHJcblx0XHRUcmFuc2Zvcm1Qb2ludDA6IFsxLCAwXSxcclxuXHRcdFRyYW5zZm9ybVBvaW50MTogWzAsIDFdLFxyXG5cdFx0VHJhbnNmb3JtUG9pbnQyOiBbMCwgMF0sXHJcblx0fTtcclxuXHJcblx0Y29uc3QgZGVmYXVsdFJlc291cmNlcyA9IHtcclxuXHRcdEtpbnNva3VTZXQ6IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdE5hbWU6ICdQaG90b3Nob3BLaW5zb2t1SGFyZCcsXHJcblx0XHRcdFx0Tm9TdGFydDogJ+OAgeOAgu+8jO+8juODu++8mu+8m++8n++8geODvOKAleKAmeKAne+8ieOAle+8ve+9neOAieOAi+OAjeOAj+OAkeODveODvuOCneOCnuOAheOBgeOBg+OBheOBh+OBieOBo+OCg+OCheOCh+OCjuOCoeOCo+OCpeOCp+OCqeODg+ODo+ODpeODp+ODruODteODtuOCm+OCnD8hKV19LC46O+KEg+KEicKi77yF4oCwJyxcclxuXHRcdFx0XHROb0VuZDogJ+KAmOKAnO+8iOOAlO+8u++9m+OAiOOAiuOAjOOAjuOAkChbe++/pe+8hMKj77ygwqfjgJLvvIMnLFxyXG5cdFx0XHRcdEtlZXA6ICfigJXigKUnLFxyXG5cdFx0XHRcdEhhbmdpbmc6ICfjgIHjgIIuLCcsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHROYW1lOiAnUGhvdG9zaG9wS2luc29rdVNvZnQnLFxyXG5cdFx0XHRcdE5vU3RhcnQ6ICfjgIHjgILvvIzvvI7jg7vvvJrvvJvvvJ/vvIHigJnigJ3vvInjgJXvvL3vvZ3jgInjgIvjgI3jgI/jgJHjg73jg77jgp3jgp7jgIUnLFxyXG5cdFx0XHRcdE5vRW5kOiAn4oCY4oCc77yI44CU77y7772b44CI44CK44CM44CO44CQJyxcclxuXHRcdFx0XHRLZWVwOiAn4oCV4oClJyxcclxuXHRcdFx0XHRIYW5naW5nOiAn44CB44CCLiwnLFxyXG5cdFx0XHR9LFxyXG5cdFx0XSxcclxuXHRcdE1vamlLdW1pU2V0OiBbXHJcblx0XHRcdHsgSW50ZXJuYWxOYW1lOiAnUGhvdG9zaG9wNk1vamlLdW1pU2V0MScgfSxcclxuXHRcdFx0eyBJbnRlcm5hbE5hbWU6ICdQaG90b3Nob3A2TW9qaUt1bWlTZXQyJyB9LFxyXG5cdFx0XHR7IEludGVybmFsTmFtZTogJ1Bob3Rvc2hvcDZNb2ppS3VtaVNldDMnIH0sXHJcblx0XHRcdHsgSW50ZXJuYWxOYW1lOiAnUGhvdG9zaG9wNk1vamlLdW1pU2V0NCcgfSxcclxuXHRcdF0sXHJcblx0XHRUaGVOb3JtYWxTdHlsZVNoZWV0OiAwLFxyXG5cdFx0VGhlTm9ybWFsUGFyYWdyYXBoU2hlZXQ6IDAsXHJcblx0XHRQYXJhZ3JhcGhTaGVldFNldDogW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0TmFtZTogJ05vcm1hbCBSR0InLFxyXG5cdFx0XHRcdERlZmF1bHRTdHlsZVNoZWV0OiAwLFxyXG5cdFx0XHRcdFByb3BlcnRpZXM6IGVuY29kZVBhcmFncmFwaFN0eWxlKHsgLi4uZGVmYXVsdFBhcmFncmFwaFN0eWxlLCAuLi5kYXRhLnBhcmFncmFwaFN0eWxlIH0sIGZvbnRzKSxcclxuXHRcdFx0fSxcclxuXHRcdF0sXHJcblx0XHRTdHlsZVNoZWV0U2V0OiBbXHJcblx0XHRcdHtcclxuXHRcdFx0XHROYW1lOiAnTm9ybWFsIFJHQicsXHJcblx0XHRcdFx0U3R5bGVTaGVldERhdGE6IHN0eWxlU2hlZXREYXRhLFxyXG5cdFx0XHR9LFxyXG5cdFx0XSxcclxuXHRcdEZvbnRTZXQ6IGZvbnRzLm1hcDxGb250U2V0PihmID0+ICh7XHJcblx0XHRcdE5hbWU6IGYubmFtZSxcclxuXHRcdFx0U2NyaXB0OiBmLnNjcmlwdCB8fCAwLFxyXG5cdFx0XHRGb250VHlwZTogZi50eXBlIHx8IDAsXHJcblx0XHRcdFN5bnRoZXRpYzogZi5zeW50aGV0aWMgfHwgMCxcclxuXHRcdH0pKSxcclxuXHRcdFN1cGVyc2NyaXB0U2l6ZTogZGF0YS5zdXBlcnNjcmlwdFNpemUgPz8gMC41ODMsXHJcblx0XHRTdXBlcnNjcmlwdFBvc2l0aW9uOiBkYXRhLnN1cGVyc2NyaXB0UG9zaXRpb24gPz8gMC4zMzMsXHJcblx0XHRTdWJzY3JpcHRTaXplOiBkYXRhLnN1YnNjcmlwdFNpemUgPz8gMC41ODMsXHJcblx0XHRTdWJzY3JpcHRQb3NpdGlvbjogZGF0YS5zdWJzY3JpcHRQb3NpdGlvbiA/PyAwLjMzMyxcclxuXHRcdFNtYWxsQ2FwU2l6ZTogZGF0YS5zbWFsbENhcFNpemUgPz8gMC43LFxyXG5cdH07XHJcblxyXG5cdGNvbnN0IGVuZ2luZURhdGE6IEVuZ2luZURhdGEgPSB7XHJcblx0XHRFbmdpbmVEaWN0OiB7XHJcblx0XHRcdEVkaXRvcjogeyBUZXh0OiB0ZXh0IH0sXHJcblx0XHRcdFBhcmFncmFwaFJ1bjoge1xyXG5cdFx0XHRcdERlZmF1bHRSdW5EYXRhOiB7XHJcblx0XHRcdFx0XHRQYXJhZ3JhcGhTaGVldDogeyBEZWZhdWx0U3R5bGVTaGVldDogMCwgUHJvcGVydGllczoge30gfSxcclxuXHRcdFx0XHRcdEFkanVzdG1lbnRzOiB7IEF4aXM6IFsxLCAwLCAxXSwgWFk6IFswLCAwXSB9LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0UnVuQXJyYXk6IHBhcmFncmFwaFJ1bkFycmF5LFxyXG5cdFx0XHRcdFJ1bkxlbmd0aEFycmF5OiBwYXJhZ3JhcGhSdW5MZW5ndGhBcnJheSxcclxuXHRcdFx0XHRJc0pvaW5hYmxlOiAxLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRTdHlsZVJ1bjoge1xyXG5cdFx0XHRcdERlZmF1bHRSdW5EYXRhOiB7IFN0eWxlU2hlZXQ6IHsgU3R5bGVTaGVldERhdGE6IHt9IH0gfSxcclxuXHRcdFx0XHRSdW5BcnJheTogc3R5bGVSdW5BcnJheSxcclxuXHRcdFx0XHRSdW5MZW5ndGhBcnJheTogc3R5bGVSdW5MZW5ndGhBcnJheSxcclxuXHRcdFx0XHRJc0pvaW5hYmxlOiAyLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRHcmlkSW5mbzoge1xyXG5cdFx0XHRcdEdyaWRJc09uOiAhIWdyaWRJbmZvLmlzT24sXHJcblx0XHRcdFx0U2hvd0dyaWQ6ICEhZ3JpZEluZm8uc2hvdyxcclxuXHRcdFx0XHRHcmlkU2l6ZTogZ3JpZEluZm8uc2l6ZSA/PyAxOCxcclxuXHRcdFx0XHRHcmlkTGVhZGluZzogZ3JpZEluZm8ubGVhZGluZyA/PyAyMixcclxuXHRcdFx0XHRHcmlkQ29sb3I6IHsgVHlwZTogMSwgVmFsdWVzOiBlbmNvZGVDb2xvcihncmlkSW5mby5jb2xvcikgfSxcclxuXHRcdFx0XHRHcmlkTGVhZGluZ0ZpbGxDb2xvcjogeyBUeXBlOiAxLCBWYWx1ZXM6IGVuY29kZUNvbG9yKGdyaWRJbmZvLmNvbG9yKSB9LFxyXG5cdFx0XHRcdEFsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzOiAhIWdyaWRJbmZvLmFsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRBbnRpQWxpYXM6IGFudGlhbGlhcy5pbmRleE9mKGRhdGEuYW50aUFsaWFzID8/ICdzaGFycCcpLFxyXG5cdFx0XHRVc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHM6IGRhdGEudXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzID8/IHRydWUsXHJcblx0XHRcdFJlbmRlcmVkOiB7XHJcblx0XHRcdFx0VmVyc2lvbjogMSxcclxuXHRcdFx0XHRTaGFwZXM6IHtcclxuXHRcdFx0XHRcdFdyaXRpbmdEaXJlY3Rpb24sXHJcblx0XHRcdFx0XHRDaGlsZHJlbjogW1xyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0U2hhcGVUeXBlLFxyXG5cdFx0XHRcdFx0XHRcdFByb2Nlc3Npb24sXHJcblx0XHRcdFx0XHRcdFx0TGluZXM6IHsgV3JpdGluZ0RpcmVjdGlvbiwgQ2hpbGRyZW46IFtdIH0sXHJcblx0XHRcdFx0XHRcdFx0Q29va2llOiB7IFBob3Rvc2hvcCB9LFxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdFJlc291cmNlRGljdDogeyAuLi5kZWZhdWx0UmVzb3VyY2VzIH0sXHJcblx0XHREb2N1bWVudFJlc291cmNlczogeyAuLi5kZWZhdWx0UmVzb3VyY2VzIH0sXHJcblx0fTtcclxuXHJcblx0Ly8gY29uc29sZS5sb2coJ2VuY29kZUVuZ2luZURhdGEnLCByZXF1aXJlKCd1dGlsJykuaW5zcGVjdChlbmdpbmVEYXRhLCBmYWxzZSwgOTksIHRydWUpKTtcclxuXHRyZXR1cm4gZW5naW5lRGF0YTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IkM6XFxQcm9qZWN0c1xcZ2l0aHViXFxhZy1wc2RcXHNyYyJ9
|
package/dist/utf8.js
CHANGED
|
@@ -124,7 +124,7 @@ function decodeString(value) {
|
|
|
124
124
|
throw Error('Invalid continuation byte');
|
|
125
125
|
}
|
|
126
126
|
if (code >= 0xd800 && code <= 0xdfff) {
|
|
127
|
-
throw Error("Lone surrogate U+"
|
|
127
|
+
throw Error("Lone surrogate U+".concat(code.toString(16).toUpperCase(), " is not a scalar value"));
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
else if ((byte1 & 0xf8) === 0xf0) {
|
|
@@ -150,4 +150,4 @@ function decodeString(value) {
|
|
|
150
150
|
}
|
|
151
151
|
exports.decodeString = decodeString;
|
|
152
152
|
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0ZjgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBUyxpQkFBaUIsQ0FBQyxJQUFZO0lBQ3RDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlCLE9BQU8sQ0FBQyxDQUFDO0tBQ1Q7U0FBTSxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNyQyxPQUFPLENBQUMsQ0FBQztLQUNUO1NBQU0sSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDckMsT0FBTyxDQUFDLENBQUM7S0FDVDtTQUFNO1FBQ04sT0FBTyxDQUFDLENBQUM7S0FDVDtBQUNGLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxLQUFhO0lBQ2hELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RDLElBQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakMsaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDM0IsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBRXRDLGdCQUFnQjtnQkFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxNQUFNLEVBQUU7b0JBQ2hDLENBQUMsRUFBRSxDQUFDO29CQUNKLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO2lCQUNoRjthQUNEO1NBQ0Q7YUFBTTtZQUNOLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQztLQUNEO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDZixDQUFDO0FBdkJELGtEQXVCQztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQTJCLEVBQUUsTUFBYyxFQUFFLElBQVk7SUFDaEYsSUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkMsUUFBUSxNQUFNLEVBQUU7UUFDZixLQUFLLENBQUM7WUFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU07UUFDUCxLQUFLLENBQUM7WUFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDN0MsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDMUMsTUFBTTtRQUNQLEtBQUssQ0FBQztZQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM5QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzFDLE1BQU07UUFDUDtZQUNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM5QyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDakQsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDMUMsTUFBTTtLQUNQO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE1BQTJCLEVBQUUsTUFBYyxFQUFFLEtBQWE7SUFDeEYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdEMsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqQyxpQkFBaUI7UUFDakIsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDckMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUMzQixJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFdEMsZ0JBQWdCO2dCQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLE1BQU0sRUFBRTtvQkFDaEMsQ0FBQyxFQUFFLENBQUM7b0JBQ0osSUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3BFLE1BQU0sSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztpQkFDbkQ7YUFDRDtTQUNEO2FBQU07WUFDTixNQUFNLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDL0M7S0FDRDtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQXRCRCx3Q0FzQkM7QUFFRCxTQUFnQixZQUFZLENBQUMsS0FBYTtJQUN6QyxJQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFELGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQUpELG9DQUlDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFrQixFQUFFLEtBQWE7SUFDMUQsSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMzQixNQUFNLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsSUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtRQUN2QyxPQUFPLGdCQUFnQixHQUFHLElBQUksQ0FBQztLQUMvQjtTQUFNO1FBQ04sTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUN6QztBQUNGLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsS0FBaUI7SUFDN0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBRWhCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHO1FBQ2xDLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxTQUFRLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNiO2FBQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkMsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBRXJDLElBQUksSUFBSSxHQUFHLElBQUksRUFBRTtnQkFDaEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQzthQUN6QztTQUNEO2FBQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkMsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBRXJELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRTtnQkFDbEIsTUFBTSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQzthQUN6QztZQUVELElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO2dCQUNyQyxNQUFNLEtBQUssQ0FBQyxzQkFBb0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsMkJBQXdCLENBQUMsQ0FBQzthQUN6RjtTQUNEO2FBQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkMsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBRTVFLElBQUksSUFBSSxHQUFHLFFBQVEsSUFBSSxJQUFJLEdBQUcsUUFBUSxFQUFFO2dCQUN2QyxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Q7YUFBTTtZQUNOLE1BQU0sS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLElBQUksR0FBRyxNQUFNLEVBQUU7WUFDbEIsSUFBSSxJQUFJLE9BQU8sQ0FBQztZQUNoQixNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztZQUM1RCxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7U0FDN0I7UUFFRCxNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNwQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQW5ERCxvQ0FtREMiLCJmaWxlIjoidXRmOC5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGNoYXJMZW5ndGhJbkJ5dGVzKGNvZGU6IG51bWJlcik6IG51bWJlciB7XHJcblx0aWYgKChjb2RlICYgMHhmZmZmZmY4MCkgPT09IDApIHtcclxuXHRcdHJldHVybiAxO1xyXG5cdH0gZWxzZSBpZiAoKGNvZGUgJiAweGZmZmZmODAwKSA9PT0gMCkge1xyXG5cdFx0cmV0dXJuIDI7XHJcblx0fSBlbHNlIGlmICgoY29kZSAmIDB4ZmZmZjAwMDApID09PSAwKSB7XHJcblx0XHRyZXR1cm4gMztcclxuXHR9IGVsc2Uge1xyXG5cdFx0cmV0dXJuIDQ7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nTGVuZ3RoSW5CeXRlcyh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuXHRsZXQgcmVzdWx0ID0gMDtcclxuXHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y29uc3QgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcblxyXG5cdFx0Ly8gaGlnaCBzdXJyb2dhdGVcclxuXHRcdGlmIChjb2RlID49IDB4ZDgwMCAmJiBjb2RlIDw9IDB4ZGJmZikge1xyXG5cdFx0XHRpZiAoKGkgKyAxKSA8IHZhbHVlLmxlbmd0aCkge1xyXG5cdFx0XHRcdGNvbnN0IGV4dHJhID0gdmFsdWUuY2hhckNvZGVBdChpICsgMSk7XHJcblxyXG5cdFx0XHRcdC8vIGxvdyBzdXJyb2dhdGVcclxuXHRcdFx0XHRpZiAoKGV4dHJhICYgMHhmYzAwKSA9PT0gMHhkYzAwKSB7XHJcblx0XHRcdFx0XHRpKys7XHJcblx0XHRcdFx0XHRyZXN1bHQgKz0gY2hhckxlbmd0aEluQnl0ZXMoKChjb2RlICYgMHgzZmYpIDw8IDEwKSArIChleHRyYSAmIDB4M2ZmKSArIDB4MTAwMDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmVzdWx0ICs9IGNoYXJMZW5ndGhJbkJ5dGVzKGNvZGUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gd3JpdGVDaGFyYWN0ZXIoYnVmZmVyOiBVaW50OEFycmF5IHwgQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgY29kZTogbnVtYmVyKTogbnVtYmVyIHtcclxuXHRjb25zdCBsZW5ndGggPSBjaGFyTGVuZ3RoSW5CeXRlcyhjb2RlKTtcclxuXHJcblx0c3dpdGNoIChsZW5ndGgpIHtcclxuXHRcdGNhc2UgMTpcclxuXHRcdFx0YnVmZmVyW29mZnNldF0gPSBjb2RlO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgMjpcclxuXHRcdFx0YnVmZmVyW29mZnNldF0gPSAoKGNvZGUgPj4gNikgJiAweDFmKSB8IDB4YzA7XHJcblx0XHRcdGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChjb2RlICYgMHgzZikgfCAweDgwO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgMzpcclxuXHRcdFx0YnVmZmVyW29mZnNldF0gPSAoKGNvZGUgPj4gMTIpICYgMHgwZikgfCAweGUwO1xyXG5cdFx0XHRidWZmZXJbb2Zmc2V0ICsgMV0gPSAoKGNvZGUgPj4gNikgJiAweDNmKSB8IDB4ODA7XHJcblx0XHRcdGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChjb2RlICYgMHgzZikgfCAweDgwO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGRlZmF1bHQ6XHJcblx0XHRcdGJ1ZmZlcltvZmZzZXRdID0gKChjb2RlID4+IDE4KSAmIDB4MDcpIHwgMHhmMDtcclxuXHRcdFx0YnVmZmVyW29mZnNldCArIDFdID0gKChjb2RlID4+IDEyKSAmIDB4M2YpIHwgMHg4MDtcclxuXHRcdFx0YnVmZmVyW29mZnNldCArIDJdID0gKChjb2RlID4+IDYpICYgMHgzZikgfCAweDgwO1xyXG5cdFx0XHRidWZmZXJbb2Zmc2V0ICsgM10gPSAoY29kZSAmIDB4M2YpIHwgMHg4MDtcclxuXHRcdFx0YnJlYWs7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gbGVuZ3RoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlU3RyaW5nVG8oYnVmZmVyOiBVaW50OEFycmF5IHwgQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IG51bWJlciB7XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y29uc3QgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcblxyXG5cdFx0Ly8gaGlnaCBzdXJyb2dhdGVcclxuXHRcdGlmIChjb2RlID49IDB4ZDgwMCAmJiBjb2RlIDw9IDB4ZGJmZikge1xyXG5cdFx0XHRpZiAoKGkgKyAxKSA8IHZhbHVlLmxlbmd0aCkge1xyXG5cdFx0XHRcdGNvbnN0IGV4dHJhID0gdmFsdWUuY2hhckNvZGVBdChpICsgMSk7XHJcblxyXG5cdFx0XHRcdC8vIGxvdyBzdXJyb2dhdGVcclxuXHRcdFx0XHRpZiAoKGV4dHJhICYgMHhmYzAwKSA9PT0gMHhkYzAwKSB7XHJcblx0XHRcdFx0XHRpKys7XHJcblx0XHRcdFx0XHRjb25zdCBmdWxsQ29kZSA9ICgoY29kZSAmIDB4M2ZmKSA8PCAxMCkgKyAoZXh0cmEgJiAweDNmZikgKyAweDEwMDAwO1xyXG5cdFx0XHRcdFx0b2Zmc2V0ICs9IHdyaXRlQ2hhcmFjdGVyKGJ1ZmZlciwgb2Zmc2V0LCBmdWxsQ29kZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRvZmZzZXQgKz0gd3JpdGVDaGFyYWN0ZXIoYnVmZmVyLCBvZmZzZXQsIGNvZGUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIG9mZnNldDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVN0cmluZyh2YWx1ZTogc3RyaW5nKTogVWludDhBcnJheSB7XHJcblx0Y29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoc3RyaW5nTGVuZ3RoSW5CeXRlcyh2YWx1ZSkpO1xyXG5cdGVuY29kZVN0cmluZ1RvKGJ1ZmZlciwgMCwgdmFsdWUpO1xyXG5cdHJldHVybiBidWZmZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbnRpbnVhdGlvbkJ5dGUoYnVmZmVyOiBVaW50OEFycmF5LCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcclxuXHRpZiAoaW5kZXggPj0gYnVmZmVyLmxlbmd0aCkge1xyXG5cdFx0dGhyb3cgRXJyb3IoJ0ludmFsaWQgYnl0ZSBpbmRleCcpO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgY29udGludWF0aW9uQnl0ZSA9IGJ1ZmZlcltpbmRleF07XHJcblxyXG5cdGlmICgoY29udGludWF0aW9uQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XHJcblx0XHRyZXR1cm4gY29udGludWF0aW9uQnl0ZSAmIDB4M0Y7XHJcblx0fSBlbHNlIHtcclxuXHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlU3RyaW5nKHZhbHVlOiBVaW50OEFycmF5KTogc3RyaW5nIHtcclxuXHRsZXQgcmVzdWx0ID0gJyc7XHJcblxyXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOykge1xyXG5cdFx0Y29uc3QgYnl0ZTEgPSB2YWx1ZVtpKytdO1xyXG5cdFx0bGV0IGNvZGU6IG51bWJlcjtcclxuXHJcblx0XHRpZiAoKGJ5dGUxICYgMHg4MCkgPT09IDApIHtcclxuXHRcdFx0Y29kZSA9IGJ5dGUxO1xyXG5cdFx0fSBlbHNlIGlmICgoYnl0ZTEgJiAweGUwKSA9PT0gMHhjMCkge1xyXG5cdFx0XHRjb25zdCBieXRlMiA9IGNvbnRpbnVhdGlvbkJ5dGUodmFsdWUsIGkrKyk7XHJcblx0XHRcdGNvZGUgPSAoKGJ5dGUxICYgMHgxZikgPDwgNikgfCBieXRlMjtcclxuXHJcblx0XHRcdGlmIChjb2RlIDwgMHg4MCkge1xyXG5cdFx0XHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoKGJ5dGUxICYgMHhmMCkgPT09IDB4ZTApIHtcclxuXHRcdFx0Y29uc3QgYnl0ZTIgPSBjb250aW51YXRpb25CeXRlKHZhbHVlLCBpKyspO1xyXG5cdFx0XHRjb25zdCBieXRlMyA9IGNvbnRpbnVhdGlvbkJ5dGUodmFsdWUsIGkrKyk7XHJcblx0XHRcdGNvZGUgPSAoKGJ5dGUxICYgMHgwZikgPDwgMTIpIHwgKGJ5dGUyIDw8IDYpIHwgYnl0ZTM7XHJcblxyXG5cdFx0XHRpZiAoY29kZSA8IDB4MDgwMCkge1xyXG5cdFx0XHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChjb2RlID49IDB4ZDgwMCAmJiBjb2RlIDw9IDB4ZGZmZikge1xyXG5cdFx0XHRcdHRocm93IEVycm9yKGBMb25lIHN1cnJvZ2F0ZSBVKyR7Y29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0gaXMgbm90IGEgc2NhbGFyIHZhbHVlYCk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoKGJ5dGUxICYgMHhmOCkgPT09IDB4ZjApIHtcclxuXHRcdFx0Y29uc3QgYnl0ZTIgPSBjb250aW51YXRpb25CeXRlKHZhbHVlLCBpKyspO1xyXG5cdFx0XHRjb25zdCBieXRlMyA9IGNvbnRpbnVhdGlvbkJ5dGUodmFsdWUsIGkrKyk7XHJcblx0XHRcdGNvbnN0IGJ5dGU0ID0gY29udGludWF0aW9uQnl0ZSh2YWx1ZSwgaSsrKTtcclxuXHRcdFx0Y29kZSA9ICgoYnl0ZTEgJiAweDBmKSA8PCAweDEyKSB8IChieXRlMiA8PCAweDBjKSB8IChieXRlMyA8PCAweDA2KSB8IGJ5dGU0O1xyXG5cclxuXHRcdFx0aWYgKGNvZGUgPCAweDAxMDAwMCB8fCBjb2RlID4gMHgxMGZmZmYpIHtcclxuXHRcdFx0XHR0aHJvdyBFcnJvcignSW52YWxpZCBjb250aW51YXRpb24gYnl0ZScpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aHJvdyBFcnJvcignSW52YWxpZCBVVEYtOCBkZXRlY3RlZCcpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb2RlID4gMHhmZmZmKSB7XHJcblx0XHRcdGNvZGUgLT0gMHgxMDAwMDtcclxuXHRcdFx0cmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSA+Pj4gMTAgJiAweDNmZiB8IDB4ZDgwMCk7XHJcblx0XHRcdGNvZGUgPSAweGRjMDAgfCBjb2RlICYgMHgzZmY7XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gcmVzdWx0O1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiQzpcXFByb2plY3RzXFxnaXRodWJcXGFnLXBzZFxcc3JjIn0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQzthQUN6RjtTQUNEO2FBQU0sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkMsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBRTVFLElBQUksSUFBSSxHQUFHLFFBQVEsSUFBSSxJQUFJLEdBQUcsUUFBUSxFQUFFO2dCQUN2QyxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Q7YUFBTTtZQUNOLE1BQU0sS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLElBQUksR0FBRyxNQUFNLEVBQUU7WUFDbEIsSUFBSSxJQUFJLE9BQU8sQ0FBQztZQUNoQixNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztZQUM1RCxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7U0FDN0I7UUFFRCxNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNwQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQW5ERCxvQ0FtREMiLCJmaWxlIjoidXRmOC5qcyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGNoYXJMZW5ndGhJbkJ5dGVzKGNvZGU6IG51bWJlcik6IG51bWJlciB7XHJcblx0aWYgKChjb2RlICYgMHhmZmZmZmY4MCkgPT09IDApIHtcclxuXHRcdHJldHVybiAxO1xyXG5cdH0gZWxzZSBpZiAoKGNvZGUgJiAweGZmZmZmODAwKSA9PT0gMCkge1xyXG5cdFx0cmV0dXJuIDI7XHJcblx0fSBlbHNlIGlmICgoY29kZSAmIDB4ZmZmZjAwMDApID09PSAwKSB7XHJcblx0XHRyZXR1cm4gMztcclxuXHR9IGVsc2Uge1xyXG5cdFx0cmV0dXJuIDQ7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nTGVuZ3RoSW5CeXRlcyh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuXHRsZXQgcmVzdWx0ID0gMDtcclxuXHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y29uc3QgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcblxyXG5cdFx0Ly8gaGlnaCBzdXJyb2dhdGVcclxuXHRcdGlmIChjb2RlID49IDB4ZDgwMCAmJiBjb2RlIDw9IDB4ZGJmZikge1xyXG5cdFx0XHRpZiAoKGkgKyAxKSA8IHZhbHVlLmxlbmd0aCkge1xyXG5cdFx0XHRcdGNvbnN0IGV4dHJhID0gdmFsdWUuY2hhckNvZGVBdChpICsgMSk7XHJcblxyXG5cdFx0XHRcdC8vIGxvdyBzdXJyb2dhdGVcclxuXHRcdFx0XHRpZiAoKGV4dHJhICYgMHhmYzAwKSA9PT0gMHhkYzAwKSB7XHJcblx0XHRcdFx0XHRpKys7XHJcblx0XHRcdFx0XHRyZXN1bHQgKz0gY2hhckxlbmd0aEluQnl0ZXMoKChjb2RlICYgMHgzZmYpIDw8IDEwKSArIChleHRyYSAmIDB4M2ZmKSArIDB4MTAwMDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmVzdWx0ICs9IGNoYXJMZW5ndGhJbkJ5dGVzKGNvZGUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gd3JpdGVDaGFyYWN0ZXIoYnVmZmVyOiBVaW50OEFycmF5IHwgQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgY29kZTogbnVtYmVyKTogbnVtYmVyIHtcclxuXHRjb25zdCBsZW5ndGggPSBjaGFyTGVuZ3RoSW5CeXRlcyhjb2RlKTtcclxuXHJcblx0c3dpdGNoIChsZW5ndGgpIHtcclxuXHRcdGNhc2UgMTpcclxuXHRcdFx0YnVmZmVyW29mZnNldF0gPSBjb2RlO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgMjpcclxuXHRcdFx0YnVmZmVyW29mZnNldF0gPSAoKGNvZGUgPj4gNikgJiAweDFmKSB8IDB4YzA7XHJcblx0XHRcdGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChjb2RlICYgMHgzZikgfCAweDgwO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgMzpcclxuXHRcdFx0YnVmZmVyW29mZnNldF0gPSAoKGNvZGUgPj4gMTIpICYgMHgwZikgfCAweGUwO1xyXG5cdFx0XHRidWZmZXJbb2Zmc2V0ICsgMV0gPSAoKGNvZGUgPj4gNikgJiAweDNmKSB8IDB4ODA7XHJcblx0XHRcdGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChjb2RlICYgMHgzZikgfCAweDgwO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGRlZmF1bHQ6XHJcblx0XHRcdGJ1ZmZlcltvZmZzZXRdID0gKChjb2RlID4+IDE4KSAmIDB4MDcpIHwgMHhmMDtcclxuXHRcdFx0YnVmZmVyW29mZnNldCArIDFdID0gKChjb2RlID4+IDEyKSAmIDB4M2YpIHwgMHg4MDtcclxuXHRcdFx0YnVmZmVyW29mZnNldCArIDJdID0gKChjb2RlID4+IDYpICYgMHgzZikgfCAweDgwO1xyXG5cdFx0XHRidWZmZXJbb2Zmc2V0ICsgM10gPSAoY29kZSAmIDB4M2YpIHwgMHg4MDtcclxuXHRcdFx0YnJlYWs7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gbGVuZ3RoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlU3RyaW5nVG8oYnVmZmVyOiBVaW50OEFycmF5IHwgQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IG51bWJlciB7XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y29uc3QgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcblxyXG5cdFx0Ly8gaGlnaCBzdXJyb2dhdGVcclxuXHRcdGlmIChjb2RlID49IDB4ZDgwMCAmJiBjb2RlIDw9IDB4ZGJmZikge1xyXG5cdFx0XHRpZiAoKGkgKyAxKSA8IHZhbHVlLmxlbmd0aCkge1xyXG5cdFx0XHRcdGNvbnN0IGV4dHJhID0gdmFsdWUuY2hhckNvZGVBdChpICsgMSk7XHJcblxyXG5cdFx0XHRcdC8vIGxvdyBzdXJyb2dhdGVcclxuXHRcdFx0XHRpZiAoKGV4dHJhICYgMHhmYzAwKSA9PT0gMHhkYzAwKSB7XHJcblx0XHRcdFx0XHRpKys7XHJcblx0XHRcdFx0XHRjb25zdCBmdWxsQ29kZSA9ICgoY29kZSAmIDB4M2ZmKSA8PCAxMCkgKyAoZXh0cmEgJiAweDNmZikgKyAweDEwMDAwO1xyXG5cdFx0XHRcdFx0b2Zmc2V0ICs9IHdyaXRlQ2hhcmFjdGVyKGJ1ZmZlciwgb2Zmc2V0LCBmdWxsQ29kZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRvZmZzZXQgKz0gd3JpdGVDaGFyYWN0ZXIoYnVmZmVyLCBvZmZzZXQsIGNvZGUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIG9mZnNldDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVN0cmluZyh2YWx1ZTogc3RyaW5nKTogVWludDhBcnJheSB7XHJcblx0Y29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoc3RyaW5nTGVuZ3RoSW5CeXRlcyh2YWx1ZSkpO1xyXG5cdGVuY29kZVN0cmluZ1RvKGJ1ZmZlciwgMCwgdmFsdWUpO1xyXG5cdHJldHVybiBidWZmZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbnRpbnVhdGlvbkJ5dGUoYnVmZmVyOiBVaW50OEFycmF5LCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcclxuXHRpZiAoaW5kZXggPj0gYnVmZmVyLmxlbmd0aCkge1xyXG5cdFx0dGhyb3cgRXJyb3IoJ0ludmFsaWQgYnl0ZSBpbmRleCcpO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgY29udGludWF0aW9uQnl0ZSA9IGJ1ZmZlcltpbmRleF07XHJcblxyXG5cdGlmICgoY29udGludWF0aW9uQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XHJcblx0XHRyZXR1cm4gY29udGludWF0aW9uQnl0ZSAmIDB4M0Y7XHJcblx0fSBlbHNlIHtcclxuXHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlU3RyaW5nKHZhbHVlOiBVaW50OEFycmF5KTogc3RyaW5nIHtcclxuXHRsZXQgcmVzdWx0ID0gJyc7XHJcblxyXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOykge1xyXG5cdFx0Y29uc3QgYnl0ZTEgPSB2YWx1ZVtpKytdO1xyXG5cdFx0bGV0IGNvZGU6IG51bWJlcjtcclxuXHJcblx0XHRpZiAoKGJ5dGUxICYgMHg4MCkgPT09IDApIHtcclxuXHRcdFx0Y29kZSA9IGJ5dGUxO1xyXG5cdFx0fSBlbHNlIGlmICgoYnl0ZTEgJiAweGUwKSA9PT0gMHhjMCkge1xyXG5cdFx0XHRjb25zdCBieXRlMiA9IGNvbnRpbnVhdGlvbkJ5dGUodmFsdWUsIGkrKyk7XHJcblx0XHRcdGNvZGUgPSAoKGJ5dGUxICYgMHgxZikgPDwgNikgfCBieXRlMjtcclxuXHJcblx0XHRcdGlmIChjb2RlIDwgMHg4MCkge1xyXG5cdFx0XHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoKGJ5dGUxICYgMHhmMCkgPT09IDB4ZTApIHtcclxuXHRcdFx0Y29uc3QgYnl0ZTIgPSBjb250aW51YXRpb25CeXRlKHZhbHVlLCBpKyspO1xyXG5cdFx0XHRjb25zdCBieXRlMyA9IGNvbnRpbnVhdGlvbkJ5dGUodmFsdWUsIGkrKyk7XHJcblx0XHRcdGNvZGUgPSAoKGJ5dGUxICYgMHgwZikgPDwgMTIpIHwgKGJ5dGUyIDw8IDYpIHwgYnl0ZTM7XHJcblxyXG5cdFx0XHRpZiAoY29kZSA8IDB4MDgwMCkge1xyXG5cdFx0XHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChjb2RlID49IDB4ZDgwMCAmJiBjb2RlIDw9IDB4ZGZmZikge1xyXG5cdFx0XHRcdHRocm93IEVycm9yKGBMb25lIHN1cnJvZ2F0ZSBVKyR7Y29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0gaXMgbm90IGEgc2NhbGFyIHZhbHVlYCk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoKGJ5dGUxICYgMHhmOCkgPT09IDB4ZjApIHtcclxuXHRcdFx0Y29uc3QgYnl0ZTIgPSBjb250aW51YXRpb25CeXRlKHZhbHVlLCBpKyspO1xyXG5cdFx0XHRjb25zdCBieXRlMyA9IGNvbnRpbnVhdGlvbkJ5dGUodmFsdWUsIGkrKyk7XHJcblx0XHRcdGNvbnN0IGJ5dGU0ID0gY29udGludWF0aW9uQnl0ZSh2YWx1ZSwgaSsrKTtcclxuXHRcdFx0Y29kZSA9ICgoYnl0ZTEgJiAweDBmKSA8PCAweDEyKSB8IChieXRlMiA8PCAweDBjKSB8IChieXRlMyA8PCAweDA2KSB8IGJ5dGU0O1xyXG5cclxuXHRcdFx0aWYgKGNvZGUgPCAweDAxMDAwMCB8fCBjb2RlID4gMHgxMGZmZmYpIHtcclxuXHRcdFx0XHR0aHJvdyBFcnJvcignSW52YWxpZCBjb250aW51YXRpb24gYnl0ZScpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aHJvdyBFcnJvcignSW52YWxpZCBVVEYtOCBkZXRlY3RlZCcpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb2RlID4gMHhmZmZmKSB7XHJcblx0XHRcdGNvZGUgLT0gMHgxMDAwMDtcclxuXHRcdFx0cmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSA+Pj4gMTAgJiAweDNmZiB8IDB4ZDgwMCk7XHJcblx0XHRcdGNvZGUgPSAweGRjMDAgfCBjb2RlICYgMHgzZmY7XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gcmVzdWx0O1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiQzpcXFByb2plY3RzXFxnaXRodWJcXGFnLXBzZFxcc3JjIn0=
|
package/dist-es/abr.js
CHANGED
|
@@ -36,7 +36,7 @@ export function readAbr(buffer, options) {
|
|
|
36
36
|
var brushes = [];
|
|
37
37
|
var patterns = [];
|
|
38
38
|
if (version === 1 || version === 2) {
|
|
39
|
-
throw new Error("Unsupported ABR version ("
|
|
39
|
+
throw new Error("Unsupported ABR version (".concat(version, ")")); // TODO: ...
|
|
40
40
|
}
|
|
41
41
|
else if (version === 6 || version === 7 || version === 9 || version === 10) {
|
|
42
42
|
var minorVersion = readInt16(reader);
|
|
@@ -240,7 +240,7 @@ export function readAbr(buffer, options) {
|
|
|
240
240
|
break;
|
|
241
241
|
}
|
|
242
242
|
default:
|
|
243
|
-
throw new Error("Invalid brush type: "
|
|
243
|
+
throw new Error("Invalid brush type: ".concat(type));
|
|
244
244
|
}
|
|
245
245
|
// align to 4 bytes
|
|
246
246
|
while (size % 4) {
|
|
@@ -250,9 +250,9 @@ export function readAbr(buffer, options) {
|
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
252
|
else {
|
|
253
|
-
throw new Error("Unsupported ABR version ("
|
|
253
|
+
throw new Error("Unsupported ABR version (".concat(version, ")"));
|
|
254
254
|
}
|
|
255
255
|
return { samples: samples, patterns: patterns, brushes: brushes };
|
|
256
256
|
}
|
|
257
257
|
|
|
258
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFici50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUF3QixVQUFVLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWxJLE9BQU8sRUFDTixjQUFjLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQ3pHLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQzNELE1BQU0sYUFBYSxDQUFDO0FBcUJyQixJQUFNLGVBQWUsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBeU90SixTQUFTLGFBQWEsQ0FBQyxJQUF3QjtJQUM5QyxPQUFPO1FBQ04sT0FBTyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFRO1FBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNoQixNQUFNLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDakMsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDbkMsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUEwQjtJQUNsRCxJQUFNLEtBQUssR0FBZTtRQUN6QixJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7UUFDN0MsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLFNBQVMsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDcEIsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7S0FDakIsQ0FBQztJQUVGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLElBQUksSUFBSSxDQUFDLElBQUk7UUFBRSxLQUFLLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsSUFBSSxJQUFJLENBQUMsV0FBVztRQUFFLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUUzRCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLE1BQXVCLEVBQUUsT0FBK0M7O0lBQS9DLHdCQUFBLEVBQUEsWUFBK0M7SUFDL0YsSUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakYsSUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLElBQU0sT0FBTyxHQUFpQixFQUFFLENBQUM7SUFDakMsSUFBTSxPQUFPLEdBQVksRUFBRSxDQUFDO0lBQzVCLElBQU0sUUFBUSxHQUFrQixFQUFFLENBQUM7SUFFbkMsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBNEIsT0FBTyxNQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVk7S0FDckU7U0FBTSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUU7UUFDN0UsSUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksWUFBWSxLQUFLLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUUvRixPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDOUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQixJQUFNLElBQUksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFzQyxDQUFDO1lBQ3hFLElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixJQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUVqQyxRQUFRLElBQUksRUFBRTtnQkFDYixLQUFLLE1BQU0sQ0FBQyxDQUFDO29CQUNaLE9BQU8sTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7d0JBQzNCLElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDckMsT0FBTyxXQUFXLEdBQUcsQ0FBSTs0QkFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjt3QkFDcEUsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7d0JBRTdDLElBQU0sRUFBRSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFFdkMsOERBQThEO3dCQUM5RCwrQkFBK0I7d0JBQy9CLFNBQVMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFFakQsSUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUM1QixJQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzVCLElBQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2hDLElBQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs0QkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7d0JBRXhELElBQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDaEMsSUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUJBQW1CO3dCQUMxRCxJQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBRXBDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTs0QkFDaEIsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFO2dDQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7NkJBQy9DO2lDQUFNLElBQUksV0FBVyxLQUFLLENBQUMsRUFBRTtnQ0FDN0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzs2QkFDL0U7aUNBQU07Z0NBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDOzZCQUN2Qzt5QkFDRDs2QkFBTSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7NEJBQ3hCLElBQUksV0FBVyxLQUFLLENBQUMsRUFBRTtnQ0FDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0NBQzFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMseUJBQXlCO2lDQUM3RDs2QkFDRDtpQ0FBTSxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUU7Z0NBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLFlBQVk7NkJBQzVEO2lDQUFNO2dDQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQzs2QkFDdkM7eUJBQ0Q7NkJBQU07NEJBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQzt5QkFDakM7d0JBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBQSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBQSxFQUFFLENBQUMsR0FBQSxFQUFFLENBQUMsR0FBQSxFQUFFLENBQUMsR0FBQSxFQUFFLEVBQUUsS0FBSyxPQUFBLEVBQUUsQ0FBQyxDQUFDO3dCQUNwRCxNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztxQkFDekI7b0JBQ0QsTUFBTTtpQkFDTjtnQkFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDO29CQUNaLElBQU0sSUFBSSxHQUFtQix3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDOUQsK0RBQStEO29CQUUvRCxLQUFvQixVQUFTLEVBQVQsS0FBQSxJQUFJLENBQUMsSUFBSSxFQUFULGNBQVMsRUFBVCxJQUFTLEVBQUU7d0JBQTFCLElBQU0sS0FBSyxTQUFBO3dCQUNmLElBQU0sQ0FBQyxHQUFVOzRCQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQzs0QkFDbkIsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzRCQUNsQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7NEJBQ2pDLHVCQUF1Qjs0QkFDdkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJOzRCQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUk7NEJBQ2pCLHdDQUF3Qzs0QkFDeEMsbUJBQW1COzRCQUNuQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxNQUFNO3lCQUN4QyxDQUFDO3dCQUVGLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJOzRCQUFFLENBQUMsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQzt3QkFDMUUsSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUk7NEJBQUUsQ0FBQyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO3dCQUUxRSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7NEJBQ3pCLENBQUMsQ0FBQyxhQUFhLEdBQUc7Z0NBQ2pCLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztnQ0FDeEMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dDQUN2QyxhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0NBQ2pELGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7Z0NBQ3pELEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQ0FDbEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dDQUNsQixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7Z0NBQ3RDLGVBQWUsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztnQ0FDcEQsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQzs2QkFDdEQsQ0FBQzt5QkFDRjt3QkFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7NEJBQ3JCLENBQUMsQ0FBQyxPQUFPLEdBQUc7Z0NBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0NBQ3BCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQ0FDeEIsYUFBYSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO2dDQUNqRCxlQUFlLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7NkJBQ3JELENBQUM7eUJBQ0Y7d0JBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7NEJBQ25DLENBQUMsQ0FBQyxPQUFPLEdBQUc7Z0NBQ1gsRUFBRSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSTtnQ0FDbkIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dDQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7Z0NBQzlDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQ0FDdkMsWUFBWSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dDQUM5QyxhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztnQ0FDeEQsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dDQUN2QyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0NBQ2xCLFVBQVUsRUFBRSxLQUFLLENBQUMsaUJBQWlCO2dDQUNuQyxRQUFRLEVBQUUsS0FBSyxDQUFDLGVBQWU7NkJBQy9CLENBQUM7eUJBQ0Y7d0JBRUQsSUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQzt3QkFDM0IsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRTs0QkFDMUIsQ0FBQyxDQUFDLFNBQVMsR0FBRztnQ0FDYixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7Z0NBQ2IsS0FBSyxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dDQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dDQUMvQixVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVU7Z0NBQ3pCLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnQ0FDOUIsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0NBQ2pCLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUTtnQ0FDckIsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO2dDQUM5QyxlQUFlLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUM7NkJBQ2xELENBQUM7eUJBQ0Y7d0JBRUQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7NEJBQzNCLENBQUMsQ0FBQyxhQUFhLEdBQUc7Z0NBQ2pCLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDO2dDQUNoRCxHQUFHLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUUsQ0FBQztnQ0FDakMsVUFBVSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDO2dDQUNyQyxVQUFVLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFLLENBQUM7Z0NBQ3JDLE1BQU0sRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU8sQ0FBQztnQ0FDbkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxtQkFBb0I7NkJBQ2xDLENBQUM7eUJBQ0Y7d0JBRUQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7NEJBQzNCLENBQUMsQ0FBQyxRQUFRLEdBQUc7Z0NBQ1osWUFBWSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDO2dDQUN4QyxlQUFlLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFLLENBQUM7Z0NBQzNDLGVBQWUsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQztnQ0FDM0MsV0FBVyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDOzZCQUN2QyxDQUFDO3lCQUNGO3dCQUVELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTs0QkFDdkIsQ0FBQyxDQUFDLFNBQVMsR0FBRztnQ0FDYixhQUFhLEVBQUUsS0FBSyxDQUFDLGlCQUFrQjtnQ0FDdkMsYUFBYSxFQUFFLEtBQUssQ0FBQyxpQkFBa0I7Z0NBQ3ZDLGFBQWEsRUFBRSxLQUFLLENBQUMsaUJBQWtCO2dDQUN2QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsb0JBQXFCO2dDQUM3QyxRQUFRLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxpQkFBa0IsQ0FBQztnQ0FDaEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxjQUFlO2dDQUM1QixLQUFLLEVBQUUsS0FBSyxDQUFDLGNBQWU7Z0NBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsY0FBZTs2QkFDNUIsQ0FBQzt5QkFDRjt3QkFFRCxJQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO3dCQUM3QixJQUFJLEVBQUUsRUFBRTs0QkFDUCxDQUFDLENBQUMsV0FBVyxHQUFHO2dDQUNmLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVztnQ0FDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJO2dDQUNiLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTtnQ0FDZixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQzdCLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSTtnQ0FDaEIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTO2dDQUN2QixjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWM7Z0NBQ2pDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUI7Z0NBQzNDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7Z0NBQ3JDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxxQkFBcUI7Z0NBQy9DLHlCQUF5QixFQUFFLEVBQUUsQ0FBQyx5QkFBeUI7Z0NBQ3ZELGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxpQkFBaUI7Z0NBQ3ZDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyx3QkFBd0I7Z0NBQ3JELDJCQUEyQixFQUFFLEVBQUUsQ0FBQywyQkFBMkI7Z0NBQzNELFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUzs2QkFDdkIsQ0FBQzt5QkFDRjt3QkFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNoQjtvQkFDRCxNQUFNO2lCQUNOO2dCQUNELEtBQUssTUFBTSxDQUFDLENBQUM7b0JBQ1osSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFFLGdDQUFnQzt3QkFDMUQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt3QkFDbkMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7cUJBQ3BCO29CQUNELE1BQU07aUJBQ047Z0JBQ0QsS0FBSyxNQUFNLENBQUMsQ0FBQztvQkFDWix1QkFBdUI7b0JBQ3ZCLElBQU0sSUFBSSxHQUFtQix3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7d0JBQy9CLElBQUksTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxNQUFNLEVBQUU7NEJBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7eUJBQzVDO3FCQUNEO29CQUNELE1BQU07aUJBQ047Z0JBQ0Q7b0JBQ0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBdUIsSUFBTSxDQUFDLENBQUM7YUFDaEQ7WUFFRCxtQkFBbUI7WUFDbkIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksRUFBRSxDQUFDO2FBQ1A7U0FDRDtLQUNEO1NBQU07UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE0QixPQUFPLE1BQUcsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsT0FBTyxFQUFFLE9BQU8sU0FBQSxFQUFFLFFBQVEsVUFBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUM7QUFDdkMsQ0FBQyIsImZpbGUiOiJhYnIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCbG5NLCBEZXNjcmlwdG9yVW5pdHNWYWx1ZSwgcGFyc2VBbmdsZSwgcGFyc2VQZXJjZW50LCBwYXJzZVVuaXRzVG9OdW1iZXIsIHJlYWRWZXJzaW9uQW5kRGVzY3JpcHRvciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XHJcbmltcG9ydCB7IEJsZW5kTW9kZSwgUGF0dGVybkluZm8gfSBmcm9tICcuL3BzZCc7XHJcbmltcG9ydCB7XHJcblx0Y2hlY2tTaWduYXR1cmUsIGNyZWF0ZVJlYWRlciwgcmVhZEJ5dGVzLCByZWFkRGF0YVJMRSwgcmVhZEludDE2LCByZWFkSW50MzIsIHJlYWRQYXNjYWxTdHJpbmcsIHJlYWRQYXR0ZXJuLFxyXG5cdHJlYWRTaWduYXR1cmUsIHJlYWRVaW50MTYsIHJlYWRVaW50MzIsIHJlYWRVaW50OCwgc2tpcEJ5dGVzXHJcbn0gZnJvbSAnLi9wc2RSZWFkZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBYnIge1xyXG5cdGJydXNoZXM6IEJydXNoW107XHJcblx0c2FtcGxlczogU2FtcGxlSW5mb1tdO1xyXG5cdHBhdHRlcm5zOiBQYXR0ZXJuSW5mb1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNhbXBsZUluZm8ge1xyXG5cdGlkOiBzdHJpbmc7XHJcblx0Ym91bmRzOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3OiBudW1iZXI7IGg6IG51bWJlcjsgfTtcclxuXHRhbHBoYTogVWludDhBcnJheTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCcnVzaER5bmFtaWNzIHtcclxuXHRjb250cm9sOiAnb2ZmJyB8ICdmYWRlJyB8ICdwZW4gcHJlc3N1cmUnIHwgJ3BlbiB0aWx0JyB8ICdzdHlsdXMgd2hlZWwnIHwgJ2luaXRpYWwgZGlyZWN0aW9uJyB8ICdkaXJlY3Rpb24nIHwgJ2luaXRpYWwgcm90YXRpb24nIHwgJ3JvdGF0aW9uJztcclxuXHRzdGVwczogbnVtYmVyOyAvLyBmb3IgZmFkZVxyXG5cdGppdHRlcjogbnVtYmVyO1xyXG5cdG1pbmltdW06IG51bWJlcjtcclxufVxyXG5cclxuY29uc3QgZHluYW1pY3NDb250cm9sID0gWydvZmYnLCAnZmFkZScsICdwZW4gcHJlc3N1cmUnLCAncGVuIHRpbHQnLCAnc3R5bHVzIHdoZWVsJywgJ2luaXRpYWwgZGlyZWN0aW9uJywgJ2RpcmVjdGlvbicsICdpbml0aWFsIHJvdGF0aW9uJywgJ3JvdGF0aW9uJ107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJydXNoU2hhcGUge1xyXG5cdG5hbWU/OiBzdHJpbmc7XHJcblx0c2l6ZTogbnVtYmVyO1xyXG5cdGFuZ2xlOiBudW1iZXI7XHJcblx0cm91bmRuZXNzOiBudW1iZXI7XHJcblx0aGFyZG5lc3M/OiBudW1iZXI7XHJcblx0c3BhY2luZ09uOiBib29sZWFuO1xyXG5cdHNwYWNpbmc6IG51bWJlcjtcclxuXHRmbGlwWDogYm9vbGVhbjtcclxuXHRmbGlwWTogYm9vbGVhbjtcclxuXHRzYW1wbGVkRGF0YT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCcnVzaCB7XHJcblx0bmFtZTogc3RyaW5nO1xyXG5cdHNoYXBlOiBCcnVzaFNoYXBlO1xyXG5cdHNoYXBlRHluYW1pY3M/OiB7XHJcblx0XHRzaXplRHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0XHRtaW5pbXVtRGlhbWV0ZXI6IG51bWJlcjtcclxuXHRcdHRpbHRTY2FsZTogbnVtYmVyO1xyXG5cdFx0YW5nbGVEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdHJvdW5kbmVzc0R5bmFtaWNzOiBCcnVzaER5bmFtaWNzO1xyXG5cdFx0bWluaW11bVJvdW5kbmVzczogbnVtYmVyO1xyXG5cdFx0ZmxpcFg6IGJvb2xlYW47XHJcblx0XHRmbGlwWTogYm9vbGVhbjtcclxuXHRcdGJydXNoUHJvamVjdGlvbjogYm9vbGVhbjtcclxuXHR9O1xyXG5cdHNjYXR0ZXI/OiB7XHJcblx0XHRib3RoQXhlczogYm9vbGVhbjtcclxuXHRcdHNjYXR0ZXJEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdGNvdW50RHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0XHRjb3VudDogbnVtYmVyO1xyXG5cdH07XHJcblx0dGV4dHVyZT86IHtcclxuXHRcdGlkOiBzdHJpbmc7XHJcblx0XHRuYW1lOiBzdHJpbmc7XHJcblx0XHRpbnZlcnQ6IGJvb2xlYW47XHJcblx0XHRzY2FsZTogbnVtYmVyO1xyXG5cdFx0YnJpZ2h0bmVzczogbnVtYmVyO1xyXG5cdFx0Y29udHJhc3Q6IG51bWJlcjtcclxuXHRcdGJsZW5kTW9kZTogQmxlbmRNb2RlO1xyXG5cdFx0ZGVwdGg6IG51bWJlcjtcclxuXHRcdGRlcHRoTWluaW11bTogbnVtYmVyO1xyXG5cdFx0ZGVwdGhEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHR9O1xyXG5cdGR1YWxCcnVzaD86IHtcclxuXHRcdGZsaXA6IGJvb2xlYW47XHJcblx0XHRzaGFwZTogQnJ1c2hTaGFwZTtcclxuXHRcdGJsZW5kTW9kZTogQmxlbmRNb2RlO1xyXG5cdFx0dXNlU2NhdHRlcjogYm9vbGVhbjtcclxuXHRcdHNwYWNpbmc6IG51bWJlcjtcclxuXHRcdGNvdW50OiBudW1iZXI7XHJcblx0XHRib3RoQXhlczogYm9vbGVhbjtcclxuXHRcdGNvdW50RHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0XHRzY2F0dGVyRHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0fTtcclxuXHRjb2xvckR5bmFtaWNzPzoge1xyXG5cdFx0Zm9yZWdyb3VuZEJhY2tncm91bmQ6IEJydXNoRHluYW1pY3M7XHJcblx0XHRodWU6IG51bWJlcjtcclxuXHRcdHNhdHVyYXRpb246IG51bWJlcjtcclxuXHRcdGJyaWdodG5lc3M6IG51bWJlcjtcclxuXHRcdHB1cml0eTogbnVtYmVyO1xyXG5cdFx0cGVyVGlwOiBib29sZWFuO1xyXG5cdH07XHJcblx0dHJhbnNmZXI/OiB7XHJcblx0XHRmbG93RHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0XHRvcGFjaXR5RHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0XHR3ZXRuZXNzRHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0XHRtaXhEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHR9O1xyXG5cdGJydXNoUG9zZT86IHtcclxuXHRcdG92ZXJyaWRlQW5nbGU6IGJvb2xlYW47XHJcblx0XHRvdmVycmlkZVRpbHRYOiBib29sZWFuO1xyXG5cdFx0b3ZlcnJpZGVUaWx0WTogYm9vbGVhbjtcclxuXHRcdG92ZXJyaWRlUHJlc3N1cmU6IGJvb2xlYW47XHJcblx0XHRwcmVzc3VyZTogbnVtYmVyO1xyXG5cdFx0dGlsdFg6IG51bWJlcjtcclxuXHRcdHRpbHRZOiBudW1iZXI7XHJcblx0XHRhbmdsZTogbnVtYmVyO1xyXG5cdH07XHJcblx0bm9pc2U6IGJvb2xlYW47XHJcblx0d2V0RWRnZXM6IGJvb2xlYW47XHJcblx0Ly8gVE9ETzogYnVpbGQtdXBcclxuXHQvLyBUT0RPOiBzbW9vdGhpbmdcclxuXHRwcm90ZWN0VGV4dHVyZT86IGJvb2xlYW47XHJcblx0c3BhY2luZzogbnVtYmVyO1xyXG5cdGJydXNoR3JvdXA/OiB1bmRlZmluZWQ7IC8vID9cclxuXHRpbnRlcnByZXRhdGlvbj86IGJvb2xlYW47IC8vID9cclxuXHR1c2VCcnVzaFNpemU6IGJvb2xlYW47IC8vID9cclxuXHR0b29sT3B0aW9ucz86IHtcclxuXHRcdGJydXNoUHJlc2V0OiBib29sZWFuO1xyXG5cdFx0ZmxvdzogbnVtYmVyO1xyXG5cdFx0c21vb3RoOiBudW1iZXI7IC8vID9cclxuXHRcdG1vZGU6IEJsZW5kTW9kZTtcclxuXHRcdG9wYWNpdHk6IG51bWJlcjtcclxuXHRcdHNtb290aGluZzogYm9vbGVhbjtcclxuXHRcdHNtb290aGluZ1ZhbHVlOiBudW1iZXI7XHJcblx0XHRzbW9vdGhpbmdSYWRpdXNNb2RlOiBib29sZWFuO1xyXG5cdFx0c21vb3RoaW5nQ2F0Y2h1cDogYm9vbGVhbjtcclxuXHRcdHNtb290aGluZ0NhdGNodXBBdEVuZDogYm9vbGVhbjtcclxuXHRcdHNtb290aGluZ1pvb21Db21wZW5zYXRpb246IGJvb2xlYW47XHJcblx0XHRwcmVzc3VyZVNtb290aGluZzogYm9vbGVhbjtcclxuXHRcdHVzZVByZXNzdXJlT3ZlcnJpZGVzU2l6ZTogYm9vbGVhbjtcclxuXHRcdHVzZVByZXNzdXJlT3ZlcnJpZGVzT3BhY2l0eTogYm9vbGVhbjtcclxuXHRcdHVzZUxlZ2FjeTogYm9vbGVhbjtcclxuXHR9O1xyXG59XHJcblxyXG4vLyBpbnRlcm5hbFxyXG5cclxuaW50ZXJmYWNlIFBocnlEZXNjcmlwdG9yIHtcclxuXHRoaWVyYXJjaHk6ICh7fSB8IHtcclxuXHRcdCdObSAgJzogc3RyaW5nO1xyXG5cdFx0enVpZDogc3RyaW5nO1xyXG5cdH0pW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBEeW5hbWljc0Rlc2NyaXB0b3Ige1xyXG5cdGJWVHk6IG51bWJlcjtcclxuXHRmU3RwOiBudW1iZXI7XHJcblx0aml0dGVyOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHQnTW5tICc6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQnJ1c2hTaGFwZURlc2NyaXB0b3Ige1xyXG5cdERtdHI6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdEFuZ2w6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFJuZG46IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdCdObSAgJz86IHN0cmluZztcclxuXHRTcGNuOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRJbnRyOiBib29sZWFuO1xyXG5cdEhyZG4/OiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRmbGlwWDogYm9vbGVhbjtcclxuXHRmbGlwWTogYm9vbGVhbjtcclxuXHRzYW1wbGVkRGF0YT86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIERlc2NEZXNjcmlwdG9yIHtcclxuXHRCcnNoOiB7XHJcblx0XHQnTm0gICc6IHN0cmluZztcclxuXHRcdEJyc2g6IEJydXNoU2hhcGVEZXNjcmlwdG9yO1xyXG5cdFx0dXNlVGlwRHluYW1pY3M6IGJvb2xlYW47XHJcblx0XHRmbGlwWDogYm9vbGVhbjtcclxuXHRcdGZsaXBZOiBib29sZWFuO1xyXG5cdFx0YnJ1c2hQcm9qZWN0aW9uOiBib29sZWFuO1xyXG5cdFx0bWluaW11bURpYW1ldGVyOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdG1pbmltdW1Sb3VuZG5lc3M6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0dGlsdFNjYWxlOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdHN6VnI6IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdGFuZ2xlRHluYW1pY3M6IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdHJvdW5kbmVzc0R5bmFtaWNzOiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHR1c2VTY2F0dGVyOiBib29sZWFuO1xyXG5cdFx0U3BjbjogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHQnQ250ICc6IG51bWJlcjtcclxuXHRcdGJvdGhBeGVzOiBib29sZWFuO1xyXG5cdFx0Y291bnREeW5hbWljczogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0c2NhdHRlckR5bmFtaWNzOiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHRkdWFsQnJ1c2g6IHsgdXNlRHVhbEJydXNoOiBmYWxzZTsgfSB8IHtcclxuXHRcdFx0dXNlRHVhbEJydXNoOiB0cnVlO1xyXG5cdFx0XHRGbGlwOiBib29sZWFuO1xyXG5cdFx0XHRCcnNoOiBCcnVzaFNoYXBlRGVzY3JpcHRvcjtcclxuXHRcdFx0QmxuTTogc3RyaW5nO1xyXG5cdFx0XHR1c2VTY2F0dGVyOiBib29sZWFuO1xyXG5cdFx0XHRTcGNuOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdFx0J0NudCAnOiBudW1iZXI7XHJcblx0XHRcdGJvdGhBeGVzOiBib29sZWFuO1xyXG5cdFx0XHRjb3VudER5bmFtaWNzOiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHRcdHNjYXR0ZXJEeW5hbWljczogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0fTtcclxuXHRcdGJydXNoR3JvdXA6IHsgdXNlQnJ1c2hHcm91cDogZmFsc2U7IH07XHJcblx0XHR1c2VUZXh0dXJlOiBib29sZWFuO1xyXG5cdFx0VHh0QzogYm9vbGVhbjtcclxuXHRcdGludGVycHJldGF0aW9uOiBib29sZWFuO1xyXG5cdFx0dGV4dHVyZUJsZW5kTW9kZTogc3RyaW5nO1xyXG5cdFx0dGV4dHVyZURlcHRoOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdG1pbmltdW1EZXB0aDogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHR0ZXh0dXJlRGVwdGhEeW5hbWljczogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0VHh0cj86IHtcclxuXHRcdFx0J05tICAnOiBzdHJpbmc7XHJcblx0XHRcdElkbnQ6IHN0cmluZztcclxuXHRcdH07XHJcblx0XHR0ZXh0dXJlU2NhbGU6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0SW52VDogYm9vbGVhbjtcclxuXHRcdHByb3RlY3RUZXh0dXJlOiBib29sZWFuO1xyXG5cdFx0dGV4dHVyZUJyaWdodG5lc3M6IG51bWJlcjtcclxuXHRcdHRleHR1cmVDb250cmFzdDogbnVtYmVyO1xyXG5cdFx0dXNlUGFpbnREeW5hbWljczogYm9vbGVhbjtcclxuXHRcdHByVnI/OiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHRvcFZyPzogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0d3RWcj86IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdG14VnI/OiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHR1c2VDb2xvckR5bmFtaWNzOiBib29sZWFuO1xyXG5cdFx0Y2xWcj86IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdCdIICAgJz86IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0U3RydD86IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0QnJnaD86IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0cHVyaXR5PzogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHRjb2xvckR5bmFtaWNzUGVyVGlwPzogdHJ1ZTtcclxuXHRcdFd0ZGc6IGJvb2xlYW47XHJcblx0XHROb3NlOiBib29sZWFuO1xyXG5cdFx0J1JwdCAnOiBib29sZWFuO1xyXG5cdFx0dXNlQnJ1c2hTaXplOiBib29sZWFuO1xyXG5cdFx0dXNlQnJ1c2hQb3NlOiBib29sZWFuO1xyXG5cdFx0b3ZlcnJpZGVQb3NlQW5nbGU/OiBib29sZWFuO1xyXG5cdFx0b3ZlcnJpZGVQb3NlVGlsdFg/OiBib29sZWFuO1xyXG5cdFx0b3ZlcnJpZGVQb3NlVGlsdFk/OiBib29sZWFuO1xyXG5cdFx0b3ZlcnJpZGVQb3NlUHJlc3N1cmU/OiBib29sZWFuO1xyXG5cdFx0YnJ1c2hQb3NlUHJlc3N1cmU/OiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdGJydXNoUG9zZVRpbHRYPzogbnVtYmVyO1xyXG5cdFx0YnJ1c2hQb3NlVGlsdFk/OiBudW1iZXI7XHJcblx0XHRicnVzaFBvc2VBbmdsZT86IG51bWJlcjtcclxuXHRcdHRvb2xPcHRpb25zPzoge1xyXG5cdFx0XHRicnVzaFByZXNldDogYm9vbGVhbjtcclxuXHRcdFx0ZmxvdzogbnVtYmVyO1xyXG5cdFx0XHRTbW9vOiBudW1iZXI7XHJcblx0XHRcdCdNZCAgJzogc3RyaW5nO1xyXG5cdFx0XHRPcGN0OiBudW1iZXI7XHJcblx0XHRcdHNtb290aGluZzogYm9vbGVhbjtcclxuXHRcdFx0c21vb3RoaW5nVmFsdWU6IG51bWJlcjtcclxuXHRcdFx0c21vb3RoaW5nUmFkaXVzTW9kZTogYm9vbGVhbjtcclxuXHRcdFx0c21vb3RoaW5nQ2F0Y2h1cDogYm9vbGVhbjtcclxuXHRcdFx0c21vb3RoaW5nQ2F0Y2h1cEF0RW5kOiBib29sZWFuO1xyXG5cdFx0XHRzbW9vdGhpbmdab29tQ29tcGVuc2F0aW9uOiBib29sZWFuO1xyXG5cdFx0XHRwcmVzc3VyZVNtb290aGluZzogYm9vbGVhbjtcclxuXHRcdFx0dXNlUHJlc3N1cmVPdmVycmlkZXNTaXplOiBib29sZWFuO1xyXG5cdFx0XHR1c2VQcmVzc3VyZU92ZXJyaWRlc09wYWNpdHk6IGJvb2xlYW47XHJcblx0XHRcdHVzZUxlZ2FjeTogYm9vbGVhbjtcclxuXHRcdH07XHJcblx0fVtdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJzZUR5bmFtaWNzKGRlc2M6IER5bmFtaWNzRGVzY3JpcHRvcik6IEJydXNoRHluYW1pY3Mge1xyXG5cdHJldHVybiB7XHJcblx0XHRjb250cm9sOiBkeW5hbWljc0NvbnRyb2xbZGVzYy5iVlR5XSBhcyBhbnksXHJcblx0XHRzdGVwczogZGVzYy5mU3RwLFxyXG5cdFx0aml0dGVyOiBwYXJzZVBlcmNlbnQoZGVzYy5qaXR0ZXIpLFxyXG5cdFx0bWluaW11bTogcGFyc2VQZXJjZW50KGRlc2NbJ01ubSAnXSksXHJcblx0fTtcclxufVxyXG5cclxuZnVuY3Rpb24gcGFyc2VCcnVzaFNoYXBlKGRlc2M6IEJydXNoU2hhcGVEZXNjcmlwdG9yKTogQnJ1c2hTaGFwZSB7XHJcblx0Y29uc3Qgc2hhcGU6IEJydXNoU2hhcGUgPSB7XHJcblx0XHRzaXplOiBwYXJzZVVuaXRzVG9OdW1iZXIoZGVzYy5EbXRyLCAnUGl4ZWxzJyksXHJcblx0XHRhbmdsZTogcGFyc2VBbmdsZShkZXNjLkFuZ2wpLFxyXG5cdFx0cm91bmRuZXNzOiBwYXJzZVBlcmNlbnQoZGVzYy5SbmRuKSxcclxuXHRcdHNwYWNpbmdPbjogZGVzYy5JbnRyLFxyXG5cdFx0c3BhY2luZzogcGFyc2VQZXJjZW50KGRlc2MuU3BjbiksXHJcblx0XHRmbGlwWDogZGVzYy5mbGlwWCxcclxuXHRcdGZsaXBZOiBkZXNjLmZsaXBZLFxyXG5cdH07XHJcblxyXG5cdGlmIChkZXNjWydObSAgJ10pIHNoYXBlLm5hbWUgPSBkZXNjWydObSAgJ107XHJcblx0aWYgKGRlc2MuSHJkbikgc2hhcGUuaGFyZG5lc3MgPSBwYXJzZVBlcmNlbnQoZGVzYy5IcmRuKTtcclxuXHRpZiAoZGVzYy5zYW1wbGVkRGF0YSkgc2hhcGUuc2FtcGxlZERhdGEgPSBkZXNjLnNhbXBsZWREYXRhO1xyXG5cclxuXHRyZXR1cm4gc2hhcGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWFkQWJyKGJ1ZmZlcjogQXJyYXlCdWZmZXJWaWV3LCBvcHRpb25zOiB7IGxvZ01pc3NpbmdGZWF0dXJlcz86IGJvb2xlYW47IH0gPSB7fSk6IEFiciB7XHJcblx0Y29uc3QgcmVhZGVyID0gY3JlYXRlUmVhZGVyKGJ1ZmZlci5idWZmZXIsIGJ1ZmZlci5ieXRlT2Zmc2V0LCBidWZmZXIuYnl0ZUxlbmd0aCk7XHJcblx0Y29uc3QgdmVyc2lvbiA9IHJlYWRJbnQxNihyZWFkZXIpO1xyXG5cdGNvbnN0IHNhbXBsZXM6IFNhbXBsZUluZm9bXSA9IFtdO1xyXG5cdGNvbnN0IGJydXNoZXM6IEJydXNoW10gPSBbXTtcclxuXHRjb25zdCBwYXR0ZXJuczogUGF0dGVybkluZm9bXSA9IFtdO1xyXG5cclxuXHRpZiAodmVyc2lvbiA9PT0gMSB8fCB2ZXJzaW9uID09PSAyKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEFCUiB2ZXJzaW9uICgke3ZlcnNpb259KWApOyAvLyBUT0RPOiAuLi5cclxuXHR9IGVsc2UgaWYgKHZlcnNpb24gPT09IDYgfHwgdmVyc2lvbiA9PT0gNyB8fCB2ZXJzaW9uID09PSA5IHx8IHZlcnNpb24gPT09IDEwKSB7XHJcblx0XHRjb25zdCBtaW5vclZlcnNpb24gPSByZWFkSW50MTYocmVhZGVyKTtcclxuXHRcdGlmIChtaW5vclZlcnNpb24gIT09IDEgJiYgbWlub3JWZXJzaW9uICE9PSAyKSB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIEFCUiBtaW5vciB2ZXJzaW9uJyk7XHJcblxyXG5cdFx0d2hpbGUgKHJlYWRlci5vZmZzZXQgPCByZWFkZXIudmlldy5ieXRlTGVuZ3RoKSB7XHJcblx0XHRcdGNoZWNrU2lnbmF0dXJlKHJlYWRlciwgJzhCSU0nKTtcclxuXHRcdFx0Y29uc3QgdHlwZSA9IHJlYWRTaWduYXR1cmUocmVhZGVyKSBhcyAnc2FtcCcgfCAnZGVzYycgfCAncGF0dCcgfCAncGhyeSc7XHJcblx0XHRcdGxldCBzaXplID0gcmVhZFVpbnQzMihyZWFkZXIpO1xyXG5cdFx0XHRjb25zdCBlbmQgPSByZWFkZXIub2Zmc2V0ICsgc2l6ZTtcclxuXHJcblx0XHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRcdGNhc2UgJ3NhbXAnOiB7XHJcblx0XHRcdFx0XHR3aGlsZSAocmVhZGVyLm9mZnNldCA8IGVuZCkge1xyXG5cdFx0XHRcdFx0XHRsZXQgYnJ1c2hMZW5ndGggPSByZWFkVWludDMyKHJlYWRlcik7XHJcblx0XHRcdFx0XHRcdHdoaWxlIChicnVzaExlbmd0aCAmIDBiMTEpIGJydXNoTGVuZ3RoKys7IC8vIHBhZCB0byA0IGJ5dGUgYWxpZ25tZW50XHJcblx0XHRcdFx0XHRcdGNvbnN0IGJydXNoRW5kID0gcmVhZGVyLm9mZnNldCArIGJydXNoTGVuZ3RoO1xyXG5cclxuXHRcdFx0XHRcdFx0Y29uc3QgaWQgPSByZWFkUGFzY2FsU3RyaW5nKHJlYWRlciwgMSk7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyB2MSAtIFNraXAgdGhlIEludDE2IGJvdW5kcyByZWN0YW5nbGUgYW5kIHRoZSB1bmtub3duIEludDE2LlxyXG5cdFx0XHRcdFx0XHQvLyB2MiAtIFNraXAgdGhlIHVua25vd24gYnl0ZXMuXHJcblx0XHRcdFx0XHRcdHNraXBCeXRlcyhyZWFkZXIsIG1pbm9yVmVyc2lvbiA9PT0gMSA/IDEwIDogMjY0KTtcclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IHkgPSByZWFkSW50MzIocmVhZGVyKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgeCA9IHJlYWRJbnQzMihyZWFkZXIpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBoID0gcmVhZEludDMyKHJlYWRlcikgLSB5O1xyXG5cdFx0XHRcdFx0XHRjb25zdCB3ID0gcmVhZEludDMyKHJlYWRlcikgLSB4O1xyXG5cdFx0XHRcdFx0XHRpZiAodyA8PSAwIHx8IGggPD0gMCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJvdW5kcycpO1xyXG5cclxuXHRcdFx0XHRcdFx0Y29uc3QgZGVwdGggPSByZWFkSW50MTYocmVhZGVyKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgY29tcHJlc3Npb24gPSByZWFkVWludDgocmVhZGVyKTsgLy8gMCAtIHJhdywgMSAtIFJMRVxyXG5cdFx0XHRcdFx0XHRjb25zdCBhbHBoYSA9IG5ldyBVaW50OEFycmF5KHcgKiBoKTtcclxuXHJcblx0XHRcdFx0XHRcdGlmIChkZXB0aCA9PT0gOCkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChjb21wcmVzc2lvbiA9PT0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0YWxwaGEuc2V0KHJlYWRCeXRlcyhyZWFkZXIsIGFscGhhLmJ5dGVMZW5ndGgpKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbXByZXNzaW9uID09PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZWFkRGF0YVJMRShyZWFkZXIsIHsgd2lkdGg6IHcsIGhlaWdodDogaCwgZGF0YTogYWxwaGEgfSwgdywgaCwgMSwgWzBdLCBmYWxzZSk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb21wcmVzc2lvbicpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChkZXB0aCA9PT0gMTYpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoY29tcHJlc3Npb24gPT09IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYWxwaGEuYnl0ZUxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGFscGhhW2ldID0gcmVhZFVpbnQxNihyZWFkZXIpID4+IDg7IC8vIGNvbnZlcnQgdG8gOGJpdCB2YWx1ZXNcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbXByZXNzaW9uID09PSAxKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCAoMTZiaXQgUkxFKScpOyAvLyBUT0RPOiAuLi5cclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbXByZXNzaW9uJyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkZXB0aCcpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRzYW1wbGVzLnB1c2goeyBpZCwgYm91bmRzOiB7IHgsIHksIHcsIGggfSwgYWxwaGEgfSk7XHJcblx0XHRcdFx0XHRcdHJlYWRlci5vZmZzZXQgPSBicnVzaEVuZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjYXNlICdkZXNjJzoge1xyXG5cdFx0XHRcdFx0Y29uc3QgZGVzYzogRGVzY0Rlc2NyaXB0b3IgPSByZWFkVmVyc2lvbkFuZERlc2NyaXB0b3IocmVhZGVyKTtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcXVpcmUoJ3V0aWwnKS5pbnNwZWN0KGRlc2MsIGZhbHNlLCA5OSwgdHJ1ZSkpO1xyXG5cclxuXHRcdFx0XHRcdGZvciAoY29uc3QgYnJ1c2ggb2YgZGVzYy5CcnNoKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGI6IEJydXNoID0ge1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IGJydXNoWydObSAgJ10sXHJcblx0XHRcdFx0XHRcdFx0c2hhcGU6IHBhcnNlQnJ1c2hTaGFwZShicnVzaC5CcnNoKSxcclxuXHRcdFx0XHRcdFx0XHRzcGFjaW5nOiBwYXJzZVBlcmNlbnQoYnJ1c2guU3BjbiksXHJcblx0XHRcdFx0XHRcdFx0Ly8gVE9ETzogYnJ1c2hHcm91cCA/Pz9cclxuXHRcdFx0XHRcdFx0XHR3ZXRFZGdlczogYnJ1c2guV3RkZyxcclxuXHRcdFx0XHRcdFx0XHRub2lzZTogYnJ1c2guTm9zZSxcclxuXHRcdFx0XHRcdFx0XHQvLyBUT0RPOiBUeHRDID8/PyBzbW9vdGhpbmcgLyBidWlsZC11cCA/XHJcblx0XHRcdFx0XHRcdFx0Ly8gVE9ETzogJ1JwdCAnID8/P1xyXG5cdFx0XHRcdFx0XHRcdHVzZUJydXNoU2l6ZTogYnJ1c2gudXNlQnJ1c2hTaXplLCAvLyA/Pz9cclxuXHRcdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHRcdGlmIChicnVzaC5pbnRlcnByZXRhdGlvbiAhPSBudWxsKSBiLmludGVycHJldGF0aW9uID0gYnJ1c2guaW50ZXJwcmV0YXRpb247XHJcblx0XHRcdFx0XHRcdGlmIChicnVzaC5wcm90ZWN0VGV4dHVyZSAhPSBudWxsKSBiLnByb3RlY3RUZXh0dXJlID0gYnJ1c2gucHJvdGVjdFRleHR1cmU7XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoYnJ1c2gudXNlVGlwRHluYW1pY3MpIHtcclxuXHRcdFx0XHRcdFx0XHRiLnNoYXBlRHluYW1pY3MgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aWx0U2NhbGU6IHBhcnNlUGVyY2VudChicnVzaC50aWx0U2NhbGUpLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2l6ZUR5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLnN6VnIpLFxyXG5cdFx0XHRcdFx0XHRcdFx0YW5nbGVEeW5hbWljczogcGFyc2VEeW5hbWljcyhicnVzaC5hbmdsZUR5bmFtaWNzKSxcclxuXHRcdFx0XHRcdFx0XHRcdHJvdW5kbmVzc0R5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLnJvdW5kbmVzc0R5bmFtaWNzKSxcclxuXHRcdFx0XHRcdFx0XHRcdGZsaXBYOiBicnVzaC5mbGlwWCxcclxuXHRcdFx0XHRcdFx0XHRcdGZsaXBZOiBicnVzaC5mbGlwWSxcclxuXHRcdFx0XHRcdFx0XHRcdGJydXNoUHJvamVjdGlvbjogYnJ1c2guYnJ1c2hQcm9qZWN0aW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWluaW11bURpYW1ldGVyOiBwYXJzZVBlcmNlbnQoYnJ1c2gubWluaW11bURpYW1ldGVyKSxcclxuXHRcdFx0XHRcdFx0XHRcdG1pbmltdW1Sb3VuZG5lc3M6IHBhcnNlUGVyY2VudChicnVzaC5taW5pbXVtUm91bmRuZXNzKSxcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoYnJ1c2gudXNlU2NhdHRlcikge1xyXG5cdFx0XHRcdFx0XHRcdGIuc2NhdHRlciA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvdW50OiBicnVzaFsnQ250ICddLFxyXG5cdFx0XHRcdFx0XHRcdFx0Ym90aEF4ZXM6IGJydXNoLmJvdGhBeGVzLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y291bnREeW5hbWljczogcGFyc2VEeW5hbWljcyhicnVzaC5jb3VudER5bmFtaWNzKSxcclxuXHRcdFx0XHRcdFx0XHRcdHNjYXR0ZXJEeW5hbWljczogcGFyc2VEeW5hbWljcyhicnVzaC5zY2F0dGVyRHluYW1pY3MpLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmIChicnVzaC51c2VUZXh0dXJlICYmIGJydXNoLlR4dHIpIHtcclxuXHRcdFx0XHRcdFx0XHRiLnRleHR1cmUgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZDogYnJ1c2guVHh0ci5JZG50LFxyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogYnJ1c2guVHh0clsnTm0gICddLFxyXG5cdFx0XHRcdFx0XHRcdFx0YmxlbmRNb2RlOiBCbG5NLmRlY29kZShicnVzaC50ZXh0dXJlQmxlbmRNb2RlKSxcclxuXHRcdFx0XHRcdFx0XHRcdGRlcHRoOiBwYXJzZVBlcmNlbnQoYnJ1c2gudGV4dHVyZURlcHRoKSxcclxuXHRcdFx0XHRcdFx0XHRcdGRlcHRoTWluaW11bTogcGFyc2VQZXJjZW50KGJydXNoLm1pbmltdW1EZXB0aCksXHJcblx0XHRcdFx0XHRcdFx0XHRkZXB0aER5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLnRleHR1cmVEZXB0aER5bmFtaWNzKSxcclxuXHRcdFx0XHRcdFx0XHRcdHNjYWxlOiBwYXJzZVBlcmNlbnQoYnJ1c2gudGV4dHVyZVNjYWxlKSxcclxuXHRcdFx0XHRcdFx0XHRcdGludmVydDogYnJ1c2guSW52VCxcclxuXHRcdFx0XHRcdFx0XHRcdGJyaWdodG5lc3M6IGJydXNoLnRleHR1cmVCcmlnaHRuZXNzLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29udHJhc3Q6IGJydXNoLnRleHR1cmVDb250cmFzdCxcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCBkYiA9IGJydXNoLmR1YWxCcnVzaDtcclxuXHRcdFx0XHRcdFx0aWYgKGRiICYmIGRiLnVzZUR1YWxCcnVzaCkge1xyXG5cdFx0XHRcdFx0XHRcdGIuZHVhbEJydXNoID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZmxpcDogZGIuRmxpcCxcclxuXHRcdFx0XHRcdFx0XHRcdHNoYXBlOiBwYXJzZUJydXNoU2hhcGUoZGIuQnJzaCksXHJcblx0XHRcdFx0XHRcdFx0XHRibGVuZE1vZGU6IEJsbk0uZGVjb2RlKGRiLkJsbk0pLFxyXG5cdFx0XHRcdFx0XHRcdFx0dXNlU2NhdHRlcjogZGIudXNlU2NhdHRlcixcclxuXHRcdFx0XHRcdFx0XHRcdHNwYWNpbmc6IHBhcnNlUGVyY2VudChkYi5TcGNuKSxcclxuXHRcdFx0XHRcdFx0XHRcdGNvdW50OiBkYlsnQ250ICddLFxyXG5cdFx0XHRcdFx0XHRcdFx0Ym90aEF4ZXM6IGRiLmJvdGhBeGVzLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y291bnREeW5hbWljczogcGFyc2VEeW5hbWljcyhkYi5jb3VudER5bmFtaWNzKSxcclxuXHRcdFx0XHRcdFx0XHRcdHNjYXR0ZXJEeW5hbWljczogcGFyc2VEeW5hbWljcyhkYi5zY2F0dGVyRHluYW1pY3MpLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmIChicnVzaC51c2VDb2xvckR5bmFtaWNzKSB7XHJcblx0XHRcdFx0XHRcdFx0Yi5jb2xvckR5bmFtaWNzID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9yZWdyb3VuZEJhY2tncm91bmQ6IHBhcnNlRHluYW1pY3MoYnJ1c2guY2xWciEpLFxyXG5cdFx0XHRcdFx0XHRcdFx0aHVlOiBwYXJzZVBlcmNlbnQoYnJ1c2hbJ0ggICAnXSEpLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2F0dXJhdGlvbjogcGFyc2VQZXJjZW50KGJydXNoLlN0cnQhKSxcclxuXHRcdFx0XHRcdFx0XHRcdGJyaWdodG5lc3M6IHBhcnNlUGVyY2VudChicnVzaC5CcmdoISksXHJcblx0XHRcdFx0XHRcdFx0XHRwdXJpdHk6IHBhcnNlUGVyY2VudChicnVzaC5wdXJpdHkhKSxcclxuXHRcdFx0XHRcdFx0XHRcdHBlclRpcDogYnJ1c2guY29sb3JEeW5hbWljc1BlclRpcCEsXHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0aWYgKGJydXNoLnVzZVBhaW50RHluYW1pY3MpIHtcclxuXHRcdFx0XHRcdFx0XHRiLnRyYW5zZmVyID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Zmxvd0R5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLnByVnIhKSxcclxuXHRcdFx0XHRcdFx0XHRcdG9wYWNpdHlEeW5hbWljczogcGFyc2VEeW5hbWljcyhicnVzaC5vcFZyISksXHJcblx0XHRcdFx0XHRcdFx0XHR3ZXRuZXNzRHluYW1pY3M6IHBhcnNlRHluYW1pY3MoYnJ1c2gud3RWciEpLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWl4RHluYW1pY3M6IHBhcnNlRHluYW1pY3MoYnJ1c2gubXhWciEpLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmIChicnVzaC51c2VCcnVzaFBvc2UpIHtcclxuXHRcdFx0XHRcdFx0XHRiLmJydXNoUG9zZSA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdG92ZXJyaWRlQW5nbGU6IGJydXNoLm92ZXJyaWRlUG9zZUFuZ2xlISxcclxuXHRcdFx0XHRcdFx0XHRcdG92ZXJyaWRlVGlsdFg6IGJydXNoLm92ZXJyaWRlUG9zZVRpbHRYISxcclxuXHRcdFx0XHRcdFx0XHRcdG92ZXJyaWRlVGlsdFk6IGJydXNoLm92ZXJyaWRlUG9zZVRpbHRZISxcclxuXHRcdFx0XHRcdFx0XHRcdG92ZXJyaWRlUHJlc3N1cmU6IGJydXNoLm92ZXJyaWRlUG9zZVByZXNzdXJlISxcclxuXHRcdFx0XHRcdFx0XHRcdHByZXNzdXJlOiBwYXJzZVBlcmNlbnQoYnJ1c2guYnJ1c2hQb3NlUHJlc3N1cmUhKSxcclxuXHRcdFx0XHRcdFx0XHRcdHRpbHRYOiBicnVzaC5icnVzaFBvc2VUaWx0WCEsXHJcblx0XHRcdFx0XHRcdFx0XHR0aWx0WTogYnJ1c2guYnJ1c2hQb3NlVGlsdFkhLFxyXG5cdFx0XHRcdFx0XHRcdFx0YW5nbGU6IGJydXNoLmJydXNoUG9zZUFuZ2xlISxcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCB0byA9IGJydXNoLnRvb2xPcHRpb25zO1xyXG5cdFx0XHRcdFx0XHRpZiAodG8pIHtcclxuXHRcdFx0XHRcdFx0XHRiLnRvb2xPcHRpb25zID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0YnJ1c2hQcmVzZXQ6IHRvLmJydXNoUHJlc2V0LFxyXG5cdFx0XHRcdFx0XHRcdFx0ZmxvdzogdG8uZmxvdyxcclxuXHRcdFx0XHRcdFx0XHRcdHNtb290aDogdG8uU21vbyxcclxuXHRcdFx0XHRcdFx0XHRcdG1vZGU6IEJsbk0uZGVjb2RlKHRvWydNZCAgJ10pLFxyXG5cdFx0XHRcdFx0XHRcdFx0b3BhY2l0eTogdG8uT3BjdCxcclxuXHRcdFx0XHRcdFx0XHRcdHNtb290aGluZzogdG8uc21vb3RoaW5nLFxyXG5cdFx0XHRcdFx0XHRcdFx0c21vb3RoaW5nVmFsdWU6IHRvLnNtb290aGluZ1ZhbHVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0c21vb3RoaW5nUmFkaXVzTW9kZTogdG8uc21vb3RoaW5nUmFkaXVzTW9kZSxcclxuXHRcdFx0XHRcdFx0XHRcdHNtb290aGluZ0NhdGNodXA6IHRvLnNtb290aGluZ0NhdGNodXAsXHJcblx0XHRcdFx0XHRcdFx0XHRzbW9vdGhpbmdDYXRjaHVwQXRFbmQ6IHRvLnNtb290aGluZ0NhdGNodXBBdEVuZCxcclxuXHRcdFx0XHRcdFx0XHRcdHNtb290aGluZ1pvb21Db21wZW5zYXRpb246IHRvLnNtb290aGluZ1pvb21Db21wZW5zYXRpb24sXHJcblx0XHRcdFx0XHRcdFx0XHRwcmVzc3VyZVNtb290aGluZzogdG8ucHJlc3N1cmVTbW9vdGhpbmcsXHJcblx0XHRcdFx0XHRcdFx0XHR1c2VQcmVzc3VyZU92ZXJyaWRlc1NpemU6IHRvLnVzZVByZXNzdXJlT3ZlcnJpZGVzU2l6ZSxcclxuXHRcdFx0XHRcdFx0XHRcdHVzZVByZXNzdXJlT3ZlcnJpZGVzT3BhY2l0eTogdG8udXNlUHJlc3N1cmVPdmVycmlkZXNPcGFjaXR5LFxyXG5cdFx0XHRcdFx0XHRcdFx0dXNlTGVnYWN5OiB0by51c2VMZWdhY3ksXHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0YnJ1c2hlcy5wdXNoKGIpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNhc2UgJ3BhdHQnOiB7XHJcblx0XHRcdFx0XHRpZiAocmVhZGVyLm9mZnNldCA8IGVuZCkgeyAvLyBUT0RPOiBjaGVjayBtdWx0aXBsZSBwYXR0ZXJuc1xyXG5cdFx0XHRcdFx0XHRwYXR0ZXJucy5wdXNoKHJlYWRQYXR0ZXJuKHJlYWRlcikpO1xyXG5cdFx0XHRcdFx0XHRyZWFkZXIub2Zmc2V0ID0gZW5kO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNhc2UgJ3BocnknOiB7XHJcblx0XHRcdFx0XHQvLyBUT0RPOiB3aGF0IGlzIHRoaXMgP1xyXG5cdFx0XHRcdFx0Y29uc3QgZGVzYzogUGhyeURlc2NyaXB0b3IgPSByZWFkVmVyc2lvbkFuZERlc2NyaXB0b3IocmVhZGVyKTtcclxuXHRcdFx0XHRcdGlmIChvcHRpb25zLmxvZ01pc3NpbmdGZWF0dXJlcykge1xyXG5cdFx0XHRcdFx0XHRpZiAoZGVzYy5oaWVyYXJjaHk/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCd1bmhhbmRsZWQgcGhyeSBzZWN0aW9uJywgZGVzYyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGJydXNoIHR5cGU6ICR7dHlwZX1gKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gYWxpZ24gdG8gNCBieXRlc1xyXG5cdFx0XHR3aGlsZSAoc2l6ZSAlIDQpIHtcclxuXHRcdFx0XHRyZWFkZXIub2Zmc2V0Kys7XHJcblx0XHRcdFx0c2l6ZSsrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSBlbHNlIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgQUJSIHZlcnNpb24gKCR7dmVyc2lvbn0pYCk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4geyBzYW1wbGVzLCBwYXR0ZXJucywgYnJ1c2hlcyB9O1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiQzpcXFByb2plY3RzXFxnaXRodWJcXGFnLXBzZFxcc3JjIn0=
|
|
258
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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ZXNDb250ZW50IjpbImltcG9ydCB7IEJsbk0sIERlc2NyaXB0b3JVbml0c1ZhbHVlLCBwYXJzZUFuZ2xlLCBwYXJzZVBlcmNlbnQsIHBhcnNlVW5pdHNUb051bWJlciwgcmVhZFZlcnNpb25BbmREZXNjcmlwdG9yIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcclxuaW1wb3J0IHsgQmxlbmRNb2RlLCBQYXR0ZXJuSW5mbyB9IGZyb20gJy4vcHNkJztcclxuaW1wb3J0IHtcclxuXHRjaGVja1NpZ25hdHVyZSwgY3JlYXRlUmVhZGVyLCByZWFkQnl0ZXMsIHJlYWREYXRhUkxFLCByZWFkSW50MTYsIHJlYWRJbnQzMiwgcmVhZFBhc2NhbFN0cmluZywgcmVhZFBhdHRlcm4sXHJcblx0cmVhZFNpZ25hdHVyZSwgcmVhZFVpbnQxNiwgcmVhZFVpbnQzMiwgcmVhZFVpbnQ4LCBza2lwQnl0ZXNcclxufSBmcm9tICcuL3BzZFJlYWRlcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFiciB7XHJcblx0YnJ1c2hlczogQnJ1c2hbXTtcclxuXHRzYW1wbGVzOiBTYW1wbGVJbmZvW107XHJcblx0cGF0dGVybnM6IFBhdHRlcm5JbmZvW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2FtcGxlSW5mbyB7XHJcblx0aWQ6IHN0cmluZztcclxuXHRib3VuZHM6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHc6IG51bWJlcjsgaDogbnVtYmVyOyB9O1xyXG5cdGFscGhhOiBVaW50OEFycmF5O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJydXNoRHluYW1pY3Mge1xyXG5cdGNvbnRyb2w6ICdvZmYnIHwgJ2ZhZGUnIHwgJ3BlbiBwcmVzc3VyZScgfCAncGVuIHRpbHQnIHwgJ3N0eWx1cyB3aGVlbCcgfCAnaW5pdGlhbCBkaXJlY3Rpb24nIHwgJ2RpcmVjdGlvbicgfCAnaW5pdGlhbCByb3RhdGlvbicgfCAncm90YXRpb24nO1xyXG5cdHN0ZXBzOiBudW1iZXI7IC8vIGZvciBmYWRlXHJcblx0aml0dGVyOiBudW1iZXI7XHJcblx0bWluaW11bTogbnVtYmVyO1xyXG59XHJcblxyXG5jb25zdCBkeW5hbWljc0NvbnRyb2wgPSBbJ29mZicsICdmYWRlJywgJ3BlbiBwcmVzc3VyZScsICdwZW4gdGlsdCcsICdzdHlsdXMgd2hlZWwnLCAnaW5pdGlhbCBkaXJlY3Rpb24nLCAnZGlyZWN0aW9uJywgJ2luaXRpYWwgcm90YXRpb24nLCAncm90YXRpb24nXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJ1c2hTaGFwZSB7XHJcblx0bmFtZT86IHN0cmluZztcclxuXHRzaXplOiBudW1iZXI7XHJcblx0YW5nbGU6IG51bWJlcjtcclxuXHRyb3VuZG5lc3M6IG51bWJlcjtcclxuXHRoYXJkbmVzcz86IG51bWJlcjtcclxuXHRzcGFjaW5nT246IGJvb2xlYW47XHJcblx0c3BhY2luZzogbnVtYmVyO1xyXG5cdGZsaXBYOiBib29sZWFuO1xyXG5cdGZsaXBZOiBib29sZWFuO1xyXG5cdHNhbXBsZWREYXRhPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJydXNoIHtcclxuXHRuYW1lOiBzdHJpbmc7XHJcblx0c2hhcGU6IEJydXNoU2hhcGU7XHJcblx0c2hhcGVEeW5hbWljcz86IHtcclxuXHRcdHNpemVEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdG1pbmltdW1EaWFtZXRlcjogbnVtYmVyO1xyXG5cdFx0dGlsdFNjYWxlOiBudW1iZXI7XHJcblx0XHRhbmdsZUR5bmFtaWNzOiBCcnVzaER5bmFtaWNzO1xyXG5cdFx0cm91bmRuZXNzRHluYW1pY3M6IEJydXNoRHluYW1pY3M7XHJcblx0XHRtaW5pbXVtUm91bmRuZXNzOiBudW1iZXI7XHJcblx0XHRmbGlwWDogYm9vbGVhbjtcclxuXHRcdGZsaXBZOiBib29sZWFuO1xyXG5cdFx0YnJ1c2hQcm9qZWN0aW9uOiBib29sZWFuO1xyXG5cdH07XHJcblx0c2NhdHRlcj86IHtcclxuXHRcdGJvdGhBeGVzOiBib29sZWFuO1xyXG5cdFx0c2NhdHRlckR5bmFtaWNzOiBCcnVzaER5bmFtaWNzO1xyXG5cdFx0Y291bnREeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdGNvdW50OiBudW1iZXI7XHJcblx0fTtcclxuXHR0ZXh0dXJlPzoge1xyXG5cdFx0aWQ6IHN0cmluZztcclxuXHRcdG5hbWU6IHN0cmluZztcclxuXHRcdGludmVydDogYm9vbGVhbjtcclxuXHRcdHNjYWxlOiBudW1iZXI7XHJcblx0XHRicmlnaHRuZXNzOiBudW1iZXI7XHJcblx0XHRjb250cmFzdDogbnVtYmVyO1xyXG5cdFx0YmxlbmRNb2RlOiBCbGVuZE1vZGU7XHJcblx0XHRkZXB0aDogbnVtYmVyO1xyXG5cdFx0ZGVwdGhNaW5pbXVtOiBudW1iZXI7XHJcblx0XHRkZXB0aER5bmFtaWNzOiBCcnVzaER5bmFtaWNzO1xyXG5cdH07XHJcblx0ZHVhbEJydXNoPzoge1xyXG5cdFx0ZmxpcDogYm9vbGVhbjtcclxuXHRcdHNoYXBlOiBCcnVzaFNoYXBlO1xyXG5cdFx0YmxlbmRNb2RlOiBCbGVuZE1vZGU7XHJcblx0XHR1c2VTY2F0dGVyOiBib29sZWFuO1xyXG5cdFx0c3BhY2luZzogbnVtYmVyO1xyXG5cdFx0Y291bnQ6IG51bWJlcjtcclxuXHRcdGJvdGhBeGVzOiBib29sZWFuO1xyXG5cdFx0Y291bnREeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdHNjYXR0ZXJEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHR9O1xyXG5cdGNvbG9yRHluYW1pY3M/OiB7XHJcblx0XHRmb3JlZ3JvdW5kQmFja2dyb3VuZDogQnJ1c2hEeW5hbWljcztcclxuXHRcdGh1ZTogbnVtYmVyO1xyXG5cdFx0c2F0dXJhdGlvbjogbnVtYmVyO1xyXG5cdFx0YnJpZ2h0bmVzczogbnVtYmVyO1xyXG5cdFx0cHVyaXR5OiBudW1iZXI7XHJcblx0XHRwZXJUaXA6IGJvb2xlYW47XHJcblx0fTtcclxuXHR0cmFuc2Zlcj86IHtcclxuXHRcdGZsb3dEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdG9wYWNpdHlEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdHdldG5lc3NEeW5hbWljczogQnJ1c2hEeW5hbWljcztcclxuXHRcdG1peER5bmFtaWNzOiBCcnVzaER5bmFtaWNzO1xyXG5cdH07XHJcblx0YnJ1c2hQb3NlPzoge1xyXG5cdFx0b3ZlcnJpZGVBbmdsZTogYm9vbGVhbjtcclxuXHRcdG92ZXJyaWRlVGlsdFg6IGJvb2xlYW47XHJcblx0XHRvdmVycmlkZVRpbHRZOiBib29sZWFuO1xyXG5cdFx0b3ZlcnJpZGVQcmVzc3VyZTogYm9vbGVhbjtcclxuXHRcdHByZXNzdXJlOiBudW1iZXI7XHJcblx0XHR0aWx0WDogbnVtYmVyO1xyXG5cdFx0dGlsdFk6IG51bWJlcjtcclxuXHRcdGFuZ2xlOiBudW1iZXI7XHJcblx0fTtcclxuXHRub2lzZTogYm9vbGVhbjtcclxuXHR3ZXRFZGdlczogYm9vbGVhbjtcclxuXHQvLyBUT0RPOiBidWlsZC11cFxyXG5cdC8vIFRPRE86IHNtb290aGluZ1xyXG5cdHByb3RlY3RUZXh0dXJlPzogYm9vbGVhbjtcclxuXHRzcGFjaW5nOiBudW1iZXI7XHJcblx0YnJ1c2hHcm91cD86IHVuZGVmaW5lZDsgLy8gP1xyXG5cdGludGVycHJldGF0aW9uPzogYm9vbGVhbjsgLy8gP1xyXG5cdHVzZUJydXNoU2l6ZTogYm9vbGVhbjsgLy8gP1xyXG5cdHRvb2xPcHRpb25zPzoge1xyXG5cdFx0YnJ1c2hQcmVzZXQ6IGJvb2xlYW47XHJcblx0XHRmbG93OiBudW1iZXI7XHJcblx0XHRzbW9vdGg6IG51bWJlcjsgLy8gP1xyXG5cdFx0bW9kZTogQmxlbmRNb2RlO1xyXG5cdFx0b3BhY2l0eTogbnVtYmVyO1xyXG5cdFx0c21vb3RoaW5nOiBib29sZWFuO1xyXG5cdFx0c21vb3RoaW5nVmFsdWU6IG51bWJlcjtcclxuXHRcdHNtb290aGluZ1JhZGl1c01vZGU6IGJvb2xlYW47XHJcblx0XHRzbW9vdGhpbmdDYXRjaHVwOiBib29sZWFuO1xyXG5cdFx0c21vb3RoaW5nQ2F0Y2h1cEF0RW5kOiBib29sZWFuO1xyXG5cdFx0c21vb3RoaW5nWm9vbUNvbXBlbnNhdGlvbjogYm9vbGVhbjtcclxuXHRcdHByZXNzdXJlU21vb3RoaW5nOiBib29sZWFuO1xyXG5cdFx0dXNlUHJlc3N1cmVPdmVycmlkZXNTaXplOiBib29sZWFuO1xyXG5cdFx0dXNlUHJlc3N1cmVPdmVycmlkZXNPcGFjaXR5OiBib29sZWFuO1xyXG5cdFx0dXNlTGVnYWN5OiBib29sZWFuO1xyXG5cdH07XHJcbn1cclxuXHJcbi8vIGludGVybmFsXHJcblxyXG5pbnRlcmZhY2UgUGhyeURlc2NyaXB0b3Ige1xyXG5cdGhpZXJhcmNoeTogKHt9IHwge1xyXG5cdFx0J05tICAnOiBzdHJpbmc7XHJcblx0XHR6dWlkOiBzdHJpbmc7XHJcblx0fSlbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIER5bmFtaWNzRGVzY3JpcHRvciB7XHJcblx0YlZUeTogbnVtYmVyO1xyXG5cdGZTdHA6IG51bWJlcjtcclxuXHRqaXR0ZXI6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdCdNbm0gJzogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcbn1cclxuXHJcbmludGVyZmFjZSBCcnVzaFNoYXBlRGVzY3JpcHRvciB7XHJcblx0RG10cjogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0QW5nbDogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0Um5kbjogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0J05tICAnPzogc3RyaW5nO1xyXG5cdFNwY246IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdEludHI6IGJvb2xlYW47XHJcblx0SHJkbj86IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdGZsaXBYOiBib29sZWFuO1xyXG5cdGZsaXBZOiBib29sZWFuO1xyXG5cdHNhbXBsZWREYXRhPzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRGVzY0Rlc2NyaXB0b3Ige1xyXG5cdEJyc2g6IHtcclxuXHRcdCdObSAgJzogc3RyaW5nO1xyXG5cdFx0QnJzaDogQnJ1c2hTaGFwZURlc2NyaXB0b3I7XHJcblx0XHR1c2VUaXBEeW5hbWljczogYm9vbGVhbjtcclxuXHRcdGZsaXBYOiBib29sZWFuO1xyXG5cdFx0ZmxpcFk6IGJvb2xlYW47XHJcblx0XHRicnVzaFByb2plY3Rpb246IGJvb2xlYW47XHJcblx0XHRtaW5pbXVtRGlhbWV0ZXI6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0bWluaW11bVJvdW5kbmVzczogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHR0aWx0U2NhbGU6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0c3pWcjogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0YW5nbGVEeW5hbWljczogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0cm91bmRuZXNzRHluYW1pY3M6IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdHVzZVNjYXR0ZXI6IGJvb2xlYW47XHJcblx0XHRTcGNuOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdCdDbnQgJzogbnVtYmVyO1xyXG5cdFx0Ym90aEF4ZXM6IGJvb2xlYW47XHJcblx0XHRjb3VudER5bmFtaWNzOiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHRzY2F0dGVyRHluYW1pY3M6IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdGR1YWxCcnVzaDogeyB1c2VEdWFsQnJ1c2g6IGZhbHNlOyB9IHwge1xyXG5cdFx0XHR1c2VEdWFsQnJ1c2g6IHRydWU7XHJcblx0XHRcdEZsaXA6IGJvb2xlYW47XHJcblx0XHRcdEJyc2g6IEJydXNoU2hhcGVEZXNjcmlwdG9yO1xyXG5cdFx0XHRCbG5NOiBzdHJpbmc7XHJcblx0XHRcdHVzZVNjYXR0ZXI6IGJvb2xlYW47XHJcblx0XHRcdFNwY246IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0XHQnQ250ICc6IG51bWJlcjtcclxuXHRcdFx0Ym90aEF4ZXM6IGJvb2xlYW47XHJcblx0XHRcdGNvdW50RHluYW1pY3M6IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdFx0c2NhdHRlckR5bmFtaWNzOiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHR9O1xyXG5cdFx0YnJ1c2hHcm91cDogeyB1c2VCcnVzaEdyb3VwOiBmYWxzZTsgfTtcclxuXHRcdHVzZVRleHR1cmU6IGJvb2xlYW47XHJcblx0XHRUeHRDOiBib29sZWFuO1xyXG5cdFx0aW50ZXJwcmV0YXRpb246IGJvb2xlYW47XHJcblx0XHR0ZXh0dXJlQmxlbmRNb2RlOiBzdHJpbmc7XHJcblx0XHR0ZXh0dXJlRGVwdGg6IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0bWluaW11bURlcHRoOiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdHRleHR1cmVEZXB0aER5bmFtaWNzOiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHRUeHRyPzoge1xyXG5cdFx0XHQnTm0gICc6IHN0cmluZztcclxuXHRcdFx0SWRudDogc3RyaW5nO1xyXG5cdFx0fTtcclxuXHRcdHRleHR1cmVTY2FsZTogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHRJbnZUOiBib29sZWFuO1xyXG5cdFx0cHJvdGVjdFRleHR1cmU6IGJvb2xlYW47XHJcblx0XHR0ZXh0dXJlQnJpZ2h0bmVzczogbnVtYmVyO1xyXG5cdFx0dGV4dHVyZUNvbnRyYXN0OiBudW1iZXI7XHJcblx0XHR1c2VQYWludER5bmFtaWNzOiBib29sZWFuO1xyXG5cdFx0cHJWcj86IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdG9wVnI/OiBEeW5hbWljc0Rlc2NyaXB0b3I7XHJcblx0XHR3dFZyPzogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0bXhWcj86IER5bmFtaWNzRGVzY3JpcHRvcjtcclxuXHRcdHVzZUNvbG9yRHluYW1pY3M6IGJvb2xlYW47XHJcblx0XHRjbFZyPzogRHluYW1pY3NEZXNjcmlwdG9yO1xyXG5cdFx0J0ggICAnPzogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHRTdHJ0PzogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHRCcmdoPzogRGVzY3JpcHRvclVuaXRzVmFsdWU7XHJcblx0XHRwdXJpdHk/OiBEZXNjcmlwdG9yVW5pdHNWYWx1ZTtcclxuXHRcdGNvbG9yRHluYW1pY3NQZXJUaXA/OiB0cnVlO1xyXG5cdFx0V3RkZzogYm9vbGVhbjtcclxuXHRcdE5vc2U6IGJvb2xlYW47XHJcblx0XHQnUnB0ICc6IGJvb2xlYW47XHJcblx0XHR1c2VCcnVzaFNpemU6IGJvb2xlYW47XHJcblx0XHR1c2VCcnVzaFBvc2U6IGJvb2xlYW47XHJcblx0XHRvdmVycmlkZVBvc2VBbmdsZT86IGJvb2xlYW47XHJcblx0XHRvdmVycmlkZVBvc2VUaWx0WD86IGJvb2xlYW47XHJcblx0XHRvdmVycmlkZVBvc2VUaWx0WT86IGJvb2xlYW47XHJcblx0XHRvdmVycmlkZVBvc2VQcmVzc3VyZT86IGJvb2xlYW47XHJcblx0XHRicnVzaFBvc2VQcmVzc3VyZT86IERlc2NyaXB0b3JVbml0c1ZhbHVlO1xyXG5cdFx0YnJ1c2hQb3NlVGlsdFg/OiBudW1iZXI7XHJcblx0XHRicnVzaFBvc2VUaWx0WT86IG51bWJlcjtcclxuXHRcdGJydXNoUG9zZUFuZ2xlPzogbnVtYmVyO1xyXG5cdFx0dG9vbE9wdGlvbnM/OiB7XHJcblx0XHRcdGJydXNoUHJlc2V0OiBib29sZWFuO1xyXG5cdFx0XHRmbG93OiBudW1iZXI7XHJcblx0XHRcdFNtb286IG51bWJlcjtcclxuXHRcdFx0J01kICAnOiBzdHJpbmc7XHJcblx0XHRcdE9wY3Q6IG51bWJlcjtcclxuXHRcdFx0c21vb3RoaW5nOiBib29sZWFuO1xyXG5cdFx0XHRzbW9vdGhpbmdWYWx1ZTogbnVtYmVyO1xyXG5cdFx0XHRzbW9vdGhpbmdSYWRpdXNNb2RlOiBib29sZWFuO1xyXG5cdFx0XHRzbW9vdGhpbmdDYXRjaHVwOiBib29sZWFuO1xyXG5cdFx0XHRzbW9vdGhpbmdDYXRjaHVwQXRFbmQ6IGJvb2xlYW47XHJcblx0XHRcdHNtb290aGluZ1pvb21Db21wZW5zYXRpb246IGJvb2xlYW47XHJcblx0XHRcdHByZXNzdXJlU21vb3RoaW5nOiBib29sZWFuO1xyXG5cdFx0XHR1c2VQcmVzc3VyZU92ZXJyaWRlc1NpemU6IGJvb2xlYW47XHJcblx0XHRcdHVzZVByZXNzdXJlT3ZlcnJpZGVzT3BhY2l0eTogYm9vbGVhbjtcclxuXHRcdFx0dXNlTGVnYWN5OiBib29sZWFuO1xyXG5cdFx0fTtcclxuXHR9W107XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlRHluYW1pY3MoZGVzYzogRHluYW1pY3NEZXNjcmlwdG9yKTogQnJ1c2hEeW5hbWljcyB7XHJcblx0cmV0dXJuIHtcclxuXHRcdGNvbnRyb2w6IGR5bmFtaWNzQ29udHJvbFtkZXNjLmJWVHldIGFzIGFueSxcclxuXHRcdHN0ZXBzOiBkZXNjLmZTdHAsXHJcblx0XHRqaXR0ZXI6IHBhcnNlUGVyY2VudChkZXNjLmppdHRlciksXHJcblx0XHRtaW5pbXVtOiBwYXJzZVBlcmNlbnQoZGVzY1snTW5tICddKSxcclxuXHR9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJzZUJydXNoU2hhcGUoZGVzYzogQnJ1c2hTaGFwZURlc2NyaXB0b3IpOiBCcnVzaFNoYXBlIHtcclxuXHRjb25zdCBzaGFwZTogQnJ1c2hTaGFwZSA9IHtcclxuXHRcdHNpemU6IHBhcnNlVW5pdHNUb051bWJlcihkZXNjLkRtdHIsICdQaXhlbHMnKSxcclxuXHRcdGFuZ2xlOiBwYXJzZUFuZ2xlKGRlc2MuQW5nbCksXHJcblx0XHRyb3VuZG5lc3M6IHBhcnNlUGVyY2VudChkZXNjLlJuZG4pLFxyXG5cdFx0c3BhY2luZ09uOiBkZXNjLkludHIsXHJcblx0XHRzcGFjaW5nOiBwYXJzZVBlcmNlbnQoZGVzYy5TcGNuKSxcclxuXHRcdGZsaXBYOiBkZXNjLmZsaXBYLFxyXG5cdFx0ZmxpcFk6IGRlc2MuZmxpcFksXHJcblx0fTtcclxuXHJcblx0aWYgKGRlc2NbJ05tICAnXSkgc2hhcGUubmFtZSA9IGRlc2NbJ05tICAnXTtcclxuXHRpZiAoZGVzYy5IcmRuKSBzaGFwZS5oYXJkbmVzcyA9IHBhcnNlUGVyY2VudChkZXNjLkhyZG4pO1xyXG5cdGlmIChkZXNjLnNhbXBsZWREYXRhKSBzaGFwZS5zYW1wbGVkRGF0YSA9IGRlc2Muc2FtcGxlZERhdGE7XHJcblxyXG5cdHJldHVybiBzaGFwZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRBYnIoYnVmZmVyOiBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM6IHsgbG9nTWlzc2luZ0ZlYXR1cmVzPzogYm9vbGVhbjsgfSA9IHt9KTogQWJyIHtcclxuXHRjb25zdCByZWFkZXIgPSBjcmVhdGVSZWFkZXIoYnVmZmVyLmJ1ZmZlciwgYnVmZmVyLmJ5dGVPZmZzZXQsIGJ1ZmZlci5ieXRlTGVuZ3RoKTtcclxuXHRjb25zdCB2ZXJzaW9uID0gcmVhZEludDE2KHJlYWRlcik7XHJcblx0Y29uc3Qgc2FtcGxlczogU2FtcGxlSW5mb1tdID0gW107XHJcblx0Y29uc3QgYnJ1c2hlczogQnJ1c2hbXSA9IFtdO1xyXG5cdGNvbnN0IHBhdHRlcm5zOiBQYXR0ZXJuSW5mb1tdID0gW107XHJcblxyXG5cdGlmICh2ZXJzaW9uID09PSAxIHx8IHZlcnNpb24gPT09IDIpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgQUJSIHZlcnNpb24gKCR7dmVyc2lvbn0pYCk7IC8vIFRPRE86IC4uLlxyXG5cdH0gZWxzZSBpZiAodmVyc2lvbiA9PT0gNiB8fCB2ZXJzaW9uID09PSA3IHx8IHZlcnNpb24gPT09IDkgfHwgdmVyc2lvbiA9PT0gMTApIHtcclxuXHRcdGNvbnN0IG1pbm9yVmVyc2lvbiA9IHJlYWRJbnQxNihyZWFkZXIpO1xyXG5cdFx0aWYgKG1pbm9yVmVyc2lvbiAhPT0gMSAmJiBtaW5vclZlcnNpb24gIT09IDIpIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgQUJSIG1pbm9yIHZlcnNpb24nKTtcclxuXHJcblx0XHR3aGlsZSAocmVhZGVyLm9mZnNldCA8IHJlYWRlci52aWV3LmJ5dGVMZW5ndGgpIHtcclxuXHRcdFx0Y2hlY2tTaWduYXR1cmUocmVhZGVyLCAnOEJJTScpO1xyXG5cdFx0XHRjb25zdCB0eXBlID0gcmVhZFNpZ25hdHVyZShyZWFkZXIpIGFzICdzYW1wJyB8ICdkZXNjJyB8ICdwYXR0JyB8ICdwaHJ5JztcclxuXHRcdFx0bGV0IHNpemUgPSByZWFkVWludDMyKHJlYWRlcik7XHJcblx0XHRcdGNvbnN0IGVuZCA9IHJlYWRlci5vZmZzZXQgKyBzaXplO1xyXG5cclxuXHRcdFx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRcdFx0Y2FzZSAnc2FtcCc6IHtcclxuXHRcdFx0XHRcdHdoaWxlIChyZWFkZXIub2Zmc2V0IDwgZW5kKSB7XHJcblx0XHRcdFx0XHRcdGxldCBicnVzaExlbmd0aCA9IHJlYWRVaW50MzIocmVhZGVyKTtcclxuXHRcdFx0XHRcdFx0d2hpbGUgKGJydXNoTGVuZ3RoICYgMGIxMSkgYnJ1c2hMZW5ndGgrKzsgLy8gcGFkIHRvIDQgYnl0ZSBhbGlnbm1lbnRcclxuXHRcdFx0XHRcdFx0Y29uc3QgYnJ1c2hFbmQgPSByZWFkZXIub2Zmc2V0ICsgYnJ1c2hMZW5ndGg7XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCBpZCA9IHJlYWRQYXNjYWxTdHJpbmcocmVhZGVyLCAxKTtcclxuXHJcblx0XHRcdFx0XHRcdC8vIHYxIC0gU2tpcCB0aGUgSW50MTYgYm91bmRzIHJlY3RhbmdsZSBhbmQgdGhlIHVua25vd24gSW50MTYuXHJcblx0XHRcdFx0XHRcdC8vIHYyIC0gU2tpcCB0aGUgdW5rbm93biBieXRlcy5cclxuXHRcdFx0XHRcdFx0c2tpcEJ5dGVzKHJlYWRlciwgbWlub3JWZXJzaW9uID09PSAxID8gMTAgOiAyNjQpO1xyXG5cclxuXHRcdFx0XHRcdFx0Y29uc3QgeSA9IHJlYWRJbnQzMihyZWFkZXIpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCB4ID0gcmVhZEludDMyKHJlYWRlcik7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGggPSByZWFkSW50MzIocmVhZGVyKSAtIHk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHcgPSByZWFkSW50MzIocmVhZGVyKSAtIHg7XHJcblx0XHRcdFx0XHRcdGlmICh3IDw9IDAgfHwgaCA8PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYm91bmRzJyk7XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCBkZXB0aCA9IHJlYWRJbnQxNihyZWFkZXIpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBjb21wcmVzc2lvbiA9IHJlYWRVaW50OChyZWFkZXIpOyAvLyAwIC0gcmF3LCAxIC0gUkxFXHJcblx0XHRcdFx0XHRcdGNvbnN0IGFscGhhID0gbmV3IFVpbnQ4QXJyYXkodyAqIGgpO1xyXG5cclxuXHRcdFx0XHRcdFx0aWYgKGRlcHRoID09PSA4KSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGNvbXByZXNzaW9uID09PSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRhbHBoYS5zZXQocmVhZEJ5dGVzKHJlYWRlciwgYWxwaGEuYnl0ZUxlbmd0aCkpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoY29tcHJlc3Npb24gPT09IDEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJlYWREYXRhUkxFKHJlYWRlciwgeyB3aWR0aDogdywgaGVpZ2h0OiBoLCBkYXRhOiBhbHBoYSB9LCB3LCBoLCAxLCBbMF0sIGZhbHNlKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbXByZXNzaW9uJyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGRlcHRoID09PSAxNikge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChjb21wcmVzc2lvbiA9PT0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhbHBoYS5ieXRlTGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWxwaGFbaV0gPSByZWFkVWludDE2KHJlYWRlcikgPj4gODsgLy8gY29udmVydCB0byA4Yml0IHZhbHVlc1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoY29tcHJlc3Npb24gPT09IDEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkICgxNmJpdCBSTEUpJyk7IC8vIFRPRE86IC4uLlxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29tcHJlc3Npb24nKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRlcHRoJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdHNhbXBsZXMucHVzaCh7IGlkLCBib3VuZHM6IHsgeCwgeSwgdywgaCB9LCBhbHBoYSB9KTtcclxuXHRcdFx0XHRcdFx0cmVhZGVyLm9mZnNldCA9IGJydXNoRW5kO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNhc2UgJ2Rlc2MnOiB7XHJcblx0XHRcdFx0XHRjb25zdCBkZXNjOiBEZXNjRGVzY3JpcHRvciA9IHJlYWRWZXJzaW9uQW5kRGVzY3JpcHRvcihyZWFkZXIpO1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVxdWlyZSgndXRpbCcpLmluc3BlY3QoZGVzYywgZmFsc2UsIDk5LCB0cnVlKSk7XHJcblxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBicnVzaCBvZiBkZXNjLkJyc2gpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYjogQnJ1c2ggPSB7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogYnJ1c2hbJ05tICAnXSxcclxuXHRcdFx0XHRcdFx0XHRzaGFwZTogcGFyc2VCcnVzaFNoYXBlKGJydXNoLkJyc2gpLFxyXG5cdFx0XHRcdFx0XHRcdHNwYWNpbmc6IHBhcnNlUGVyY2VudChicnVzaC5TcGNuKSxcclxuXHRcdFx0XHRcdFx0XHQvLyBUT0RPOiBicnVzaEdyb3VwID8/P1xyXG5cdFx0XHRcdFx0XHRcdHdldEVkZ2VzOiBicnVzaC5XdGRnLFxyXG5cdFx0XHRcdFx0XHRcdG5vaXNlOiBicnVzaC5Ob3NlLFxyXG5cdFx0XHRcdFx0XHRcdC8vIFRPRE86IFR4dEMgPz8/IHNtb290aGluZyAvIGJ1aWxkLXVwID9cclxuXHRcdFx0XHRcdFx0XHQvLyBUT0RPOiAnUnB0ICcgPz8/XHJcblx0XHRcdFx0XHRcdFx0dXNlQnJ1c2hTaXplOiBicnVzaC51c2VCcnVzaFNpemUsIC8vID8/P1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRcdFx0aWYgKGJydXNoLmludGVycHJldGF0aW9uICE9IG51bGwpIGIuaW50ZXJwcmV0YXRpb24gPSBicnVzaC5pbnRlcnByZXRhdGlvbjtcclxuXHRcdFx0XHRcdFx0aWYgKGJydXNoLnByb3RlY3RUZXh0dXJlICE9IG51bGwpIGIucHJvdGVjdFRleHR1cmUgPSBicnVzaC5wcm90ZWN0VGV4dHVyZTtcclxuXHJcblx0XHRcdFx0XHRcdGlmIChicnVzaC51c2VUaXBEeW5hbWljcykge1xyXG5cdFx0XHRcdFx0XHRcdGIuc2hhcGVEeW5hbWljcyA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdHRpbHRTY2FsZTogcGFyc2VQZXJjZW50KGJydXNoLnRpbHRTY2FsZSksXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplRHluYW1pY3M6IHBhcnNlRHluYW1pY3MoYnJ1c2guc3pWciksXHJcblx0XHRcdFx0XHRcdFx0XHRhbmdsZUR5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLmFuZ2xlRHluYW1pY3MpLFxyXG5cdFx0XHRcdFx0XHRcdFx0cm91bmRuZXNzRHluYW1pY3M6IHBhcnNlRHluYW1pY3MoYnJ1c2gucm91bmRuZXNzRHluYW1pY3MpLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZmxpcFg6IGJydXNoLmZsaXBYLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZmxpcFk6IGJydXNoLmZsaXBZLFxyXG5cdFx0XHRcdFx0XHRcdFx0YnJ1c2hQcm9qZWN0aW9uOiBicnVzaC5icnVzaFByb2plY3Rpb24sXHJcblx0XHRcdFx0XHRcdFx0XHRtaW5pbXVtRGlhbWV0ZXI6IHBhcnNlUGVyY2VudChicnVzaC5taW5pbXVtRGlhbWV0ZXIpLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWluaW11bVJvdW5kbmVzczogcGFyc2VQZXJjZW50KGJydXNoLm1pbmltdW1Sb3VuZG5lc3MpLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmIChicnVzaC51c2VTY2F0dGVyKSB7XHJcblx0XHRcdFx0XHRcdFx0Yi5zY2F0dGVyID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y291bnQ6IGJydXNoWydDbnQgJ10sXHJcblx0XHRcdFx0XHRcdFx0XHRib3RoQXhlczogYnJ1c2guYm90aEF4ZXMsXHJcblx0XHRcdFx0XHRcdFx0XHRjb3VudER5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLmNvdW50RHluYW1pY3MpLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2NhdHRlckR5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLnNjYXR0ZXJEeW5hbWljcyksXHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0aWYgKGJydXNoLnVzZVRleHR1cmUgJiYgYnJ1c2guVHh0cikge1xyXG5cdFx0XHRcdFx0XHRcdGIudGV4dHVyZSA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlkOiBicnVzaC5UeHRyLklkbnQsXHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBicnVzaC5UeHRyWydObSAgJ10sXHJcblx0XHRcdFx0XHRcdFx0XHRibGVuZE1vZGU6IEJsbk0uZGVjb2RlKGJydXNoLnRleHR1cmVCbGVuZE1vZGUpLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZGVwdGg6IHBhcnNlUGVyY2VudChicnVzaC50ZXh0dXJlRGVwdGgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZGVwdGhNaW5pbXVtOiBwYXJzZVBlcmNlbnQoYnJ1c2gubWluaW11bURlcHRoKSxcclxuXHRcdFx0XHRcdFx0XHRcdGRlcHRoRHluYW1pY3M6IHBhcnNlRHluYW1pY3MoYnJ1c2gudGV4dHVyZURlcHRoRHluYW1pY3MpLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2NhbGU6IHBhcnNlUGVyY2VudChicnVzaC50ZXh0dXJlU2NhbGUpLFxyXG5cdFx0XHRcdFx0XHRcdFx0aW52ZXJ0OiBicnVzaC5JbnZULFxyXG5cdFx0XHRcdFx0XHRcdFx0YnJpZ2h0bmVzczogYnJ1c2gudGV4dHVyZUJyaWdodG5lc3MsXHJcblx0XHRcdFx0XHRcdFx0XHRjb250cmFzdDogYnJ1c2gudGV4dHVyZUNvbnRyYXN0LFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IGRiID0gYnJ1c2guZHVhbEJydXNoO1xyXG5cdFx0XHRcdFx0XHRpZiAoZGIgJiYgZGIudXNlRHVhbEJydXNoKSB7XHJcblx0XHRcdFx0XHRcdFx0Yi5kdWFsQnJ1c2ggPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmbGlwOiBkYi5GbGlwLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2hhcGU6IHBhcnNlQnJ1c2hTaGFwZShkYi5CcnNoKSxcclxuXHRcdFx0XHRcdFx0XHRcdGJsZW5kTW9kZTogQmxuTS5kZWNvZGUoZGIuQmxuTSksXHJcblx0XHRcdFx0XHRcdFx0XHR1c2VTY2F0dGVyOiBkYi51c2VTY2F0dGVyLFxyXG5cdFx0XHRcdFx0XHRcdFx0c3BhY2luZzogcGFyc2VQZXJjZW50KGRiLlNwY24pLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y291bnQ6IGRiWydDbnQgJ10sXHJcblx0XHRcdFx0XHRcdFx0XHRib3RoQXhlczogZGIuYm90aEF4ZXMsXHJcblx0XHRcdFx0XHRcdFx0XHRjb3VudER5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGRiLmNvdW50RHluYW1pY3MpLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2NhdHRlckR5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGRiLnNjYXR0ZXJEeW5hbWljcyksXHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0aWYgKGJydXNoLnVzZUNvbG9yRHluYW1pY3MpIHtcclxuXHRcdFx0XHRcdFx0XHRiLmNvbG9yRHluYW1pY3MgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmb3JlZ3JvdW5kQmFja2dyb3VuZDogcGFyc2VEeW5hbWljcyhicnVzaC5jbFZyISksXHJcblx0XHRcdFx0XHRcdFx0XHRodWU6IHBhcnNlUGVyY2VudChicnVzaFsnSCAgICddISksXHJcblx0XHRcdFx0XHRcdFx0XHRzYXR1cmF0aW9uOiBwYXJzZVBlcmNlbnQoYnJ1c2guU3RydCEpLFxyXG5cdFx0XHRcdFx0XHRcdFx0YnJpZ2h0bmVzczogcGFyc2VQZXJjZW50KGJydXNoLkJyZ2ghKSxcclxuXHRcdFx0XHRcdFx0XHRcdHB1cml0eTogcGFyc2VQZXJjZW50KGJydXNoLnB1cml0eSEpLFxyXG5cdFx0XHRcdFx0XHRcdFx0cGVyVGlwOiBicnVzaC5jb2xvckR5bmFtaWNzUGVyVGlwISxcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoYnJ1c2gudXNlUGFpbnREeW5hbWljcykge1xyXG5cdFx0XHRcdFx0XHRcdGIudHJhbnNmZXIgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmbG93RHluYW1pY3M6IHBhcnNlRHluYW1pY3MoYnJ1c2gucHJWciEpLFxyXG5cdFx0XHRcdFx0XHRcdFx0b3BhY2l0eUR5bmFtaWNzOiBwYXJzZUR5bmFtaWNzKGJydXNoLm9wVnIhKSxcclxuXHRcdFx0XHRcdFx0XHRcdHdldG5lc3NEeW5hbWljczogcGFyc2VEeW5hbWljcyhicnVzaC53dFZyISksXHJcblx0XHRcdFx0XHRcdFx0XHRtaXhEeW5hbWljczogcGFyc2VEeW5hbWljcyhicnVzaC5teFZyISksXHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0aWYgKGJydXNoLnVzZUJydXNoUG9zZSkge1xyXG5cdFx0XHRcdFx0XHRcdGIuYnJ1c2hQb3NlID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0b3ZlcnJpZGVBbmdsZTogYnJ1c2gub3ZlcnJpZGVQb3NlQW5nbGUhLFxyXG5cdFx0XHRcdFx0XHRcdFx0b3ZlcnJpZGVUaWx0WDogYnJ1c2gub3ZlcnJpZGVQb3NlVGlsdFghLFxyXG5cdFx0XHRcdFx0XHRcdFx0b3ZlcnJpZGVUaWx0WTogYnJ1c2gub3ZlcnJpZGVQb3NlVGlsdFkhLFxyXG5cdFx0XHRcdFx0XHRcdFx0b3ZlcnJpZGVQcmVzc3VyZTogYnJ1c2gub3ZlcnJpZGVQb3NlUHJlc3N1cmUhLFxyXG5cdFx0XHRcdFx0XHRcdFx0cHJlc3N1cmU6IHBhcnNlUGVyY2VudChicnVzaC5icnVzaFBvc2VQcmVzc3VyZSEpLFxyXG5cdFx0XHRcdFx0XHRcdFx0dGlsdFg6IGJydXNoLmJydXNoUG9zZVRpbHRYISxcclxuXHRcdFx0XHRcdFx0XHRcdHRpbHRZOiBicnVzaC5icnVzaFBvc2VUaWx0WSEsXHJcblx0XHRcdFx0XHRcdFx0XHRhbmdsZTogYnJ1c2guYnJ1c2hQb3NlQW5nbGUhLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IHRvID0gYnJ1c2gudG9vbE9wdGlvbnM7XHJcblx0XHRcdFx0XHRcdGlmICh0bykge1xyXG5cdFx0XHRcdFx0XHRcdGIudG9vbE9wdGlvbnMgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRicnVzaFByZXNldDogdG8uYnJ1c2hQcmVzZXQsXHJcblx0XHRcdFx0XHRcdFx0XHRmbG93OiB0by5mbG93LFxyXG5cdFx0XHRcdFx0XHRcdFx0c21vb3RoOiB0by5TbW9vLFxyXG5cdFx0XHRcdFx0XHRcdFx0bW9kZTogQmxuTS5kZWNvZGUodG9bJ01kICAnXSksXHJcblx0XHRcdFx0XHRcdFx0XHRvcGFjaXR5OiB0by5PcGN0LFxyXG5cdFx0XHRcdFx0XHRcdFx0c21vb3RoaW5nOiB0by5zbW9vdGhpbmcsXHJcblx0XHRcdFx0XHRcdFx0XHRzbW9vdGhpbmdWYWx1ZTogdG8uc21vb3RoaW5nVmFsdWUsXHJcblx0XHRcdFx0XHRcdFx0XHRzbW9vdGhpbmdSYWRpdXNNb2RlOiB0by5zbW9vdGhpbmdSYWRpdXNNb2RlLFxyXG5cdFx0XHRcdFx0XHRcdFx0c21vb3RoaW5nQ2F0Y2h1cDogdG8uc21vb3RoaW5nQ2F0Y2h1cCxcclxuXHRcdFx0XHRcdFx0XHRcdHNtb290aGluZ0NhdGNodXBBdEVuZDogdG8uc21vb3RoaW5nQ2F0Y2h1cEF0RW5kLFxyXG5cdFx0XHRcdFx0XHRcdFx0c21vb3RoaW5nWm9vbUNvbXBlbnNhdGlvbjogdG8uc21vb3RoaW5nWm9vbUNvbXBlbnNhdGlvbixcclxuXHRcdFx0XHRcdFx0XHRcdHByZXNzdXJlU21vb3RoaW5nOiB0by5wcmVzc3VyZVNtb290aGluZyxcclxuXHRcdFx0XHRcdFx0XHRcdHVzZVByZXNzdXJlT3ZlcnJpZGVzU2l6ZTogdG8udXNlUHJlc3N1cmVPdmVycmlkZXNTaXplLFxyXG5cdFx0XHRcdFx0XHRcdFx0dXNlUHJlc3N1cmVPdmVycmlkZXNPcGFjaXR5OiB0by51c2VQcmVzc3VyZU92ZXJyaWRlc09wYWNpdHksXHJcblx0XHRcdFx0XHRcdFx0XHR1c2VMZWdhY3k6IHRvLnVzZUxlZ2FjeSxcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRicnVzaGVzLnB1c2goYik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y2FzZSAncGF0dCc6IHtcclxuXHRcdFx0XHRcdGlmIChyZWFkZXIub2Zmc2V0IDwgZW5kKSB7IC8vIFRPRE86IGNoZWNrIG11bHRpcGxlIHBhdHRlcm5zXHJcblx0XHRcdFx0XHRcdHBhdHRlcm5zLnB1c2gocmVhZFBhdHRlcm4ocmVhZGVyKSk7XHJcblx0XHRcdFx0XHRcdHJlYWRlci5vZmZzZXQgPSBlbmQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y2FzZSAncGhyeSc6IHtcclxuXHRcdFx0XHRcdC8vIFRPRE86IHdoYXQgaXMgdGhpcyA/XHJcblx0XHRcdFx0XHRjb25zdCBkZXNjOiBQaHJ5RGVzY3JpcHRvciA9IHJlYWRWZXJzaW9uQW5kRGVzY3JpcHRvcihyZWFkZXIpO1xyXG5cdFx0XHRcdFx0aWYgKG9wdGlvbnMubG9nTWlzc2luZ0ZlYXR1cmVzKSB7XHJcblx0XHRcdFx0XHRcdGlmIChkZXNjLmhpZXJhcmNoeT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ3VuaGFuZGxlZCBwaHJ5IHNlY3Rpb24nLCBkZXNjKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYnJ1c2ggdHlwZTogJHt0eXBlfWApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBhbGlnbiB0byA0IGJ5dGVzXHJcblx0XHRcdHdoaWxlIChzaXplICUgNCkge1xyXG5cdFx0XHRcdHJlYWRlci5vZmZzZXQrKztcclxuXHRcdFx0XHRzaXplKys7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9IGVsc2Uge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBBQlIgdmVyc2lvbiAoJHt2ZXJzaW9ufSlgKTtcclxuXHR9XHJcblxyXG5cdHJldHVybiB7IHNhbXBsZXMsIHBhdHRlcm5zLCBicnVzaGVzIH07XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiJDOlxcUHJvamVjdHNcXGdpdGh1YlxcYWctcHNkXFxzcmMifQ==
|