@cqa-lib/cqa-ui 1.1.548-gamma.23 → 1.1.548-gamma.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/execution-screen/condition-debug-step/condition-branch-editor.component.mjs +1 -1
- package/esm2020/lib/manage-columns-dialog/manage-columns-dialog.component.mjs +3 -3
- package/esm2020/lib/new-global-variable-dialog/global-variable-tags-input.component.mjs +3 -3
- package/esm2020/lib/new-global-variable-dialog/new-global-variable-dialog.component.mjs +3 -3
- package/esm2020/lib/step-builder/step-builder-action/step-builder-action.component.mjs +7 -4
- package/esm2020/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.mjs +3 -3
- package/esm2020/lib/step-builder/step-builder-condition/step-builder-condition.component.mjs +5 -4
- package/esm2020/lib/step-builder/step-builder-database/step-builder-database.component.mjs +3 -3
- package/esm2020/lib/step-builder/step-builder-loop/step-builder-loop.component.mjs +226 -11
- package/esm2020/lib/step-builder/template-variables-form/template-variables-form.component.mjs +214 -8
- package/esm2020/lib/test-case-details/api-edit-step/api-edit-step.component.mjs +3 -3
- package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +3 -3
- package/esm2020/lib/test-case-details/test-case-details.models.mjs +5 -3
- package/esm2020/lib/test-case-details/variables-panel/available-variable-row.component.mjs +3 -3
- package/esm2020/lib/test-case-details/variables-panel/used-variable-row.component.mjs +3 -3
- package/esm2020/lib/test-case-details/variables-panel/variables-panel.component.mjs +3 -3
- package/esm2020/lib/ui-kit.module.mjs +6 -1
- package/esm2020/lib/variable-picker/variable-picker.component.mjs +426 -0
- package/esm2020/lib/variable-picker/variable-picker.models.mjs +14 -0
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +953 -80
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +924 -67
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/condition-debug-step/condition-branch-editor.component.d.ts +2 -0
- package/lib/step-builder/step-builder-action/step-builder-action.component.d.ts +6 -1
- package/lib/step-builder/step-builder-condition/step-builder-condition.component.d.ts +4 -1
- package/lib/step-builder/step-builder-loop/step-builder-loop.component.d.ts +87 -1
- package/lib/step-builder/template-variables-form/template-variables-form.component.d.ts +41 -1
- package/lib/ui-kit.module.d.ts +100 -99
- package/lib/variable-picker/variable-picker.component.d.ts +130 -0
- package/lib/variable-picker/variable-picker.models.d.ts +122 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/styles.css +1 -1
package/esm2020/lib/execution-screen/condition-debug-step/condition-branch-editor.component.mjs
CHANGED
|
@@ -446,4 +446,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
446
446
|
}], searchGlobalVariables: [{
|
|
447
447
|
type: Output
|
|
448
448
|
}] } });
|
|
449
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWJyYW5jaC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2NvbmRpdGlvbi1kZWJ1Zy1zdGVwL2NvbmRpdGlvbi1icmFuY2gtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9jb25kaXRpb24tZGVidWctc3RlcC9jb25kaXRpb24tYnJhbmNoLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUN0Qyx1QkFBdUIsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBMEIsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBbUI1Rjs7Ozs7O0dBTUc7QUFRSCxNQUFNLE9BQU8sOEJBQThCO0lBc0h6QyxZQUFvQixFQUFlLEVBQVUsR0FBc0I7UUFBL0MsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBcEhuRSxpR0FBaUc7UUFDeEYsU0FBSSxHQUEyQixhQUFhLENBQUM7UUFFdEQseUVBQXlFO1FBQ2hFLHVCQUFrQixHQUFxQixFQUFFLENBQUM7UUFFbkQsbUVBQW1FO1FBQzFELGtDQUE2QixHQUF3RCxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFdkcsbURBQW1EO1FBQzFDLGlDQUE0QixHQUF3RCxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFLdEcseUNBQXlDO1FBQ2hDLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxzQkFBaUIs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cHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25UZW1wbGF0ZSB9IGZyb20gJy4uLy4uL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItYWN0aW9uL3N0ZXAtYnVpbGRlci1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25CcmFuY2hTYXZlRGF0YSB7XG4gIHRlbXBsYXRlOiBBY3Rpb25UZW1wbGF0ZSB8IG51bGw7XG4gIHRlbXBsYXRlVmFyaWFibGVzOiBhbnlbXTtcbiAgYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlczogYW55W107XG4gIGFjdGlvbjogc3RyaW5nO1xuICAvKiogUmVzb2x2ZWQgSFRNTCBncmFtbWFyIHdpdGggYWN0dWFsIHZhcmlhYmxlIHZhbHVlcyBzdWJzdGl0dXRlZCDigJQgdXNlIGZvciBkaXNwbGF5L2NvbmRpdGlvblRleHQgKi9cbiAgcmVzb2x2ZWRBY3Rpb246IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWV0YWRhdGE6IHN0cmluZztcbiAgLyoqIERlcml2ZWQgZnJvbSBhZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzICdzaG91bGRTa2lwJyBlbnRyeSDigJQgc3RlcCBzaG91bGQgYmUgc2tpcHBlZCBkdXJpbmcgZXhlY3V0aW9uICovXG4gIHNob3VsZFNraXA6IGJvb2xlYW47XG4gIC8qKiBEZXJpdmVkIGZyb20gYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlcyAnaXNTdGVwT3B0aW9uYWwnIGVudHJ5IOKAlCBzdGVwIGZhaWx1cmUgc2hvdWxkIG5vdCBmYWlsIHRoZSB0ZXN0ICovXG4gIGlnbm9yZVN0ZXBSZXN1bHQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogTGlnaHR3ZWlnaHQgc2luZ2xlLWNvbmRpdGlvbiBlZGl0b3IgdXNlZCBpbiBkZWJ1ZyBtb2RlIHRvOlxuICogIC0gQWRkIGEgbmV3IEVMU0UgSUYgYnJhbmNoIChtb2RlID0gJ2FkZC1lbHNlLWlmJylcbiAqICAtIEVkaXQgYW4gZXhpc3RpbmcgSUYgb3IgRUxTRSBJRiBjb25kaXRpb24gKG1vZGUgPSAnZWRpdCcpXG4gKlxuICogVGhpcyBpcyBhIHNpbXBsaWZpZWQgdmFyaWFudCBvZiBTdGVwQnVpbGRlckNvbmRpdGlvbkNvbXBvbmVudCB3aXRoIG9uZSBjb25kaXRpb24gcm93LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtY29uZGl0aW9uLWJyYW5jaC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZGl0aW9uLWJyYW5jaC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbmRpdGlvbkJyYW5jaEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAvKiogJ2FkZC1lbHNlLWlmJyBzaG93cyBcIkFkZCBFTFNFIElGXCIgdGl0bGUvYnV0dG9uOyAnZWRpdCcgc2hvd3MgXCJFZGl0IENvbmRpdGlvblwiIHRpdGxlL2J1dHRvbiAqL1xuICBASW5wdXQoKSBtb2RlOiAnYWRkLWVsc2UtaWYnIHwgJ2VkaXQnID0gJ2FkZC1lbHNlLWlmJztcblxuICAvKiogTGlzdCBvZiBjb25kaXRpb24gYWN0aW9uIHRlbXBsYXRlcyAoZmlsdGVyZWQgdG8gSUZfQ09ORElUSU9OIHR5cGUpICovXG4gIEBJbnB1dCgpIGNvbmRpdGlvblRlbXBsYXRlczogQWN0aW9uVGVtcGxhdGVbXSA9IFtdO1xuXG4gIC8qKiBDYWxsZWQgdG8gZGVyaXZlIHRlbXBsYXRlIHZhcmlhYmxlcyBmcm9tIGEgc2VsZWN0ZWQgdGVtcGxhdGUgKi9cbiAgQElucHV0KCkgc2V0Q29uZGl0aW9uVGVtcGxhdGVWYXJpYWJsZXM6ICh0ZW1wbGF0ZTogQWN0aW9uVGVtcGxhdGUsIHRlc3RTdGVwPzogYW55KSA9PiBhbnlbXSA9ICgpID0+IFtdO1xuXG4gIC8qKiBDYWxsZWQgdG8gZGVyaXZlIGFkdmFuY2VkIHNldHRpbmdzIHZhcmlhYmxlcyAqL1xuICBASW5wdXQoKSBzZXRBZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzOiAodGVtcGxhdGU6IEFjdGlvblRlbXBsYXRlLCB0ZXN0U3RlcD86IGFueSkgPT4gYW55W10gPSAoKSA9PiBbXTtcblxuICAvKiogQ2VudHJhbGlzZWQgSFRNTCBncmFtbWFyIGNvbXB1dGF0aW9uIGZ1bmN0aW9uICovXG4gIEBJbnB1dCgpIGNvbXB1dGVIdG1sR3JhbW1hckZuPzogKHRlbXBsYXRlOiBhbnksIHZhcmlhYmxlczogYW55W10pID0+IHN0cmluZztcblxuICAvKiogRWxlbWVudCBvcHRpb25zIGZvciB2YXJpYWJsZSBmb3JtcyAqL1xuICBASW5wdXQoKSBlbGVtZW50T3B0aW9uczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaGFzTW9yZUVsZW1lbnRzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0VsZW1lbnRzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNjcmVlbk5hbWVPcHRpb25zOiB7IGlkPzogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfVtdID0gW107XG4gIEBJbnB1dCgpIGhhc01vcmVTY3JlZW5OYW1lczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0xvYWRpbmdTY3JlZW5OYW1lczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXJhbWV0ZXJPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBoYXNNb3JlUGFyYW1ldGVyczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0xvYWRpbmdQYXJhbWV0ZXJzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVudmlyb25tZW50T3B0aW9uczogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGVudmlyb25tZW50OiBzdHJpbmcgfVtdID0gW107XG4gIEBJbnB1dCgpIGhhc01vcmVFbnZpcm9ubWVudHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNMb2FkaW5nRW52aXJvbm1lbnRzOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBSZXNvbHZlZCB0ZXN0LWNhc2UgZW52IG5hbWU7IGRyaXZlcyBiYW5uZXIgKyBlbnYtZHJvcGRvd24gYXV0by1zZWxlY3QgKyBsb2NrIGluIGlubmVyIHRlbXBsYXRlLXZhcmlhYmxlcy1mb3JtLiAqL1xuICBASW5wdXQoKSB0ZXN0Q2FzZUVudmlyb25tZW50TmFtZT86IHN0cmluZztcbiAgLyoqIFN1ZmZpeCBvbiB0aGUgZW52LW5hbWUgb3B0aW9uIGxhYmVsIChlLmcuICcoZGVmYXVsdCknKS4gQWxzbyBsb2NrcyB0aGUgZW52IGRyb3Bkb3duLiAqL1xuICBASW5wdXQoKSB0ZXN0Q2FzZUVudmlyb25tZW50TGFiZWxTdWZmaXg/OiBzdHJpbmc7XG4gIC8qKiBJdGFsaWMgbm90ZSByZW5kZXJlZCB1bmRlciBlbnYgZHJvcGRvd24gaW4gdGhlIGlubmVyIGZvcm0uICovXG4gIEBJbnB1dCgpIGVudmlyb25tZW50TGVnYWN5RGVwcmVjYXRpb25NZXNzYWdlPzogc3RyaW5nO1xuICAvKiogVGVzdCBjYXNlJ3MgVERQIGlkIOKAlCBnYXRlcyB0aGUgVGVzdCBEYXRhIFByb2ZpbGUgdGFiIGluIHRoZSBpbm5lciBmb3JtLiAqL1xuICBASW5wdXQoKSB0ZXN0Q2FzZVRlc3REYXRhSWQ/OiBudW1iZXIgfCBudWxsO1xuICAvKiogV2hlbiB0cnVlIChvciBgaXNJbnNpZGVGb3JMb29wU3RlcGAgdHJ1ZSksIHRoZSBpbm5lciBmb3JtIHNob3dzIHRoZSBUZXN0XG4gICAqICBEYXRhIFByb2ZpbGUgc2VnbWVudC4gV2l0aG91dCB0aGlzLCB0aGUgbGliIGRlZmF1bHRzIHRoZSBzZWdtZW50IGluLFxuICAgKiAgZXZlbiB0aG91Z2ggdGhlIHRlc3QgY2FzZSBoYXMgbm8gVERQIOKAlCB3aGljaCBpcyB3aGF0IHNob3dzIHRoZSB0YWIgaW4gdGhlXG4gICAqICBkZWJ1Zy1zY3JlZW4gY29uZGl0aW9uLWJyYW5jaCBlZGl0b3IuICovXG4gIEBJbnB1dCgpIGhhc1Rlc3REYXRhUHJvZmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogVHJ1ZSB3aGVuIHRoaXMgYnJhbmNoIGxpdmVzIGluc2lkZSBhIEZPUi1sb29wIHN0ZXAuICovXG4gIEBJbnB1dCgpIGlzSW5zaWRlRm9yTG9vcFN0ZXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdvcmtzcGFjZS1zY29wZWQgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgdGhlIEdsb2JhbCBEYXRhIHRhYi4gKi9cbiAgQElucHV0KCkgZ2xvYmFsVmFyaWFibGVPcHRpb25zOiB7IGlkOiBudW1iZXIgfCBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgdHlwZT86IHN0cmluZzsgcmVhZFdyaXRlTW9kZT86IHN0cmluZyB9W10gPSBbXTtcbiAgQElucHV0KCkgaXNMb2FkaW5nR2xvYmFsVmFyaWFibGVzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlZmF1bHRUZXN0RGF0YVByb2ZpbGVJZD86IG51bWJlcjtcbiAgQElucHV0KCkgZGVmYXVsdFRlc3REYXRhU3RhcnRJbmRleD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEVuZCBpbmRleCBvZiB0aGUgaW5oZXJpdGVkIGRhdGFzZXQgcmFuZ2UgKDAtYmFzZWQpLiBEcml2ZXMgYm90aCB0aGVcbiAgICogRGF0YSBTZXQgRW5kIGRyb3Bkb3duIGxvY2sgYW5kIHRoZSBhdXRvLXBvcHVsYXRpb24gb2YgdGVzdC1kYXRhIHZhcmlhYmxlc1xuICAgKiBmcm9tIHRoZSBlbmQtcm93IGluc2lkZSBjcWEtdGVtcGxhdGUtdmFyaWFibGVzLWZvcm0uIEZvcndhcmRlZCB0byB0aGVcbiAgICogaW5uZXIgZm9ybS4gV2l0aG91dCB0aGlzLCB0aGUgcGFyZW50IChlLmcuIGRlYnVnLXNjcmVlbiBjb25kaXRpb24tYnJhbmNoXG4gICAqIGZsb3cpIGNhbid0IGZ1bGx5IHJlcHJvZHVjZSB0aGUgbG9jayBwYXJpdHkgdGhhdFxuICAgKiBjcWEtc3RlcC1idWlsZGVyLWFjdGlvbiBnZXRzIHZpYSBhcHAtc3RlcC1idWlsZGVyLlxuICAgKi9cbiAgQElucHV0KCkgZGVmYXVsdFRlc3REYXRhRW5kSW5kZXg/OiBudW1iZXI7XG5cbiAgLyoqIFdoZW4gcHJvdmlkZWQsIHByZS1wb3B1bGF0ZXMgdGhlIGZvcm0gZm9yIGVkaXQgbW9kZS4gc2hhcGU6IHsgdGVtcGxhdGVJZCwgdGVtcGxhdGVWYXJpYWJsZXMsIGFjdGlvbiB9ICovXG4gIEBJbnB1dCgpIGluaXRpYWxDb25kaXRpb25EYXRhPzoge1xuICAgIHRlbXBsYXRlSWQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgdGVtcGxhdGVWYXJpYWJsZXM/OiBhbnlbXTtcbiAgICBhY3Rpb24/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbWV0YWRhdGE/OiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqIFJhdyBicmFuY2ggc3RlcCBvYmplY3Qg4oCUIHBhc3NlZCB0aHJvdWdoIHRvIHNldENvbmRpdGlvblRlbXBsYXRlVmFyaWFibGVzIHNvIHRoZSBzZXJ2aWNlIGNhbiBleHRyYWN0IHNhdmVkIHZhbHVlcyBmcm9tIHN0ZXAuZXZlbnQgKi9cbiAgQElucHV0KCkgZWRpdFRlc3RTdGVwPzogYW55O1xuXG4gIC8qKiBMYWJlbCBzaG93biBuZXh0IHRvIHRoZSBjb25kaXRpb24gdGVtcGxhdGUgZHJvcGRvd24gKGUuZy4gJ0lGJywgJ0VMU0UgSUYnKS4gSW5mZXJyZWQgZnJvbSBtb2RlIHdoZW4gbm90IHByb3ZpZGVkLiAqL1xuICBASW5wdXQoKSBicmFuY2hMYWJlbD86IHN0cmluZztcblxuICAvKiogVHJ1ZSB3aGlsZSB0aGUgcGFyZW50IGlzIHNhdmluZyAoZGlzYWJsZXMvc2hvd3MgbG9hZGVyIG9uIFNhdmUgYnV0dG9uKSAqL1xuICBASW5wdXQoKSBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxDb25kaXRpb25CcmFuY2hTYXZlRGF0YT4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGxvYWRNb3JlRWxlbWVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzZWFyY2hFbGVtZW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoRWxlbWVudHNCeVNjcmVlbk5hbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc2NyZWVuTmFtZUlkOiBudW1iZXI7IHNlYXJjaFRlcm0/OiBzdHJpbmcgfT4oKTtcbiAgQE91dHB1dCgpIGNyZWF0ZUVsZW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHNlYXJjaFNjcmVlbk5hbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGxvYWRNb3JlU2NyZWVuTmFtZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNyZWF0ZVNjcmVlbk5hbWVSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzZWFyY2hQYXJhbWV0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZVBhcmFtZXRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzZWFyY2hFbnZpcm9ubWVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGxvYWRNb3JlRW52aXJvbm1lbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoR2xvYmFsVmFyaWFibGVzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uZGl0aW9uRm9ybSE6IEZvcm1Hcm91cDtcblxuICBwcml2YXRlIHNlbGVjdGVkVGVtcGxhdGU6IEFjdGlvblRlbXBsYXRlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgdGVtcGxhdGVWYXJpYWJsZXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdmFyaWFibGVzRm9ybSE6IEZvcm1BcnJheTtcbiAgcHJpdmF0ZSBhZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGFkdmFuY2VkVmFyaWFibGVzRm9ybSE6IEZvcm1BcnJheTtcbiAgcHJpdmF0ZSBhZHZhbmNlZEV4cGFuZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZEh0bWxHcmFtbWFyID0gJyc7XG5cbiAgcHJpdmF0ZSB2YWx1ZUNvbmZpZ0NhY2hlOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB2YWx1ZUNvbmZpZ1dpdGhIYW5kbGVyOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWcgfCBudWxsID0gbnVsbDtcblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZWRpdCcgPyAnRWRpdCBDb25kaXRpb24nIDogJ0FkZCBFTFNFIElGJztcbiAgfVxuXG4gIGdldCBzYXZlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZWRpdCcgPyAnU2F2ZScgOiAnQWRkIEVMU0UgSUYnO1xuICB9XG5cbiAgZ2V0IGNvbmRpdGlvblJvd0xhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYnJhbmNoTGFiZWwgPz8gKHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ0lGJyA6ICdFTFNFIElGJyk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmFyaWFibGVzRm9ybSA9IHRoaXMuZmIuYXJyYXkoW10pO1xuICAgIHRoaXMuYWR2YW5jZWRWYXJpYWJsZXNGb3JtID0gdGhpcy5mYi5hcnJheShbXSk7XG5cbiAgICB0aGlzLmNvbmRpdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHZhbHVlOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgIG1ldGFkYXRhOiBbJyddLFxuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVWYWx1ZUNvbmZpZ0NhY2hlKCk7XG5cbiAgICAvLyBQcmUtcG9wdWxhdGUgZm9yIGVkaXQgbW9kZVxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdlZGl0JyAmJiB0aGlzLmluaXRpYWxDb25kaXRpb25EYXRhKSB7XG4gICAgICB0aGlzLnByZWZpbGxGcm9tSW5pdGlhbERhdGEoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZGl0aW9uVGVtcGxhdGVzJ10gJiYgIWNoYW5nZXNbJ2NvbmRpdGlvblRlbXBsYXRlcyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlQ29uZmlnQ2FjaGUoKTtcbiAgICAgIHRoaXMudmFsdWVDb25maWdXaXRoSGFuZGxlciA9IG51bGw7XG4gICAgICAvLyBSZS1wcmVmaWxsIGlmIHdlIG5vdyBoYXZlIHRlbXBsYXRlcyBhbmQgd2VyZSB3YWl0aW5nXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnZWRpdCcgJiYgdGhpcy5pbml0aWFsQ29uZGl0aW9uRGF0YSAmJiAhdGhpcy5zZWxlY3RlZFRlbXBsYXRlKSB7XG4gICAgICAgIHRoaXMucHJlZmlsbEZyb21Jbml0aWFsRGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlZmlsbEZyb21Jbml0aWFsRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5pdGlhbENvbmRpdGlvbkRhdGEgfHwgIXRoaXMuY29uZGl0aW9uVGVtcGxhdGVzPy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IHsgdGVtcGxhdGVJZCwgYWN0aW9uLCBkZXNjcmlwdGlvbiwgbWV0YWRhdGEgfSA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbkRhdGE7XG5cbiAgICAvLyBGaW5kIG1hdGNoaW5nIHRlbXBsYXRlXG4gICAgbGV0IHRlbXBsYXRlOiBBY3Rpb25UZW1wbGF0ZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVJZCAhPSBudWxsKSB7XG4gICAgICB0ZW1wbGF0ZSA9IHRoaXMuY29uZGl0aW9uVGVtcGxhdGVzLmZpbmQoXG4gICAgICAgIHQgPT4gU3RyaW5nKHQuaWQpID09PSBTdHJpbmcodGVtcGxhdGVJZCkgfHwgdC5kaXNwbGF5TmFtZSA9PT0gU3RyaW5nKHRlbXBsYXRlSWQpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIXRlbXBsYXRlICYmIGFjdGlvbikge1xuICAgICAgdGVtcGxhdGUgPSB0aGlzLmNvbmRpdGlvblRlbXBsYXRlcy5maW5kKFxuICAgICAgICB0ID0+IHQubmF0dXJhbFRleHQgPT09IGFjdGlvbiB8fCB0Lmh0bWxHcmFtbWFyID09PSBhY3Rpb24gfHwgdC5kaXNwbGF5TmFtZSA9PT0gYWN0aW9uXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0ZW1wbGF0ZSkge1xuICAgICAgY29uc3Qgc2VsZWN0SWQgPSB0ZW1wbGF0ZS5pZD8udG9TdHJpbmcoKSB8fCB0ZW1wbGF0ZS5kaXNwbGF5TmFtZSB8fCAnJztcbiAgICAgIHRoaXMuY29uZGl0aW9uRm9ybT8uZ2V0KCd2YWx1ZScpPy5zZXRWYWx1ZShzZWxlY3RJZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gdGVtcGxhdGU7XG5cbiAgICAgIC8vIEdldCBmcmVzaCB2YXJpYWJsZXMgc3RydWN0dXJlIHdpdGggc2F2ZWQgdmFsdWVzIGJ5IHBhc3NpbmcgdGhlIHJhdyBzdGVwXG4gICAgICBjb25zdCB2YXJzID0gdGhpcy5zZXRDb25kaXRpb25UZW1wbGF0ZVZhcmlhYmxlcyh0ZW1wbGF0ZSwgdGhpcy5lZGl0VGVzdFN0ZXApO1xuICAgICAgdGhpcy50ZW1wbGF0ZVZhcmlhYmxlcyA9IHZhcnM7XG5cbiAgICAgIHRoaXMuYnVpbGRWYXJpYWJsZXNGb3JtKCk7XG4gICAgICB0aGlzLnVwZGF0ZUh0bWxHcmFtbWFyKCk7XG5cbiAgICAgIC8vIEFkdmFuY2VkIHZhcmlhYmxlc1xuICAgICAgaWYgKHRoaXMuc2V0QWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlcykge1xuICAgICAgICB0aGlzLmFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXMgPSB0aGlzLnNldEFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXModGVtcGxhdGUsIHRoaXMuZWRpdFRlc3RTdGVwKTtcbiAgICAgICAgdGhpcy5idWlsZEFkdmFuY2VkVmFyaWFibGVzRm9ybSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXNjcmlwdGlvbikgdGhpcy5jb25kaXRpb25Gb3JtPy5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnNldFZhbHVlKGRlc2NyaXB0aW9uLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgaWYgKG1ldGFkYXRhKSB0aGlzLmNvbmRpdGlvbkZvcm0/LmdldCgnbWV0YWRhdGEnKT8uc2V0VmFsdWUobWV0YWRhdGEsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVDb25maWdDYWNoZSgpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRzOiBTZWxlY3RPcHRpb25bXSA9ICh0aGlzLmNvbmRpdGlvblRlbXBsYXRlcyB8fCBbXSkubWFwKHQgPT4gKHtcbiAgICAgIGlkOiB0LmlkPy50b1N0cmluZygpIHx8IHQuZGlzcGxheU5hbWUgfHwgJycsXG4gICAgICB2YWx1ZTogdC5pZD8udG9TdHJpbmcoKSB8fCB0LmRpc3BsYXlOYW1lIHx8ICcnLFxuICAgICAgbmFtZTogdC5odG1sR3JhbW1hciB8fCB0Lm5hdHVyYWxUZXh0IHx8ICcnLFxuICAgICAgbGFiZWw6IHQuaHRtbEdyYW1tYXIgfHwgdC5uYXR1cmFsVGV4dCB8fCAnJ1xuICAgIH0pKTtcbiAgICB0aGlzLnZhbHVlQ29uZmlnQ2FjaGUgPSB7XG4gICAgICBrZXk6ICd2YWx1ZScsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdCBDb25kaXRpb24gVGVtcGxhdGUqJyxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgICBkaXNwbGF5TGFiZWxBc0lubmVySHRtbDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IG9wdHNcbiAgICB9O1xuICB9XG5cbiAgZ2V0VmFsdWVDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICBpZiAodGhpcy52YWx1ZUNvbmZpZ1dpdGhIYW5kbGVyKSByZXR1cm4gdGhpcy52YWx1ZUNvbmZpZ1dpdGhIYW5kbGVyO1xuICAgIGlmICghdGhpcy52YWx1ZUNvbmZpZ0NhY2hlKSB0aGlzLnVwZGF0ZVZhbHVlQ29uZmlnQ2FjaGUoKTtcbiAgICB0aGlzLnZhbHVlQ29uZmlnV2l0aEhhbmRsZXIgPSB7XG4gICAgICAuLi50aGlzLnZhbHVlQ29uZmlnQ2FjaGUhLFxuICAgICAgb25DaGFuZ2U6ICh2OiBhbnkpID0+IHRoaXMub25UZW1wbGF0ZVZhbHVlQ2hhbmdlKHYpXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNvbmZpZ1dpdGhIYW5kbGVyO1xuICB9XG5cbiAgb25UZW1wbGF0ZVZhbHVlQ2hhbmdlKHRlbXBsYXRlSWQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5jb25kaXRpb25UZW1wbGF0ZXMuZmluZChcbiAgICAgIHQgPT4gU3RyaW5nKHQuaWQpID09PSBTdHJpbmcodGVtcGxhdGVJZCkgfHwgdC5kaXNwbGF5TmFtZSA9PT0gU3RyaW5nKHRlbXBsYXRlSWQpXG4gICAgKTtcbiAgICBpZiAodGVtcGxhdGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgdGhpcy50ZW1wbGF0ZVZhcmlhYmxlcyA9IHRoaXMuc2V0Q29uZGl0aW9uVGVtcGxhdGVWYXJpYWJsZXModGVtcGxhdGUpO1xuICAgICAgdGhpcy5idWlsZFZhcmlhYmxlc0Zvcm0oKTtcbiAgICAgIHRoaXMudXBkYXRlSHRtbEdyYW1tYXIoKTtcbiAgICAgIGlmICh0aGlzLnNldEFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXMpIHtcbiAgICAgICAgdGhpcy5hZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzID0gdGhpcy5zZXRBZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzKHRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy5idWlsZEFkdmFuY2VkVmFyaWFibGVzRm9ybSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGUgPSBudWxsO1xuICAgICAgdGhpcy50ZW1wbGF0ZVZhcmlhYmxlcyA9IFtdO1xuICAgICAgdGhpcy5jbGVhclZhcmlhYmxlc0Zvcm0oKTtcbiAgICAgIHRoaXMuYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlcyA9IFtdO1xuICAgICAgdGhpcy5jbGVhckFkdmFuY2VkVmFyaWFibGVzRm9ybSgpO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRWYXJpYWJsZXNGb3JtKCk6IHZvaWQge1xuICAgIHdoaWxlICh0aGlzLnZhcmlhYmxlc0Zvcm0ubGVuZ3RoKSB0aGlzLnZhcmlhYmxlc0Zvcm0ucmVtb3ZlQXQoMCk7XG4gICAgdGhpcy50ZW1wbGF0ZVZhcmlhYmxlcy5mb3JFYWNoKHZhcmlhYmxlID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHZhcmlhYmxlLnR5cGUgPT09ICdib29sZWFuJ1xuICAgICAgICA/ICh2YXJpYWJsZS52YWx1ZSA9PT0gdHJ1ZSB8fCB2YXJpYWJsZS52YWx1ZSA9PT0gJ3RydWUnIHx8IHZhcmlhYmxlLnZhbHVlID09PSAxKVxuICAgICAgICA6ICh2YXJpYWJsZS52YWx1ZSB8fCAnJyk7XG4gICAgICBjb25zdCBncm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBuYW1lOiBbdmFyaWFibGUubmFtZV0sXG4gICAgICAgIHZhbHVlOiBbZGVmYXVsdFZhbHVlXSxcbiAgICAgICAgdHlwZTogW3ZhcmlhYmxlLnR5cGUgfHwgJ3N0cmluZyddLFxuICAgICAgICBsYWJlbDogW3ZhcmlhYmxlLmxhYmVsIHx8ICcnXSxcbiAgICAgICAgb3B0aW9uczogW3ZhcmlhYmxlLm9wdGlvbnMgfHwgW11dXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGxhYmVsID0gdmFyaWFibGUubGFiZWw/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG4gICAgICBpZiAobGFiZWwgPT09ICd0ZXN0LWRhdGEnIHx8IGxhYmVsID09PSAnc291cmNlLXZhbHVlJyB8fCBsYWJlbCA9PT0gJ3RhcmdldC12YWx1ZScgfHxcbiAgICAgICAgICBsYWJlbCA9PT0gJ3NvdXJjZV92YWx1ZScgfHwgbGFiZWwgPT09ICd0YXJnZXRfdmFsdWUnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyID0gU3RyaW5nKGRlZmF1bHRWYWx1ZSB8fCAnJyk7XG4gICAgICAgIGxldCBkYXRhVHlwZSA9ICdwbGFpbi10ZXh0JztcbiAgICAgICAgaWYgKHZhbHVlU3RyLnN0YXJ0c1dpdGgoJ0B8JykgJiYgdmFsdWVTdHIuZW5kc1dpdGgoJ3wnKSkgZGF0YVR5cGUgPSAncGFyYW1ldGVyJztcbiAgICAgICAgZWxzZSBpZiAodmFsdWVTdHIuc3RhcnRzV2l0aCgnJHwnKSAmJiB2YWx1ZVN0ci5lbmRzV2l0aCgnfCcpKSBkYXRhVHlwZSA9ICdydW50aW1lJztcbiAgICAgICAgZWxzZSBpZiAodmFsdWVTdHIuc3RhcnRzV2l0aCgnKnwnKSAmJiB2YWx1ZVN0ci5lbmRzV2l0aCgnfCcpKSBkYXRhVHlwZSA9ICdlbnZpcm9ubWVudCc7XG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ2RhdGFUeXBlJywgbmV3IEZvcm1Db250cm9sKGRhdGFUeXBlKSk7XG4gICAgICB9XG4gICAgICB0aGlzLnZhcmlhYmxlc0Zvcm0ucHVzaChncm91cCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVmFyaWFibGVzRm9ybSgpOiB2b2lkIHtcbiAgICB3aGlsZSAodGhpcy52YXJpYWJsZXNGb3JtLmxlbmd0aCkgdGhpcy52YXJpYWJsZXNGb3JtLnJlbW92ZUF0KDApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEFkdmFuY2VkVmFyaWFibGVzRm9ybSgpOiB2b2lkIHtcbiAgICB3aGlsZSAodGhpcy5hZHZhbmNlZFZhcmlhYmxlc0Zvcm0ubGVuZ3RoKSB0aGlzLmFkdmFuY2VkVmFyaWFibGVzRm9ybS5yZW1vdmVBdCgwKTtcbiAgICB0aGlzLmFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXMuZm9yRWFjaCh2YXJpYWJsZSA9PiB7XG4gICAgICBsZXQgZGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgICBpZiAodmFyaWFibGUudHlwZSA9PT0gJ3N0cl9saXN0Jykge1xuICAgICAgICBjb25zdCBhcnIgPSBBcnJheS5pc0FycmF5KHZhcmlhYmxlLnZhbHVlKSA/IHZhcmlhYmxlLnZhbHVlIDogW107XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZmIuYXJyYXkoYXJyLmxlbmd0aCA+IDAgPyBhcnIubWFwKChpOiBzdHJpbmcpID0+IHRoaXMuZmIuY29udHJvbChpKSkgOiBbdGhpcy5mYi5jb250cm9sKCcnKV0pO1xuICAgICAgfSBlbHNlIGlmICh2YXJpYWJsZS50eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gdmFyaWFibGUudmFsdWUgPT09IHRydWUgfHwgdmFyaWFibGUudmFsdWUgPT09ICd0cnVlJyB8fCB2YXJpYWJsZS52YWx1ZSA9PT0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHZhcmlhYmxlLnZhbHVlIHx8ICcnO1xuICAgICAgfVxuICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgbmFtZTogW3ZhcmlhYmxlLm5hbWVdLFxuICAgICAgICB2YWx1ZTogdmFyaWFibGUudHlwZSA9PT0gJ3N0cl9saXN0JyA/IGRlZmF1bHRWYWx1ZSA6IFtkZWZhdWx0VmFsdWVdLFxuICAgICAgICB0eXBlOiBbdmFyaWFibGUudHlwZSB8fCAnc3RyaW5nJ10sXG4gICAgICAgIGxhYmVsOiBbdmFyaWFibGUubGFiZWwgfHwgJyddXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWR2YW5jZWRWYXJpYWJsZXNGb3JtLnB1c2goZ3JvdXApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckFkdmFuY2VkVmFyaWFibGVzRm9ybSgpOiB2b2lkIHtcbiAgICB3aGlsZSAodGhpcy5hZHZhbmNlZFZhcmlhYmxlc0Zvcm0ubGVuZ3RoKSB0aGlzLmFkdmFuY2VkVmFyaWFibGVzRm9ybS5yZW1vdmVBdCgwKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSHRtbEdyYW1tYXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkVGVtcGxhdGU/Lmh0bWxHcmFtbWFyKSB7IHRoaXMudXBkYXRlZEh0bWxHcmFtbWFyID0gJyc7IHJldHVybjsgfVxuICAgIGlmICh0aGlzLmNvbXB1dGVIdG1sR3JhbW1hckZuKSB7XG4gICAgICB0aGlzLnVwZGF0ZWRIdG1sR3JhbW1hciA9IHRoaXMuY29tcHV0ZUh0bWxHcmFtbWFyRm4odGhpcy5zZWxlY3RlZFRlbXBsYXRlLCB0aGlzLnRlbXBsYXRlVmFyaWFibGVzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGcgPSB0aGlzLnNlbGVjdGVkVGVtcGxhdGUuaHRtbEdyYW1tYXI7XG4gICAgdGhpcy50ZW1wbGF0ZVZhcmlhYmxlcy5mb3JFYWNoKHYgPT4ge1xuICAgICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKGA8c3BhbltePl0qZGF0YS1ldmVudC1rZXk9XCIke3YubmFtZX1cIltePl0qPi4qPzwvc3Bhbj5gLCAnZ2knKTtcbiAgICAgIGNvbnN0IGVzY2FwZWQgPSBTdHJpbmcodi52YWx1ZSB8fCAnJykucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xuICAgICAgZyA9IGcucmVwbGFjZShyZSwgZXNjYXBlZCk7XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVkSHRtbEdyYW1tYXIgPSBnO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRIdG1sR3JhbW1hcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWRIdG1sR3JhbW1hciB8fCB0aGlzLnNlbGVjdGVkVGVtcGxhdGU/Lmh0bWxHcmFtbWFyIHx8IHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZT8ubmF0dXJhbFRleHQgfHwgJyc7XG4gIH1cblxuICBnZXRUZW1wbGF0ZVZhcmlhYmxlcygpOiBhbnlbXSB7IHJldHVybiB0aGlzLnRlbXBsYXRlVmFyaWFibGVzOyB9XG4gIGdldFZhcmlhYmxlc0Zvcm0oKTogRm9ybUFycmF5IHsgcmV0dXJuIHRoaXMudmFyaWFibGVzRm9ybTsgfVxuICBnZXRBZHZhbmNlZFZhcmlhYmxlcygpOiBhbnlbXSB7IHJldHVybiB0aGlzLmFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXM7IH1cbiAgZ2V0QWR2YW5jZWRWYXJpYWJsZXNGb3JtKCk6IEZvcm1BcnJheSB7IHJldHVybiB0aGlzLmFkdmFuY2VkVmFyaWFibGVzRm9ybTsgfVxuICBnZXQgaXNBZHZhbmNlZEV4cGFuZGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5hZHZhbmNlZEV4cGFuZGVkOyB9XG4gIHRvZ2dsZUFkdmFuY2VkKCk6IHZvaWQgeyB0aGlzLmFkdmFuY2VkRXhwYW5kZWQgPSAhdGhpcy5hZHZhbmNlZEV4cGFuZGVkOyB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTsgfVxuICBnZXQgaGFzU2VsZWN0ZWRUZW1wbGF0ZSgpOiBBY3Rpb25UZW1wbGF0ZSB8IG51bGwgeyByZXR1cm4gdGhpcy5zZWxlY3RlZFRlbXBsYXRlOyB9XG5cbiAgb25WYXJpYWJsZVZhbHVlQ2hhbmdlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHYgPSB0aGlzLnRlbXBsYXRlVmFyaWFibGVzLmZpbmQodHYgPT4gdHYubmFtZSA9PT0gbmFtZSk7XG4gICAgaWYgKHYpIHYudmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zdCBpZHggPSB0aGlzLnZhcmlhYmxlc0Zvcm0uY29udHJvbHMuZmluZEluZGV4KGMgPT4gYy5nZXQoJ25hbWUnKT8udmFsdWUgPT09IG5hbWUpO1xuICAgIGlmIChpZHggIT09IC0xKSB0aGlzLnZhcmlhYmxlc0Zvcm0uYXQoaWR4KS5nZXQoJ3ZhbHVlJyk/LnNldFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy51cGRhdGVIdG1sR3JhbW1hcigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25WYXJpYWJsZUJvb2xlYW5DaGFuZ2UobmFtZTogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub25WYXJpYWJsZVZhbHVlQ2hhbmdlKG5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIG9uQWR2YW5jZWRWYXJpYWJsZVZhbHVlQ2hhbmdlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHYgPSB0aGlzLmFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXMuZmluZCh0diA9PiB0di5uYW1lID09PSBuYW1lKTtcbiAgICBpZiAodikgdi52YWx1ZSA9IHZhbHVlO1xuICAgIGNvbnN0IGlkeCA9IHRoaXMuYWR2YW5jZWRWYXJpYWJsZXNGb3JtLmNvbnRyb2xzLmZpbmRJbmRleChjID0+IGMuZ2V0KCduYW1lJyk/LnZhbHVlID09PSBuYW1lKTtcbiAgICBpZiAoaWR4ICE9PSAtMSAmJiB2Py50eXBlICE9PSAnc3RyX2xpc3QnKSB7XG4gICAgICAodGhpcy5hZHZhbmNlZFZhcmlhYmxlc0Zvcm0uYXQoaWR4KSBhcyBGb3JtR3JvdXApLmdldCgndmFsdWUnKT8uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gIH1cblxuICBvbkFkdmFuY2VkVmFyaWFibGVCb29sZWFuQ2hhbmdlKG5hbWU6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm9uQWR2YW5jZWRWYXJpYWJsZVZhbHVlQ2hhbmdlKG5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIGlzRm9ybVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5jb25kaXRpb25Gb3JtLnZhbGlkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVWYXJpYWJsZXMuZXZlcnkodiA9PiB7XG4gICAgICBpZiAodi5kYXRhS2V5ID09PSAnZWxlbWVudCcgfHwgdi5kYXRhS2V5ID09PSAndGVzdF9kYXRhJyB8fCB2LmRhdGFLZXkgPT09ICdzb3VyY2VfdmFsdWUnIHx8IHYuZGF0YUtleSA9PT0gJ3RhcmdldF92YWx1ZScpIHtcbiAgICAgICAgcmV0dXJuIHYudmFsdWUgIT09IG51bGwgJiYgdi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHYudmFsdWUgIT09ICcnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHsgdGhpcy5jYW5jZWxsZWQuZW1pdCgpOyB9XG5cbiAgb25TYXZlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Zvcm1WYWxpZCgpKSByZXR1cm47XG4gICAgLy8gU3luYyBhZHZhbmNlZCBmb3JtIHZhbHVlcyBiYWNrIHRvIGFycmF5XG4gICAgdGhpcy5hZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzLmZvckVhY2goKHZhcmlhYmxlLCBpKSA9PiB7XG4gICAgICBjb25zdCBmZyA9IHRoaXMuYWR2YW5jZWRWYXJpYWJsZXNGb3JtLmF0KGkpIGFzIEZvcm1Hcm91cDtcbiAgICAgIGlmICghZmcpIHJldHVybjtcbiAgICAgIGNvbnN0IGZ2ID0gZmcuZ2V0KCd2YWx1ZScpPy52YWx1ZTtcbiAgICAgIGlmICh2YXJpYWJsZS50eXBlID09PSAnc3RyX2xpc3QnICYmIGZ2IGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgIHZhcmlhYmxlLnZhbHVlID0gZnYuY29udHJvbHMubWFwKGMgPT4gYy52YWx1ZSkuZmlsdGVyKCh2YWw6IHN0cmluZykgPT4gdmFsPy50cmltKCkgIT09ICcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhcmlhYmxlLnZhbHVlID0gZnY7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBmaW5hbEFkdmFuY2VkVmFycyA9IFsuLi50aGlzLmFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXNdO1xuICAgIGNvbnN0IHNob3VsZFNraXBWYXIgPSBmaW5hbEFkdmFuY2VkVmFycy5maW5kKHYgPT4gdi5uYW1lID09PSAnc2hvdWxkU2tpcCcpO1xuICAgIGNvbnN0IGlzU3RlcE9wdGlvbmFsVmFyID0gZmluYWxBZHZhbmNlZFZhcnMuZmluZCh2ID0+IHYubmFtZSA9PT0gJ2lzU3RlcE9wdGlvbmFsJyk7XG5cbiAgICB0aGlzLnNhdmUuZW1pdCh7XG4gICAgICB0ZW1wbGF0ZTogdGhpcy5zZWxlY3RlZFRlbXBsYXRlLFxuICAgICAgdGVtcGxhdGVWYXJpYWJsZXM6IFsuLi50aGlzLnRlbXBsYXRlVmFyaWFibGVzXSxcbiAgICAgIGFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXM6IGZpbmFsQWR2YW5jZWRWYXJzLFxuICAgICAgYWN0aW9uOiB0aGlzLnNlbGVjdGVkVGVtcGxhdGU/Lm5hdHVyYWxUZXh0IHx8IHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZT8uaHRtbEdyYW1tYXIgfHwgJycsXG4gICAgICByZXNvbHZlZEFjdGlvbjogdGhpcy5jdXJyZW50SHRtbEdyYW1tYXIsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5jb25kaXRpb25Gb3JtLmdldCgnZGVzY3JpcHRpb24nKT8udmFsdWUgfHwgJycsXG4gICAgICBtZXRhZGF0YTogdGhpcy5jb25kaXRpb25Gb3JtLmdldCgnbWV0YWRhdGEnKT8udmFsdWUgfHwgJycsXG4gICAgICBzaG91bGRTa2lwOiBzaG91bGRTa2lwVmFyID8gISFzaG91bGRTa2lwVmFyLnZhbHVlIDogZmFsc2UsXG4gICAgICBpZ25vcmVTdGVwUmVzdWx0OiBpc1N0ZXBPcHRpb25hbFZhciA/ICEhaXNTdGVwT3B0aW9uYWxWYXIudmFsdWUgOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaC1mdWxsIGNxYS1iZy13aGl0ZSBjcWEtcHgtNCBjcWEtcHktMlwiPlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGgyIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LWJsYWNrLTEwMCBjcWEtbWItNFwiPlxuICAgIHt7IHRpdGxlIH19XG4gIDwvaDI+XG5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZmxleC0xIGNxYS1vdmVyZmxvdy15LWF1dG9cIj5cbiAgICA8IS0tIENvbmRpdGlvbiBCdWlsZGVyIFNlY3Rpb24gLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1tYi02XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTNcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLXRleHQtWzEycHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LWdyYXktOTAwXCI+XG4gICAgICAgICAgQ29uZGl0aW9uIEJ1aWxkZXJcbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFNpbmdsZSBDb25kaXRpb24gUm93IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIiBbZm9ybUdyb3VwXT1cImNvbmRpdGlvbkZvcm1cIj5cbiAgICAgICAgPCEtLSBDb25kaXRpb24gTGFiZWwgKyBUZW1wbGF0ZSBEcm9wZG93biAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPCEtLSBMYWJlbCAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1mb250LXNlbWlib2xkXCI+XG4gICAgICAgICAgICB7eyBjb25kaXRpb25Sb3dMYWJlbCB9fVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBWYWx1ZSBUZW1wbGF0ZSBEcm9wZG93biAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctWzE1MHB4XSBjcWEtdGV4dC1bMTBweF1cIj5cbiAgICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwiY29uZGl0aW9uRm9ybVwiIFtjb25maWddPVwiZ2V0VmFsdWVDb25maWcoKVwiPlxuICAgICAgICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gVGVtcGxhdGUgVmFyaWFibGVzIFNlY3Rpb24gKHNob3duIHdoZW4gdGVtcGxhdGUgaXMgc2VsZWN0ZWQpIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzU2VsZWN0ZWRUZW1wbGF0ZVwiIGNsYXNzPVwiY3FhLW10LTJcIj5cbiAgICAgICAgICA8IS0tIFRlbXBsYXRlIEdyYW1tYXIgRGlzcGxheSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZmxleC13cmFwIGNxYS1nYXAtMSBjcWEtdGV4dC1zbSBjcWEtdGV4dC1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1hY3Rpb24tZm9ybWF0IGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMjNweF0gY3FhLXRleHQtYmxhY2stMTAwXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJjdXJyZW50SHRtbEdyYW1tYXJcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBUZW1wbGF0ZSBWYXJpYWJsZXMgRm9ybSAtLT5cbiAgICAgICAgICA8Y3FhLXRlbXBsYXRlLXZhcmlhYmxlcy1mb3JtXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO1wiXG4gICAgICAgICAgICBbdGVtcGxhdGVWYXJpYWJsZXNdPVwiZ2V0VGVtcGxhdGVWYXJpYWJsZXMoKVwiXG4gICAgICAgICAgICBbdmFyaWFibGVzRm9ybV09XCJnZXRWYXJpYWJsZXNGb3JtKClcIlxuICAgICAgICAgICAgW21ldGFkYXRhXT1cImNvbmRpdGlvbkZvcm0uZ2V0KCdtZXRhZGF0YScpPy52YWx1ZSB8fCAnJ1wiXG4gICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiY29uZGl0aW9uRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnZhbHVlIHx8ICcnXCJcbiAgICAgICAgICAgIFtlbGVtZW50T3B0aW9uc109XCJlbGVtZW50T3B0aW9uc1wiXG4gICAgICAgICAgICBbaGFzTW9yZUVsZW1lbnRzXT1cImhhc01vcmVFbGVtZW50c1wiXG4gICAgICAgICAgICBbaXNMb2FkaW5nRWxlbWVudHNdPVwiaXNMb2FkaW5nRWxlbWVudHNcIlxuICAgICAgICAgICAgW3NjcmVlbk5hbWVPcHRpb25zXT1cInNjcmVlbk5hbWVPcHRpb25zXCJcbiAgICAgICAgICAgIFtoYXNNb3JlU2NyZWVuTmFtZXNdPVwiaGFzTW9yZVNjcmVlbk5hbWVzXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmdTY3JlZW5OYW1lc109XCJpc0xvYWRpbmdTY3JlZW5OYW1lc1wiXG4gICAgICAgICAgICBbcGFyYW1ldGVyT3B0aW9uc109XCJwYXJhbWV0ZXJPcHRpb25zXCJcbiAgICAgICAgICAgIFtoYXNNb3JlUGFyYW1ldGVyc109XCJoYXNNb3JlUGFyYW1ldGVyc1wiXG4gICAgICAgICAgICBbaXNMb2FkaW5nUGFyYW1ldGVyc109XCJpc0xvYWRpbmdQYXJhbWV0ZXJzXCJcbiAgICAgICAgICAgIFtlbnZpcm9ubWVudE9wdGlvbnNdPVwiZW52aXJvbm1lbnRPcHRpb25zXCJcbiAgICAgICAgICAgIFtoYXNNb3JlRW52aXJvbm1lbnRzXT1cImhhc01vcmVFbnZpcm9ubWVudHNcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ0Vudmlyb25tZW50c109XCJpc0xvYWRpbmdFbnZpcm9ubWVudHNcIlxuICAgICAgICAgICAgW3Rlc3RDYXNlRW52aXJvbm1lbnROYW1lXT1cInRlc3RDYXNlRW52aXJvbm1lbnROYW1lXCJcbiAgICAgICAgICAgIFt0ZXN0Q2FzZUVudmlyb25tZW50TGFiZWxTdWZmaXhdPVwidGVzdENhc2VFbnZpcm9ubWVudExhYmVsU3VmZml4XCJcbiAgICAgICAgICAgIFtlbnZpcm9ubWVudExlZ2FjeURlcHJlY2F0aW9uTWVzc2FnZV09XCJlbnZpcm9ubWVudExlZ2FjeURlcHJlY2F0aW9uTWVzc2FnZVwiXG4gICAgICAgICAgICBbdGVzdENhc2VUZXN0RGF0YUlkXT1cInRlc3RDYXNlVGVzdERhdGFJZFwiXG4gICAgICAgICAgICBbaGFzVGVzdERhdGFQcm9maWxlXT1cImhhc1Rlc3REYXRhUHJvZmlsZVwiXG4gICAgICAgICAgICBbaXNJbnNpZGVGb3JMb29wU3RlcF09XCJpc0luc2lkZUZvckxvb3BTdGVwXCJcbiAgICAgICAgICAgIFtnbG9iYWxWYXJpYWJsZU9wdGlvbnNdPVwiZ2xvYmFsVmFyaWFibGVPcHRpb25zXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmdHbG9iYWxWYXJpYWJsZXNdPVwiaXNMb2FkaW5nR2xvYmFsVmFyaWFibGVzXCJcbiAgICAgICAgICAgIFtkZWZhdWx0VGVzdERhdGFQcm9maWxlSWRdPVwiZGVmYXVsdFRlc3REYXRhUHJvZmlsZUlkXCJcbiAgICAgICAgICAgIFtkZWZhdWx0VGVzdERhdGFTdGFydEluZGV4XT1cImRlZmF1bHRUZXN0RGF0YVN0YXJ0SW5kZXhcIlxuICAgICAgICAgICAgW2RlZmF1bHRUZXN0RGF0YUVuZEluZGV4XT1cImRlZmF1bHRUZXN0RGF0YUVuZEluZGV4XCJcbiAgICAgICAgICAgICh2YXJpYWJsZVZhbHVlQ2hhbmdlKT1cIm9uVmFyaWFibGVWYWx1ZUNoYW5nZSgkZXZlbnQubmFtZSwgJGV2ZW50LnZhbHVlKVwiXG4gICAgICAgICAgICAodmFyaWFibGVCb29sZWFuQ2hhbmdlKT1cIm9uVmFyaWFibGVCb29sZWFuQ2hhbmdlKCRldmVudC5uYW1lLCAkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICAgIChtZXRhZGF0YUNoYW5nZSk9XCJjb25kaXRpb25Gb3JtLmdldCgnbWV0YWRhdGEnKT8uc2V0VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZGVzY3JpcHRpb25DaGFuZ2UpPVwiY29uZGl0aW9uRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnNldFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgKGxvYWRNb3JlRWxlbWVudHMpPVwibG9hZE1vcmVFbGVtZW50cy5lbWl0KClcIlxuICAgICAgICAgICAgKHNlYXJjaEVsZW1lbnRzKT1cInNlYXJjaEVsZW1lbnRzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VhcmNoRWxlbWVudHNCeVNjcmVlbk5hbWUpPVwic2VhcmNoRWxlbWVudHNCeVNjcmVlbk5hbWUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjcmVhdGVFbGVtZW50KT1cImNyZWF0ZUVsZW1lbnQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWFyY2hTY3JlZW5OYW1lKT1cInNlYXJjaFNjcmVlbk5hbWUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChsb2FkTW9yZVNjcmVlbk5hbWVzKT1cImxvYWRNb3JlU2NyZWVuTmFtZXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjcmVhdGVTY3JlZW5OYW1lUmVxdWVzdCk9XCJjcmVhdGVTY3JlZW5OYW1lUmVxdWVzdC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKHNlYXJjaFBhcmFtZXRlcnMpPVwic2VhcmNoUGFyYW1ldGVycy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGxvYWRNb3JlUGFyYW1ldGVycyk9XCJsb2FkTW9yZVBhcmFtZXRlcnMuZW1pdCgpXCJcbiAgICAgICAgICAgIChzZWFyY2hFbnZpcm9ubWVudHMpPVwic2VhcmNoRW52aXJvbm1lbnRzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAobG9hZE1vcmVFbnZpcm9ubWVudHMpPVwibG9hZE1vcmVFbnZpcm9ubWVudHMuZW1pdCgpXCJcbiAgICAgICAgICAgIChzZWFyY2hHbG9iYWxWYXJpYWJsZXMpPVwic2VhcmNoR2xvYmFsVmFyaWFibGVzLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY3FhLXRlbXBsYXRlLXZhcmlhYmxlcy1mb3JtPlxuXG4gICAgICAgICAgPCEtLSBBZHZhbmNlZCBTZXR0aW5ncyBWYXJpYWJsZXMgRm9ybSAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2V0QWR2YW5jZWRWYXJpYWJsZXMoKS5sZW5ndGggPiAwXCIgY2xhc3M9XCJjcWEtbXQtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtdy1mdWxsXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtdy1mdWxsIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtYm9yZGVyLW5vbmUgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1wLTAgY3FhLW1iLTEuNVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFkdmFuY2VkKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XVwiPkFkdmFuY2VkPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LWJhc2VcIiBbY2xhc3MuY3FhLXJvdGF0ZS0xODBdPVwiaXNBZHZhbmNlZEV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICBleHBhbmRfbW9yZVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNBZHZhbmNlZEV4cGFuZGVkXCIgY2xhc3M9XCJjcWEtbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxjcWEtYWR2YW5jZWQtdmFyaWFibGVzLWZvcm1cbiAgICAgICAgICAgICAgICAgIFthZHZhbmNlZFZhcmlhYmxlc109XCJnZXRBZHZhbmNlZFZhcmlhYmxlcygpXCJcbiAgICAgICAgICAgICAgICAgIFthZHZhbmNlZFZhcmlhYmxlRm9ybV09XCJnZXRBZHZhbmNlZFZhcmlhYmxlc0Zvcm0oKVwiXG4gICAgICAgICAgICAgICAgICAodmFyaWFibGVCb29sZWFuQ2hhbmdlKT1cIm9uQWR2YW5jZWRWYXJpYWJsZUJvb2xlYW5DaGFuZ2UoJGV2ZW50Lm5hbWUsICRldmVudC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgKHZhcmlhYmxlVmFsdWVDaGFuZ2UpPVwib25BZHZhbmNlZFZhcmlhYmxlVmFsdWVDaGFuZ2UoJGV2ZW50Lm5hbWUsICRldmVudC52YWx1ZSlcIj5cbiAgICAgICAgICAgICAgICA8L2NxYS1hZHZhbmNlZC12YXJpYWJsZXMtZm9ybT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBY3Rpb24gQnV0dG9ucyAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS13LWZ1bGwgY3FhLWdhcC0yIGNxYS1tdC1hdXRvIGNxYS1wdC00IGNxYS1ib3JkZXItdCBjcWEtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgPGNxYS1idXR0b24gY2xhc3M9XCJjcWEtdy0xLzJcIiB2YXJpYW50PVwib3V0bGluZWRcIiB0ZXh0PVwiQ2FuY2VsXCIgW2N1c3RvbUNsYXNzXT1cIidjcWEtZmxleC0xIGNxYS13LWZ1bGwnXCJcbiAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIj5cbiAgICA8L2NxYS1idXR0b24+XG4gICAgPGNxYS1idXR0b24gKm5nSWY9XCIhaXNTYXZpbmdcIiBjbGFzcz1cImNxYS13LTEvMlwiIHZhcmlhbnQ9XCJmaWxsZWRcIiBbdGV4dF09XCJzYXZlQnV0dG9uTGFiZWxcIlxuICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtZmxleC0xIGNxYS13LWZ1bGwnXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWQoKVwiXG4gICAgICAoY2xpY2tlZCk9XCJvblNhdmUoKVwiPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNTYXZpbmdcIiBjbGFzcz1cImNxYS13LTEvMiBjcWEtZmxleC0xIGNxYS1taW4taC1bMzhweF0gY3FhLXJvdW5kZWQtWzhweF1cIj5cbiAgICAgIDxjcWEtYmFkZ2UgbGFiZWw9XCJTYXZpbmfigKZcIiBpY29uPVwiYXV0b3JlbmV3XCIgW2lzTG9hZGluZ109XCJ0cnVlXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgW2NlbnRlckNvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgIFtpbmxpbmVTdHlsZXNdPVwiJ21pbi1oZWlnaHQ6IDM4cHg7IGhlaWdodDogMzhweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7J1wiXG4gICAgICAgIHZhcmlhbnQ9XCJpbmZvXCIgc2l6ZT1cIm1lZGl1bVwiPjwvY3FhLWJhZGdlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
449
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWJyYW5jaC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2NvbmRpdGlvbi1kZWJ1Zy1zdGVwL2NvbmRpdGlvbi1icmFuY2gtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9jb25kaXRpb24tZGVidWctc3RlcC9jb25kaXRpb24tYnJhbmNoLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUN0Qyx1QkFBdUIsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBMEIsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBbUI1Rjs7Ozs7O0dBTUc7QUFRSCxNQUFNLE9BQU8sOEJBQThCO0lBc0h6QyxZQUFvQixFQUFlLEVBQVUsR0FBc0I7UUFBL0MsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBcEhuRSxpR0FBaUc7UUFDeEYsU0FBSSxHQUEyQixhQUFhLENBQUM7UUFFdEQseUVBQXlFO1FBQ2hFLHVCQUFrQixHQUFxQixFQUFFLENBQUM7UUFFbkQsbUVBQW1FO1FBQzFELGtDQUE2QixHQUF3RCxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFFdkcsbURBQW1EO1FBQzFDLGlDQUE0QixHQUF3RCxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFLdEcseUNBQXlDO1FBQ2hDLG1CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxzQkFBaUIs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cHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25UZW1wbGF0ZSB9IGZyb20gJy4uLy4uL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItYWN0aW9uL3N0ZXAtYnVpbGRlci1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25CcmFuY2hTYXZlRGF0YSB7XG4gIHRlbXBsYXRlOiBBY3Rpb25UZW1wbGF0ZSB8IG51bGw7XG4gIHRlbXBsYXRlVmFyaWFibGVzOiBhbnlbXTtcbiAgYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlczogYW55W107XG4gIGFjdGlvbjogc3RyaW5nO1xuICAvKiogUmVzb2x2ZWQgSFRNTCBncmFtbWFyIHdpdGggYWN0dWFsIHZhcmlhYmxlIHZhbHVlcyBzdWJzdGl0dXRlZCDigJQgdXNlIGZvciBkaXNwbGF5L2NvbmRpdGlvblRleHQgKi9cbiAgcmVzb2x2ZWRBY3Rpb246IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWV0YWRhdGE6IHN0cmluZztcbiAgLyoqIERlcml2ZWQgZnJvbSBhZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzICdzaG91bGRTa2lwJyBlbnRyeSDigJQgc3RlcCBzaG91bGQgYmUgc2tpcHBlZCBkdXJpbmcgZXhlY3V0aW9uICovXG4gIHNob3VsZFNraXA6IGJvb2xlYW47XG4gIC8qKiBEZXJpdmVkIGZyb20gYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlcyAnaXNTdGVwT3B0aW9uYWwnIGVudHJ5IOKAlCBzdGVwIGZhaWx1cmUgc2hvdWxkIG5vdCBmYWlsIHRoZSB0ZXN0ICovXG4gIGlnbm9yZVN0ZXBSZXN1bHQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogTGlnaHR3ZWlnaHQgc2luZ2xlLWNvbmRpdGlvbiBlZGl0b3IgdXNlZCBpbiBkZWJ1ZyBtb2RlIHRvOlxuICogIC0gQWRkIGEgbmV3IEVMU0UgSUYgYnJhbmNoIChtb2RlID0gJ2FkZC1lbHNlLWlmJylcbiAqICAtIEVkaXQgYW4gZXhpc3RpbmcgSUYgb3IgRUxTRSBJRiBjb25kaXRpb24gKG1vZGUgPSAnZWRpdCcpXG4gKlxuICogVGhpcyBpcyBhIHNpbXBsaWZpZWQgdmFyaWFudCBvZiBTdGVwQnVpbGRlckNvbmRpdGlvbkNvbXBvbmVudCB3aXRoIG9uZSBjb25kaXRpb24gcm93LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtY29uZGl0aW9uLWJyYW5jaC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZGl0aW9uLWJyYW5jaC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENvbmRpdGlvbkJyYW5jaEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAvKiogJ2FkZC1lbHNlLWlmJyBzaG93cyBcIkFkZCBFTFNFIElGXCIgdGl0bGUvYnV0dG9uOyAnZWRpdCcgc2hvd3MgXCJFZGl0IENvbmRpdGlvblwiIHRpdGxlL2J1dHRvbiAqL1xuICBASW5wdXQoKSBtb2RlOiAnYWRkLWVsc2UtaWYnIHwgJ2VkaXQnID0gJ2FkZC1lbHNlLWlmJztcblxuICAvKiogTGlzdCBvZiBjb25kaXRpb24gYWN0aW9uIHRlbXBsYXRlcyAoZmlsdGVyZWQgdG8gSUZfQ09ORElUSU9OIHR5cGUpICovXG4gIEBJbnB1dCgpIGNvbmRpdGlvblRlbXBsYXRlczogQWN0aW9uVGVtcGxhdGVbXSA9IFtdO1xuXG4gIC8qKiBDYWxsZWQgdG8gZGVyaXZlIHRlbXBsYXRlIHZhcmlhYmxlcyBmcm9tIGEgc2VsZWN0ZWQgdGVtcGxhdGUgKi9cbiAgQElucHV0KCkgc2V0Q29uZGl0aW9uVGVtcGxhdGVWYXJpYWJsZXM6ICh0ZW1wbGF0ZTogQWN0aW9uVGVtcGxhdGUsIHRlc3RTdGVwPzogYW55KSA9PiBhbnlbXSA9ICgpID0+IFtdO1xuXG4gIC8qKiBDYWxsZWQgdG8gZGVyaXZlIGFkdmFuY2VkIHNldHRpbmdzIHZhcmlhYmxlcyAqL1xuICBASW5wdXQoKSBzZXRBZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzOiAodGVtcGxhdGU6IEFjdGlvblRlbXBsYXRlLCB0ZXN0U3RlcD86IGFueSkgPT4gYW55W10gPSAoKSA9PiBbXTtcblxuICAvKiogQ2VudHJhbGlzZWQgSFRNTCBncmFtbWFyIGNvbXB1dGF0aW9uIGZ1bmN0aW9uICovXG4gIEBJbnB1dCgpIGNvbXB1dGVIdG1sR3JhbW1hckZuPzogKHRlbXBsYXRlOiBhbnksIHZhcmlhYmxlczogYW55W10pID0+IHN0cmluZztcblxuICAvKiogRWxlbWVudCBvcHRpb25zIGZvciB2YXJpYWJsZSBmb3JtcyAqL1xuICBASW5wdXQoKSBlbGVtZW50T3B0aW9uczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaGFzTW9yZUVsZW1lbnRzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0VsZW1lbnRzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNjcmVlbk5hbWVPcHRpb25zOiB7IGlkPzogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfVtdID0gW107XG4gIEBJbnB1dCgpIGhhc01vcmVTY3JlZW5OYW1lczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0xvYWRpbmdTY3JlZW5OYW1lczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXJhbWV0ZXJPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBoYXNNb3JlUGFyYW1ldGVyczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0xvYWRpbmdQYXJhbWV0ZXJzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVudmlyb25tZW50T3B0aW9uczogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGVudmlyb25tZW50OiBzdHJpbmc7IHR5cGU/OiBzdHJpbmc7IHBlcm1pc3Npb25Nb2RlPzogc3RyaW5nIH1bXSA9IFtdO1xuICBASW5wdXQoKSBoYXNNb3JlRW52aXJvbm1lbnRzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0Vudmlyb25tZW50czogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogUmVzb2x2ZWQgdGVzdC1jYXNlIGVudiBuYW1lOyBkcml2ZXMgYmFubmVyICsgZW52LWRyb3Bkb3duIGF1dG8tc2VsZWN0ICsgbG9jayBpbiBpbm5lciB0ZW1wbGF0ZS12YXJpYWJsZXMtZm9ybS4gKi9cbiAgQElucHV0KCkgdGVzdENhc2VFbnZpcm9ubWVudE5hbWU/OiBzdHJpbmc7XG4gIC8qKiBTdWZmaXggb24gdGhlIGVudi1uYW1lIG9wdGlvbiBsYWJlbCAoZS5nLiAnKGRlZmF1bHQpJykuIEFsc28gbG9ja3MgdGhlIGVudiBkcm9wZG93bi4gKi9cbiAgQElucHV0KCkgdGVzdENhc2VFbnZpcm9ubWVudExhYmVsU3VmZml4Pzogc3RyaW5nO1xuICAvKiogSXRhbGljIG5vdGUgcmVuZGVyZWQgdW5kZXIgZW52IGRyb3Bkb3duIGluIHRoZSBpbm5lciBmb3JtLiAqL1xuICBASW5wdXQoKSBlbnZpcm9ubWVudExlZ2FjeURlcHJlY2F0aW9uTWVzc2FnZT86IHN0cmluZztcbiAgLyoqIFRlc3QgY2FzZSdzIFREUCBpZCDigJQgZ2F0ZXMgdGhlIFRlc3QgRGF0YSBQcm9maWxlIHRhYiBpbiB0aGUgaW5uZXIgZm9ybS4gKi9cbiAgQElucHV0KCkgdGVzdENhc2VUZXN0RGF0YUlkPzogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIFdoZW4gdHJ1ZSAob3IgYGlzSW5zaWRlRm9yTG9vcFN0ZXBgIHRydWUpLCB0aGUgaW5uZXIgZm9ybSBzaG93cyB0aGUgVGVzdFxuICAgKiAgRGF0YSBQcm9maWxlIHNlZ21lbnQuIFdpdGhvdXQgdGhpcywgdGhlIGxpYiBkZWZhdWx0cyB0aGUgc2VnbWVudCBpbixcbiAgICogIGV2ZW4gdGhvdWdoIHRoZSB0ZXN0IGNhc2UgaGFzIG5vIFREUCDigJQgd2hpY2ggaXMgd2hhdCBzaG93cyB0aGUgdGFiIGluIHRoZVxuICAgKiAgZGVidWctc2NyZWVuIGNvbmRpdGlvbi1icmFuY2ggZWRpdG9yLiAqL1xuICBASW5wdXQoKSBoYXNUZXN0RGF0YVByb2ZpbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFRydWUgd2hlbiB0aGlzIGJyYW5jaCBsaXZlcyBpbnNpZGUgYSBGT1ItbG9vcCBzdGVwLiAqL1xuICBASW5wdXQoKSBpc0luc2lkZUZvckxvb3BTdGVwOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBXb3Jrc3BhY2Utc2NvcGVkIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRoZSBHbG9iYWwgRGF0YSB0YWIuICovXG4gIEBJbnB1dCgpIGdsb2JhbFZhcmlhYmxlT3B0aW9uczogeyBpZDogbnVtYmVyIHwgc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IHR5cGU/OiBzdHJpbmc7IHJlYWRXcml0ZU1vZGU/OiBzdHJpbmcgfVtdID0gW107XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0dsb2JhbFZhcmlhYmxlczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWZhdWx0VGVzdERhdGFQcm9maWxlSWQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGRlZmF1bHRUZXN0RGF0YVN0YXJ0SW5kZXg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFbmQgaW5kZXggb2YgdGhlIGluaGVyaXRlZCBkYXRhc2V0IHJhbmdlICgwLWJhc2VkKS4gRHJpdmVzIGJvdGggdGhlXG4gICAqIERhdGEgU2V0IEVuZCBkcm9wZG93biBsb2NrIGFuZCB0aGUgYXV0by1wb3B1bGF0aW9uIG9mIHRlc3QtZGF0YSB2YXJpYWJsZXNcbiAgICogZnJvbSB0aGUgZW5kLXJvdyBpbnNpZGUgY3FhLXRlbXBsYXRlLXZhcmlhYmxlcy1mb3JtLiBGb3J3YXJkZWQgdG8gdGhlXG4gICAqIGlubmVyIGZvcm0uIFdpdGhvdXQgdGhpcywgdGhlIHBhcmVudCAoZS5nLiBkZWJ1Zy1zY3JlZW4gY29uZGl0aW9uLWJyYW5jaFxuICAgKiBmbG93KSBjYW4ndCBmdWxseSByZXByb2R1Y2UgdGhlIGxvY2sgcGFyaXR5IHRoYXRcbiAgICogY3FhLXN0ZXAtYnVpbGRlci1hY3Rpb24gZ2V0cyB2aWEgYXBwLXN0ZXAtYnVpbGRlci5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRUZXN0RGF0YUVuZEluZGV4PzogbnVtYmVyO1xuXG4gIC8qKiBXaGVuIHByb3ZpZGVkLCBwcmUtcG9wdWxhdGVzIHRoZSBmb3JtIGZvciBlZGl0IG1vZGUuIHNoYXBlOiB7IHRlbXBsYXRlSWQsIHRlbXBsYXRlVmFyaWFibGVzLCBhY3Rpb24gfSAqL1xuICBASW5wdXQoKSBpbml0aWFsQ29uZGl0aW9uRGF0YT86IHtcbiAgICB0ZW1wbGF0ZUlkPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHRlbXBsYXRlVmFyaWFibGVzPzogYW55W107XG4gICAgYWN0aW9uPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKiBSYXcgYnJhbmNoIHN0ZXAgb2JqZWN0IOKAlCBwYXNzZWQgdGhyb3VnaCB0byBzZXRDb25kaXRpb25UZW1wbGF0ZVZhcmlhYmxlcyBzbyB0aGUgc2VydmljZSBjYW4gZXh0cmFjdCBzYXZlZCB2YWx1ZXMgZnJvbSBzdGVwLmV2ZW50ICovXG4gIEBJbnB1dCgpIGVkaXRUZXN0U3RlcD86IGFueTtcblxuICAvKiogTGFiZWwgc2hvd24gbmV4dCB0byB0aGUgY29uZGl0aW9uIHRlbXBsYXRlIGRyb3Bkb3duIChlLmcuICdJRicsICdFTFNFIElGJykuIEluZmVycmVkIGZyb20gbW9kZSB3aGVuIG5vdCBwcm92aWRlZC4gKi9cbiAgQElucHV0KCkgYnJhbmNoTGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFRydWUgd2hpbGUgdGhlIHBhcmVudCBpcyBzYXZpbmcgKGRpc2FibGVzL3Nob3dzIGxvYWRlciBvbiBTYXZlIGJ1dHRvbikgKi9cbiAgQElucHV0KCkgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZGl0aW9uQnJhbmNoU2F2ZURhdGE+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZUVsZW1lbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoRWxlbWVudHMgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHNlYXJjaEVsZW1lbnRzQnlTY3JlZW5OYW1lID0gbmV3IEV2ZW50RW1pdHRlcjx7IHNjcmVlbk5hbWVJZDogbnVtYmVyOyBzZWFyY2hUZXJtPzogc3RyaW5nIH0+KCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVFbGVtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBzZWFyY2hTY3JlZW5OYW1lID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZVNjcmVlbk5hbWVzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVTY3JlZW5OYW1lUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoUGFyYW1ldGVycyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgbG9hZE1vcmVQYXJhbWV0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoRW52aXJvbm1lbnRzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZUVudmlyb25tZW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHNlYXJjaEdsb2JhbFZhcmlhYmxlcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbmRpdGlvbkZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFRlbXBsYXRlOiBBY3Rpb25UZW1wbGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRlbXBsYXRlVmFyaWFibGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIHZhcmlhYmxlc0Zvcm0hOiBGb3JtQXJyYXk7XG4gIHByaXZhdGUgYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBhZHZhbmNlZFZhcmlhYmxlc0Zvcm0hOiBGb3JtQXJyYXk7XG4gIHByaXZhdGUgYWR2YW5jZWRFeHBhbmRlZCA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWRIdG1sR3JhbW1hciA9ICcnO1xuXG4gIHByaXZhdGUgdmFsdWVDb25maWdDYWNoZTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgdmFsdWVDb25maWdXaXRoSGFuZGxlcjogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ0VkaXQgQ29uZGl0aW9uJyA6ICdBZGQgRUxTRSBJRic7XG4gIH1cblxuICBnZXQgc2F2ZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ1NhdmUnIDogJ0FkZCBFTFNFIElGJztcbiAgfVxuXG4gIGdldCBjb25kaXRpb25Sb3dMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJyYW5jaExhYmVsID8/ICh0aGlzLm1vZGUgPT09ICdlZGl0JyA/ICdJRicgOiAnRUxTRSBJRicpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhcmlhYmxlc0Zvcm0gPSB0aGlzLmZiLmFycmF5KFtdKTtcbiAgICB0aGlzLmFkdmFuY2VkVmFyaWFibGVzRm9ybSA9IHRoaXMuZmIuYXJyYXkoW10pO1xuXG4gICAgdGhpcy5jb25kaXRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB2YWx1ZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZGVzY3JpcHRpb246IFsnJ10sXG4gICAgICBtZXRhZGF0YTogWycnXSxcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlVmFsdWVDb25maWdDYWNoZSgpO1xuXG4gICAgLy8gUHJlLXBvcHVsYXRlIGZvciBlZGl0IG1vZGVcbiAgICBpZiAodGhpcy5tb2RlID09PSAnZWRpdCcgJiYgdGhpcy5pbml0aWFsQ29uZGl0aW9uRGF0YSkge1xuICAgICAgdGhpcy5wcmVmaWxsRnJvbUluaXRpYWxEYXRhKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmRpdGlvblRlbXBsYXRlcyddICYmICFjaGFuZ2VzWydjb25kaXRpb25UZW1wbGF0ZXMnXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUNvbmZpZ0NhY2hlKCk7XG4gICAgICB0aGlzLnZhbHVlQ29uZmlnV2l0aEhhbmRsZXIgPSBudWxsO1xuICAgICAgLy8gUmUtcHJlZmlsbCBpZiB3ZSBub3cgaGF2ZSB0ZW1wbGF0ZXMgYW5kIHdlcmUgd2FpdGluZ1xuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmIHRoaXMuaW5pdGlhbENvbmRpdGlvbkRhdGEgJiYgIXRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLnByZWZpbGxGcm9tSW5pdGlhbERhdGEoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHByZWZpbGxGcm9tSW5pdGlhbERhdGEoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmluaXRpYWxDb25kaXRpb25EYXRhIHx8ICF0aGlzLmNvbmRpdGlvblRlbXBsYXRlcz8ubGVuZ3RoKSByZXR1cm47XG5cbiAgICBjb25zdCB7IHRlbXBsYXRlSWQsIGFjdGlvbiwgZGVzY3JpcHRpb24sIG1ldGFkYXRhIH0gPSB0aGlzLmluaXRpYWxDb25kaXRpb25EYXRhO1xuXG4gICAgLy8gRmluZCBtYXRjaGluZyB0ZW1wbGF0ZVxuICAgIGxldCB0ZW1wbGF0ZTogQWN0aW9uVGVtcGxhdGUgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHRlbXBsYXRlSWQgIT0gbnVsbCkge1xuICAgICAgdGVtcGxhdGUgPSB0aGlzLmNvbmRpdGlvblRlbXBsYXRlcy5maW5kKFxuICAgICAgICB0ID0+IFN0cmluZyh0LmlkKSA9PT0gU3RyaW5nKHRlbXBsYXRlSWQpIHx8IHQuZGlzcGxheU5hbWUgPT09IFN0cmluZyh0ZW1wbGF0ZUlkKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0ZW1wbGF0ZSAmJiBhY3Rpb24pIHtcbiAgICAgIHRlbXBsYXRlID0gdGhpcy5jb25kaXRpb25UZW1wbGF0ZXMuZmluZChcbiAgICAgICAgdCA9PiB0Lm5hdHVyYWxUZXh0ID09PSBhY3Rpb24gfHwgdC5odG1sR3JhbW1hciA9PT0gYWN0aW9uIHx8IHQuZGlzcGxheU5hbWUgPT09IGFjdGlvblxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGVtcGxhdGUpIHtcbiAgICAgIGNvbnN0IHNlbGVjdElkID0gdGVtcGxhdGUuaWQ/LnRvU3RyaW5nKCkgfHwgdGVtcGxhdGUuZGlzcGxheU5hbWUgfHwgJyc7XG4gICAgICB0aGlzLmNvbmRpdGlvbkZvcm0/LmdldCgndmFsdWUnKT8uc2V0VmFsdWUoc2VsZWN0SWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuXG4gICAgICAvLyBHZXQgZnJlc2ggdmFyaWFibGVzIHN0cnVjdHVyZSB3aXRoIHNhdmVkIHZhbHVlcyBieSBwYXNzaW5nIHRoZSByYXcgc3RlcFxuICAgICAgY29uc3QgdmFycyA9IHRoaXMuc2V0Q29uZGl0aW9uVGVtcGxhdGVWYXJpYWJsZXModGVtcGxhdGUsIHRoaXMuZWRpdFRlc3RTdGVwKTtcbiAgICAgIHRoaXMudGVtcGxhdGVWYXJpYWJsZXMgPSB2YXJzO1xuXG4gICAgICB0aGlzLmJ1aWxkVmFyaWFibGVzRm9ybSgpO1xuICAgICAgdGhpcy51cGRhdGVIdG1sR3JhbW1hcigpO1xuXG4gICAgICAvLyBBZHZhbmNlZCB2YXJpYWJsZXNcbiAgICAgIGlmICh0aGlzLnNldEFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXMpIHtcbiAgICAgICAgdGhpcy5hZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzID0gdGhpcy5zZXRBZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzKHRlbXBsYXRlLCB0aGlzLmVkaXRUZXN0U3RlcCk7XG4gICAgICAgIHRoaXMuYnVpbGRBZHZhbmNlZFZhcmlhYmxlc0Zvcm0oKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVzY3JpcHRpb24pIHRoaXMuY29uZGl0aW9uRm9ybT8uZ2V0KCdkZXNjcmlwdGlvbicpPy5zZXRWYWx1ZShkZXNjcmlwdGlvbiwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIGlmIChtZXRhZGF0YSkgdGhpcy5jb25kaXRpb25Gb3JtPy5nZXQoJ21ldGFkYXRhJyk/LnNldFZhbHVlKG1ldGFkYXRhLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlQ29uZmlnQ2FjaGUoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0czogU2VsZWN0T3B0aW9uW10gPSAodGhpcy5jb25kaXRpb25UZW1wbGF0ZXMgfHwgW10pLm1hcCh0ID0+ICh7XG4gICAgICBpZDogdC5pZD8udG9TdHJpbmcoKSB8fCB0LmRpc3BsYXlOYW1lIHx8ICcnLFxuICAgICAgdmFsdWU6IHQuaWQ/LnRvU3RyaW5nKCkgfHwgdC5kaXNwbGF5TmFtZSB8fCAnJyxcbiAgICAgIG5hbWU6IHQuaHRtbEdyYW1tYXIgfHwgdC5uYXR1cmFsVGV4dCB8fCAnJyxcbiAgICAgIGxhYmVsOiB0Lmh0bWxHcmFtbWFyIHx8IHQubmF0dXJhbFRleHQgfHwgJydcbiAgICB9KSk7XG4gICAgdGhpcy52YWx1ZUNvbmZpZ0NhY2hlID0ge1xuICAgICAga2V5OiAndmFsdWUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgQ29uZGl0aW9uIFRlbXBsYXRlKicsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgICAgZGlzcGxheUxhYmVsQXNJbm5lckh0bWw6IHRydWUsXG4gICAgICBvcHRpb25zOiBvcHRzXG4gICAgfTtcbiAgfVxuXG4gIGdldFZhbHVlQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgaWYgKHRoaXMudmFsdWVDb25maWdXaXRoSGFuZGxlcikgcmV0dXJuIHRoaXMudmFsdWVDb25maWdXaXRoSGFuZGxlcjtcbiAgICBpZiAoIXRoaXMudmFsdWVDb25maWdDYWNoZSkgdGhpcy51cGRhdGVWYWx1ZUNvbmZpZ0NhY2hlKCk7XG4gICAgdGhpcy52YWx1ZUNvbmZpZ1dpdGhIYW5kbGVyID0ge1xuICAgICAgLi4udGhpcy52YWx1ZUNvbmZpZ0NhY2hlISxcbiAgICAgIG9uQ2hhbmdlOiAodjogYW55KSA9PiB0aGlzLm9uVGVtcGxhdGVWYWx1ZUNoYW5nZSh2KVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDb25maWdXaXRoSGFuZGxlcjtcbiAgfVxuXG4gIG9uVGVtcGxhdGVWYWx1ZUNoYW5nZSh0ZW1wbGF0ZUlkOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMuY29uZGl0aW9uVGVtcGxhdGVzLmZpbmQoXG4gICAgICB0ID0+IFN0cmluZyh0LmlkKSA9PT0gU3RyaW5nKHRlbXBsYXRlSWQpIHx8IHQuZGlzcGxheU5hbWUgPT09IFN0cmluZyh0ZW1wbGF0ZUlkKVxuICAgICk7XG4gICAgaWYgKHRlbXBsYXRlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAgIHRoaXMudGVtcGxhdGVWYXJpYWJsZXMgPSB0aGlzLnNldENvbmRpdGlvblRlbXBsYXRlVmFyaWFibGVzKHRlbXBsYXRlKTtcbiAgICAgIHRoaXMuYnVpbGRWYXJpYWJsZXNGb3JtKCk7XG4gICAgICB0aGlzLnVwZGF0ZUh0bWxHcmFtbWFyKCk7XG4gICAgICBpZiAodGhpcy5zZXRBZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzKSB7XG4gICAgICAgIHRoaXMuYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlcyA9IHRoaXMuc2V0QWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlcyh0ZW1wbGF0ZSk7XG4gICAgICAgIHRoaXMuYnVpbGRBZHZhbmNlZFZhcmlhYmxlc0Zvcm0oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gbnVsbDtcbiAgICAgIHRoaXMudGVtcGxhdGVWYXJpYWJsZXMgPSBbXTtcbiAgICAgIHRoaXMuY2xlYXJWYXJpYWJsZXNGb3JtKCk7XG4gICAgICB0aGlzLmFkdmFuY2VkU2V0dGluZ3NWYXJpYWJsZXMgPSBbXTtcbiAgICAgIHRoaXMuY2xlYXJBZHZhbmNlZFZhcmlhYmxlc0Zvcm0oKTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVmFyaWFibGVzRm9ybSgpOiB2b2lkIHtcbiAgICB3aGlsZSAodGhpcy52YXJpYWJsZXNGb3JtLmxlbmd0aCkgdGhpcy52YXJpYWJsZXNGb3JtLnJlbW92ZUF0KDApO1xuICAgIHRoaXMudGVtcGxhdGVWYXJpYWJsZXMuZm9yRWFjaCh2YXJpYWJsZSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSB2YXJpYWJsZS50eXBlID09PSAnYm9vbGVhbidcbiAgICAgICAgPyAodmFyaWFibGUudmFsdWUgPT09IHRydWUgfHwgdmFyaWFibGUudmFsdWUgPT09ICd0cnVlJyB8fCB2YXJpYWJsZS52YWx1ZSA9PT0gMSlcbiAgICAgICAgOiAodmFyaWFibGUudmFsdWUgfHwgJycpO1xuICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgbmFtZTogW3ZhcmlhYmxlLm5hbWVdLFxuICAgICAgICB2YWx1ZTogW2RlZmF1bHRWYWx1ZV0sXG4gICAgICAgIHR5cGU6IFt2YXJpYWJsZS50eXBlIHx8ICdzdHJpbmcnXSxcbiAgICAgICAgbGFiZWw6IFt2YXJpYWJsZS5sYWJlbCB8fCAnJ10sXG4gICAgICAgIG9wdGlvbnM6IFt2YXJpYWJsZS5vcHRpb25zIHx8IFtdXVxuICAgICAgfSk7XG4gICAgICBjb25zdCBsYWJlbCA9IHZhcmlhYmxlLmxhYmVsPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuICAgICAgaWYgKGxhYmVsID09PSAndGVzdC1kYXRhJyB8fCBsYWJlbCA9PT0gJ3NvdXJjZS12YWx1ZScgfHwgbGFiZWwgPT09ICd0YXJnZXQtdmFsdWUnIHx8XG4gICAgICAgICAgbGFiZWwgPT09ICdzb3VyY2VfdmFsdWUnIHx8IGxhYmVsID09PSAndGFyZ2V0X3ZhbHVlJykge1xuICAgICAgICBjb25zdCB2YWx1ZVN0ciA9IFN0cmluZyhkZWZhdWx0VmFsdWUgfHwgJycpO1xuICAgICAgICBsZXQgZGF0YVR5cGUgPSAncGxhaW4tdGV4dCc7XG4gICAgICAgIGlmICh2YWx1ZVN0ci5zdGFydHNXaXRoKCdAfCcpICYmIHZhbHVlU3RyLmVuZHNXaXRoKCd8JykpIGRhdGFUeXBlID0gJ3BhcmFtZXRlcic7XG4gICAgICAgIGVsc2UgaWYgKHZhbHVlU3RyLnN0YXJ0c1dpdGgoJyR8JykgJiYgdmFsdWVTdHIuZW5kc1dpdGgoJ3wnKSkgZGF0YVR5cGUgPSAncnVudGltZSc7XG4gICAgICAgIGVsc2UgaWYgKHZhbHVlU3RyLnN0YXJ0c1dpdGgoJyp8JykgJiYgdmFsdWVTdHIuZW5kc1dpdGgoJ3wnKSkgZGF0YVR5cGUgPSAnZW52aXJvbm1lbnQnO1xuICAgICAgICBncm91cC5hZGRDb250cm9sKCdkYXRhVHlwZScsIG5ldyBGb3JtQ29udHJvbChkYXRhVHlwZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy52YXJpYWJsZXNGb3JtLnB1c2goZ3JvdXApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclZhcmlhYmxlc0Zvcm0oKTogdm9pZCB7XG4gICAgd2hpbGUgKHRoaXMudmFyaWFibGVzRm9ybS5sZW5ndGgpIHRoaXMudmFyaWFibGVzRm9ybS5yZW1vdmVBdCgwKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBZHZhbmNlZFZhcmlhYmxlc0Zvcm0oKTogdm9pZCB7XG4gICAgd2hpbGUgKHRoaXMuYWR2YW5jZWRWYXJpYWJsZXNGb3JtLmxlbmd0aCkgdGhpcy5hZHZhbmNlZFZhcmlhYmxlc0Zvcm0ucmVtb3ZlQXQoMCk7XG4gICAgdGhpcy5hZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzLmZvckVhY2godmFyaWFibGUgPT4ge1xuICAgICAgbGV0IGRlZmF1bHRWYWx1ZTogYW55O1xuICAgICAgaWYgKHZhcmlhYmxlLnR5cGUgPT09ICdzdHJfbGlzdCcpIHtcbiAgICAgICAgY29uc3QgYXJyID0gQXJyYXkuaXNBcnJheSh2YXJpYWJsZS52YWx1ZSkgPyB2YXJpYWJsZS52YWx1ZSA6IFtdO1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmZiLmFycmF5KGFyci5sZW5ndGggPiAwID8gYXJyLm1hcCgoaTogc3RyaW5nKSA9PiB0aGlzLmZiLmNvbnRyb2woaSkpIDogW3RoaXMuZmIuY29udHJvbCgnJyldKTtcbiAgICAgIH0gZWxzZSBpZiAodmFyaWFibGUudHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHZhcmlhYmxlLnZhbHVlID09PSB0cnVlIHx8IHZhcmlhYmxlLnZhbHVlID09PSAndHJ1ZScgfHwgdmFyaWFibGUudmFsdWUgPT09IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSB2YXJpYWJsZS52YWx1ZSB8fCAnJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIG5hbWU6IFt2YXJpYWJsZS5uYW1lXSxcbiAgICAgICAgdmFsdWU6IHZhcmlhYmxlLnR5cGUgPT09ICdzdHJfbGlzdCcgPyBkZWZhdWx0VmFsdWUgOiBbZGVmYXVsdFZhbHVlXSxcbiAgICAgICAgdHlwZTogW3ZhcmlhYmxlLnR5cGUgfHwgJ3N0cmluZyddLFxuICAgICAgICBsYWJlbDogW3ZhcmlhYmxlLmxhYmVsIHx8ICcnXVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkdmFuY2VkVmFyaWFibGVzRm9ybS5wdXNoKGdyb3VwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJBZHZhbmNlZFZhcmlhYmxlc0Zvcm0oKTogdm9pZCB7XG4gICAgd2hpbGUgKHRoaXMuYWR2YW5jZWRWYXJpYWJsZXNGb3JtLmxlbmd0aCkgdGhpcy5hZHZhbmNlZFZhcmlhYmxlc0Zvcm0ucmVtb3ZlQXQoMCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUh0bWxHcmFtbWFyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZFRlbXBsYXRlPy5odG1sR3JhbW1hcikgeyB0aGlzLnVwZGF0ZWRIdG1sR3JhbW1hciA9ICcnOyByZXR1cm47IH1cbiAgICBpZiAodGhpcy5jb21wdXRlSHRtbEdyYW1tYXJGbikge1xuICAgICAgdGhpcy51cGRhdGVkSHRtbEdyYW1tYXIgPSB0aGlzLmNvbXB1dGVIdG1sR3JhbW1hckZuKHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSwgdGhpcy50ZW1wbGF0ZVZhcmlhYmxlcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBnID0gdGhpcy5zZWxlY3RlZFRlbXBsYXRlLmh0bWxHcmFtbWFyO1xuICAgIHRoaXMudGVtcGxhdGVWYXJpYWJsZXMuZm9yRWFjaCh2ID0+IHtcbiAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgPHNwYW5bXj5dKmRhdGEtZXZlbnQta2V5PVwiJHt2Lm5hbWV9XCJbXj5dKj4uKj88L3NwYW4+YCwgJ2dpJyk7XG4gICAgICBjb25zdCBlc2NhcGVkID0gU3RyaW5nKHYudmFsdWUgfHwgJycpLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgICAgIGcgPSBnLnJlcGxhY2UocmUsIGVzY2FwZWQpO1xuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlZEh0bWxHcmFtbWFyID0gZztcbiAgfVxuXG4gIGdldCBjdXJyZW50SHRtbEdyYW1tYXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkSHRtbEdyYW1tYXIgfHwgdGhpcy5zZWxlY3RlZFRlbXBsYXRlPy5odG1sR3JhbW1hciB8fCB0aGlzLnNlbGVjdGVkVGVtcGxhdGU/Lm5hdHVyYWxUZXh0IHx8ICcnO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVWYXJpYWJsZXMoKTogYW55W10geyByZXR1cm4gdGhpcy50ZW1wbGF0ZVZhcmlhYmxlczsgfVxuICBnZXRWYXJpYWJsZXNGb3JtKCk6IEZvcm1BcnJheSB7IHJldHVybiB0aGlzLnZhcmlhYmxlc0Zvcm07IH1cbiAgZ2V0QWR2YW5jZWRWYXJpYWJsZXMoKTogYW55W10geyByZXR1cm4gdGhpcy5hZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzOyB9XG4gIGdldEFkdmFuY2VkVmFyaWFibGVzRm9ybSgpOiBGb3JtQXJyYXkgeyByZXR1cm4gdGhpcy5hZHZhbmNlZFZhcmlhYmxlc0Zvcm07IH1cbiAgZ2V0IGlzQWR2YW5jZWRFeHBhbmRlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuYWR2YW5jZWRFeHBhbmRlZDsgfVxuICB0b2dnbGVBZHZhbmNlZCgpOiB2b2lkIHsgdGhpcy5hZHZhbmNlZEV4cGFuZGVkID0gIXRoaXMuYWR2YW5jZWRFeHBhbmRlZDsgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7IH1cbiAgZ2V0IGhhc1NlbGVjdGVkVGVtcGxhdGUoKTogQWN0aW9uVGVtcGxhdGUgfCBudWxsIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZTsgfVxuXG4gIG9uVmFyaWFibGVWYWx1ZUNoYW5nZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy50ZW1wbGF0ZVZhcmlhYmxlcy5maW5kKHR2ID0+IHR2Lm5hbWUgPT09IG5hbWUpO1xuICAgIGlmICh2KSB2LnZhbHVlID0gdmFsdWU7XG4gICAgY29uc3QgaWR4ID0gdGhpcy52YXJpYWJsZXNGb3JtLmNvbnRyb2xzLmZpbmRJbmRleChjID0+IGMuZ2V0KCduYW1lJyk/LnZhbHVlID09PSBuYW1lKTtcbiAgICBpZiAoaWR4ICE9PSAtMSkgdGhpcy52YXJpYWJsZXNGb3JtLmF0KGlkeCkuZ2V0KCd2YWx1ZScpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIHRoaXMudXBkYXRlSHRtbEdyYW1tYXIoKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVmFyaWFibGVCb29sZWFuQ2hhbmdlKG5hbWU6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFyaWFibGVWYWx1ZUNoYW5nZShuYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBvbkFkdmFuY2VkVmFyaWFibGVWYWx1ZUNoYW5nZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy5hZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzLmZpbmQodHYgPT4gdHYubmFtZSA9PT0gbmFtZSk7XG4gICAgaWYgKHYpIHYudmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zdCBpZHggPSB0aGlzLmFkdmFuY2VkVmFyaWFibGVzRm9ybS5jb250cm9scy5maW5kSW5kZXgoYyA9PiBjLmdldCgnbmFtZScpPy52YWx1ZSA9PT0gbmFtZSk7XG4gICAgaWYgKGlkeCAhPT0gLTEgJiYgdj8udHlwZSAhPT0gJ3N0cl9saXN0Jykge1xuICAgICAgKHRoaXMuYWR2YW5jZWRWYXJpYWJsZXNGb3JtLmF0KGlkeCkgYXMgRm9ybUdyb3VwKS5nZXQoJ3ZhbHVlJyk/LnNldFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICB9XG5cbiAgb25BZHZhbmNlZFZhcmlhYmxlQm9vbGVhbkNoYW5nZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5vbkFkdmFuY2VkVmFyaWFibGVWYWx1ZUNoYW5nZShuYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBpc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY29uZGl0aW9uRm9ybS52YWxpZCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlVmFyaWFibGVzLmV2ZXJ5KHYgPT4ge1xuICAgICAgaWYgKHYuZGF0YUtleSA9PT0gJ2VsZW1lbnQnIHx8IHYuZGF0YUtleSA9PT0gJ3Rlc3RfZGF0YScgfHwgdi5kYXRhS2V5ID09PSAnc291cmNlX3ZhbHVlJyB8fCB2LmRhdGFLZXkgPT09ICd0YXJnZXRfdmFsdWUnKSB7XG4gICAgICAgIHJldHVybiB2LnZhbHVlICE9PSBudWxsICYmIHYudmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2LnZhbHVlICE9PSAnJztcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7IHRoaXMuY2FuY2VsbGVkLmVtaXQoKTsgfVxuXG4gIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb3JtVmFsaWQoKSkgcmV0dXJuO1xuICAgIC8vIFN5bmMgYWR2YW5jZWQgZm9ybSB2YWx1ZXMgYmFjayB0byBhcnJheVxuICAgIHRoaXMuYWR2YW5jZWRTZXR0aW5nc1ZhcmlhYmxlcy5mb3JFYWNoKCh2YXJpYWJsZSwgaSkgPT4ge1xuICAgICAgY29uc3QgZmcgPSB0aGlzLmFkdmFuY2VkVmFyaWFibGVzRm9ybS5hdChpKSBhcyBGb3JtR3JvdXA7XG4gICAgICBpZiAoIWZnKSByZXR1cm47XG4gICAgICBjb25zdCBmdiA9IGZnLmdldCgndmFsdWUnKT8udmFsdWU7XG4gICAgICBpZiAodmFyaWFibGUudHlwZSA9PT0gJ3N0cl9saXN0JyAmJiBmdiBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICB2YXJpYWJsZS52YWx1ZSA9IGZ2LmNvbnRyb2xzLm1hcChjID0+IGMudmFsdWUpLmZpbHRlcigodmFsOiBzdHJpbmcpID0+IHZhbD8udHJpbSgpICE9PSAnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXJpYWJsZS52YWx1ZSA9IGZ2O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgZmluYWxBZHZhbmNlZFZhcnMgPSBbLi4udGhpcy5hZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzXTtcbiAgICBjb25zdCBzaG91bGRTa2lwVmFyID0gZmluYWxBZHZhbmNlZFZhcnMuZmluZCh2ID0+IHYubmFtZSA9PT0gJ3Nob3VsZFNraXAnKTtcbiAgICBjb25zdCBpc1N0ZXBPcHRpb25hbFZhciA9IGZpbmFsQWR2YW5jZWRWYXJzLmZpbmQodiA9PiB2Lm5hbWUgPT09ICdpc1N0ZXBPcHRpb25hbCcpO1xuXG4gICAgdGhpcy5zYXZlLmVtaXQoe1xuICAgICAgdGVtcGxhdGU6IHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSxcbiAgICAgIHRlbXBsYXRlVmFyaWFibGVzOiBbLi4udGhpcy50ZW1wbGF0ZVZhcmlhYmxlc10sXG4gICAgICBhZHZhbmNlZFNldHRpbmdzVmFyaWFibGVzOiBmaW5hbEFkdmFuY2VkVmFycyxcbiAgICAgIGFjdGlvbjogdGhpcy5zZWxlY3RlZFRlbXBsYXRlPy5uYXR1cmFsVGV4dCB8fCB0aGlzLnNlbGVjdGVkVGVtcGxhdGU/Lmh0bWxHcmFtbWFyIHx8ICcnLFxuICAgICAgcmVzb2x2ZWRBY3Rpb246IHRoaXMuY3VycmVudEh0bWxHcmFtbWFyLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29uZGl0aW9uRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnZhbHVlIHx8ICcnLFxuICAgICAgbWV0YWRhdGE6IHRoaXMuY29uZGl0aW9uRm9ybS5nZXQoJ21ldGFkYXRhJyk/LnZhbHVlIHx8ICcnLFxuICAgICAgc2hvdWxkU2tpcDogc2hvdWxkU2tpcFZhciA/ICEhc2hvdWxkU2tpcFZhci52YWx1ZSA6IGZhbHNlLFxuICAgICAgaWdub3JlU3RlcFJlc3VsdDogaXNTdGVwT3B0aW9uYWxWYXIgPyAhIWlzU3RlcE9wdGlvbmFsVmFyLnZhbHVlIDogZmFsc2UsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWgtZnVsbCBjcWEtYmctd2hpdGUgY3FhLXB4LTQgY3FhLXB5LTJcIj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxoMiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1ibGFjay0xMDAgY3FhLW1iLTRcIj5cbiAgICB7eyB0aXRsZSB9fVxuICA8L2gyPlxuXG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWZsZXgtMSBjcWEtb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgPCEtLSBDb25kaXRpb24gQnVpbGRlciBTZWN0aW9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItNlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1tYi0zXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgIENvbmRpdGlvbiBCdWlsZGVyXG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBTaW5nbGUgQ29uZGl0aW9uIFJvdyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCIgW2Zvcm1Hcm91cF09XCJjb25kaXRpb25Gb3JtXCI+XG4gICAgICAgIDwhLS0gQ29uZGl0aW9uIExhYmVsICsgVGVtcGxhdGUgRHJvcGRvd24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgIDwhLS0gTGFiZWwgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAge3sgY29uZGl0aW9uUm93TGFiZWwgfX1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gVmFsdWUgVGVtcGxhdGUgRHJvcGRvd24gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LVsxNTBweF0gY3FhLXRleHQtWzEwcHhdXCI+XG4gICAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImNvbmRpdGlvbkZvcm1cIiBbY29uZmlnXT1cImdldFZhbHVlQ29uZmlnKClcIj5cbiAgICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFRlbXBsYXRlIFZhcmlhYmxlcyBTZWN0aW9uIChzaG93biB3aGVuIHRlbXBsYXRlIGlzIHNlbGVjdGVkKSAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImhhc1NlbGVjdGVkVGVtcGxhdGVcIiBjbGFzcz1cImNxYS1tdC0yXCI+XG4gICAgICAgICAgPCEtLSBUZW1wbGF0ZSBHcmFtbWFyIERpc3BsYXkgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tYi00IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWZsZXgtd3JhcCBjcWEtZ2FwLTEgY3FhLXRleHQtc20gY3FhLXRleHQtZ3JheS03MDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYWN0aW9uLWZvcm1hdCBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzIzcHhdIGNxYS10ZXh0LWJsYWNrLTEwMFwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiY3VycmVudEh0bWxHcmFtbWFyXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gVGVtcGxhdGUgVmFyaWFibGVzIEZvcm0gLS0+XG4gICAgICAgICAgPGNxYS10ZW1wbGF0ZS12YXJpYWJsZXMtZm9ybVxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIlxuICAgICAgICAgICAgW3RlbXBsYXRlVmFyaWFibGVzXT1cImdldFRlbXBsYXRlVmFyaWFibGVzKClcIlxuICAgICAgICAgICAgW3ZhcmlhYmxlc0Zvcm1dPVwiZ2V0VmFyaWFibGVzRm9ybSgpXCJcbiAgICAgICAgICAgIFttZXRhZGF0YV09XCJjb25kaXRpb25Gb3JtLmdldCgnbWV0YWRhdGEnKT8udmFsdWUgfHwgJydcIlxuICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cImNvbmRpdGlvbkZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpPy52YWx1ZSB8fCAnJ1wiXG4gICAgICAgICAgICBbZWxlbWVudE9wdGlvbnNdPVwiZWxlbWVudE9wdGlvbnNcIlxuICAgICAgICAgICAgW2hhc01vcmVFbGVtZW50c109XCJoYXNNb3JlRWxlbWVudHNcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ0VsZW1lbnRzXT1cImlzTG9hZGluZ0VsZW1lbnRzXCJcbiAgICAgICAgICAgIFtzY3JlZW5OYW1lT3B0aW9uc109XCJzY3JlZW5OYW1lT3B0aW9uc1wiXG4gICAgICAgICAgICBbaGFzTW9yZVNjcmVlbk5hbWVzXT1cImhhc01vcmVTY3JlZW5OYW1lc1wiXG4gICAgICAgICAgICBbaXNMb2FkaW5nU2NyZWVuTmFtZXNdPVwiaXNMb2FkaW5nU2NyZWVuTmFtZXNcIlxuICAgICAgICAgICAgW3BhcmFtZXRlck9wdGlvbnNdPVwicGFyYW1ldGVyT3B0aW9uc1wiXG4gICAgICAgICAgICBbaGFzTW9yZVBhcmFtZXRlcnNdPVwiaGFzTW9yZVBhcmFtZXRlcnNcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ1BhcmFtZXRlcnNdPVwiaXNMb2FkaW5nUGFyYW1ldGVyc1wiXG4gICAgICAgICAgICBbZW52aXJvbm1lbnRPcHRpb25zXT1cImVudmlyb25tZW50T3B0aW9uc1wiXG4gICAgICAgICAgICBbaGFzTW9yZUVudmlyb25tZW50c109XCJoYXNNb3JlRW52aXJvbm1lbnRzXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmdFbnZpcm9ubWVudHNdPVwiaXNMb2FkaW5nRW52aXJvbm1lbnRzXCJcbiAgICAgICAgICAgIFt0ZXN0Q2FzZUVudmlyb25tZW50TmFtZV09XCJ0ZXN0Q2FzZUVudmlyb25tZW50TmFtZVwiXG4gICAgICAgICAgICBbdGVzdENhc2VFbnZpcm9ubWVudExhYmVsU3VmZml4XT1cInRlc3RDYXNlRW52aXJvbm1lbnRMYWJlbFN1ZmZpeFwiXG4gICAgICAgICAgICBbZW52aXJvbm1lbnRMZWdhY3lEZXByZWNhdGlvbk1lc3NhZ2VdPVwiZW52aXJvbm1lbnRMZWdhY3lEZXByZWNhdGlvbk1lc3NhZ2VcIlxuICAgICAgICAgICAgW3Rlc3RDYXNlVGVzdERhdGFJZF09XCJ0ZXN0Q2FzZVRlc3REYXRhSWRcIlxuICAgICAgICAgICAgW2hhc1Rlc3REYXRhUHJvZmlsZV09XCJoYXNUZXN0RGF0YVByb2ZpbGVcIlxuICAgICAgICAgICAgW2lzSW5zaWRlRm9yTG9vcFN0ZXBdPVwiaXNJbnNpZGVGb3JMb29wU3RlcFwiXG4gICAgICAgICAgICBbZ2xvYmFsVmFyaWFibGVPcHRpb25zXT1cImdsb2JhbFZhcmlhYmxlT3B0aW9uc1wiXG4gICAgICAgICAgICBbaXNMb2FkaW5nR2xvYmFsVmFyaWFibGVzXT1cImlzTG9hZGluZ0dsb2JhbFZhcmlhYmxlc1wiXG4gICAgICAgICAgICBbZGVmYXVsdFRlc3REYXRhUHJvZmlsZUlkXT1cImRlZmF1bHRUZXN0RGF0YVByb2ZpbGVJZFwiXG4gICAgICAgICAgICBbZGVmYXVsdFRlc3REYXRhU3RhcnRJbmRleF09XCJkZWZhdWx0VGVzdERhdGFTdGFydEluZGV4XCJcbiAgICAgICAgICAgIFtkZWZhdWx0VGVzdERhdGFFbmRJbmRleF09XCJkZWZhdWx0VGVzdERhdGFFbmRJbmRleFwiXG4gICAgICAgICAgICAodmFyaWFibGVWYWx1ZUNoYW5nZSk9XCJvblZhcmlhYmxlVmFsdWVDaGFuZ2UoJGV2ZW50Lm5hbWUsICRldmVudC52YWx1ZSlcIlxuICAgICAgICAgICAgKHZhcmlhYmxlQm9vbGVhbkNoYW5nZSk9XCJvblZhcmlhYmxlQm9vbGVhbkNoYW5nZSgkZXZlbnQubmFtZSwgJGV2ZW50LnZhbHVlKVwiXG4gICAgICAgICAgICAobWV0YWRhdGFDaGFuZ2UpPVwiY29uZGl0aW9uRm9ybS5nZXQoJ21ldGFkYXRhJyk/LnNldFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgKGRlc2NyaXB0aW9uQ2hhbmdlKT1cImNvbmRpdGlvbkZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpPy5zZXRWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChsb2FkTW9yZUVsZW1lbnRzKT1cImxvYWRNb3JlRWxlbWVudHMuZW1pdCgpXCJcbiAgICAgICAgICAgIChzZWFyY2hFbGVtZW50cyk9XCJzZWFyY2hFbGVtZW50cy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKHNlYXJjaEVsZW1lbnRzQnlTY3JlZW5OYW1lKT1cInNlYXJjaEVsZW1lbnRzQnlTY3JlZW5OYW1lLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoY3JlYXRlRWxlbWVudCk9XCJjcmVhdGVFbGVtZW50LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VhcmNoU2NyZWVuTmFtZSk9XCJzZWFyY2hTY3JlZW5OYW1lLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAobG9hZE1vcmVTY3JlZW5OYW1lcyk9XCJsb2FkTW9yZVNjcmVlbk5hbWVzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoY3JlYXRlU2NyZWVuTmFtZVJlcXVlc3QpPVwiY3JlYXRlU2NyZWVuTmFtZVJlcXVlc3QuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWFyY2hQYXJhbWV0ZXJzKT1cInNlYXJjaFBhcmFtZXRlcnMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChsb2FkTW9yZVBhcmFtZXRlcnMpPVwibG9hZE1vcmVQYXJhbWV0ZXJzLmVtaXQoKVwiXG4gICAgICAgICAgICAoc2VhcmNoRW52aXJvbm1lbnRzKT1cInNlYXJjaEVudmlyb25tZW50cy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGxvYWRNb3JlRW52aXJvbm1lbnRzKT1cImxvYWRNb3JlRW52aXJvbm1lbnRzLmVtaXQoKVwiXG4gICAgICAgICAgICAoc2VhcmNoR2xvYmFsVmFyaWFibGVzKT1cInNlYXJjaEdsb2JhbFZhcmlhYmxlcy5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICA8L2NxYS10ZW1wbGF0ZS12YXJpYWJsZXMtZm9ybT5cblxuICAgICAgICAgIDwhLS0gQWR2YW5jZWQgU2V0dGluZ3MgVmFyaWFibGVzIEZvcm0gLS0+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImdldEFkdmFuY2VkVmFyaWFibGVzKCkubGVuZ3RoID4gMFwiIGNsYXNzPVwiY3FhLW10LTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLXctZnVsbFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLXctZnVsbCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtcC0wIGNxYS1tYi0xLjVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVBZHZhbmNlZCgpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF1cIj5BZHZhbmNlZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1iYXNlXCIgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cImlzQWR2YW5jZWRFeHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgICAgZXhwYW5kX21vcmVcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzQWR2YW5jZWRFeHBhbmRlZFwiIGNsYXNzPVwiY3FhLW10LTJcIj5cbiAgICAgICAgICAgICAgICA8Y3FhLWFkdmFuY2VkLXZhcmlhYmxlcy1mb3JtXG4gICAgICAgICAgICAgICAgICBbYWR2YW5jZWRWYXJpYWJsZXNdPVwiZ2V0QWR2YW5jZWRWYXJpYWJsZXMoKVwiXG4gICAgICAgICAgICAgICAgICBbYWR2YW5jZWRWYXJpYWJsZUZvcm1dPVwiZ2V0QWR2YW5jZWRWYXJpYWJsZXNGb3JtKClcIlxuICAgICAgICAgICAgICAgICAgKHZhcmlhYmxlQm9vbGVhbkNoYW5nZSk9XCJvbkFkdmFuY2VkVmFyaWFibGVCb29sZWFuQ2hhbmdlKCRldmVudC5uYW1lLCAkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICh2YXJpYWJsZVZhbHVlQ2hhbmdlKT1cIm9uQWR2YW5jZWRWYXJpYWJsZVZhbHVlQ2hhbmdlKCRldmVudC5uYW1lLCAkZXZlbnQudmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgPC9jcWEtYWR2YW5jZWQtdmFyaWFibGVzLWZvcm0+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQWN0aW9uIEJ1dHRvbnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtdy1mdWxsIGNxYS1nYXAtMiBjcWEtbXQtYXV0byBjcWEtcHQtNCBjcWEtYm9yZGVyLXQgY3FhLWJvcmRlci1ncmF5LTIwMFwiPlxuICAgIDxjcWEtYnV0dG9uIGNsYXNzPVwiY3FhLXctMS8yXCIgdmFyaWFudD1cIm91dGxpbmVkXCIgdGV4dD1cIkNhbmNlbFwiIFtjdXN0b21DbGFzc109XCInY3FhLWZsZXgtMSBjcWEtdy1mdWxsJ1wiXG4gICAgICAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCI+XG4gICAgPC9jcWEtYnV0dG9uPlxuICAgIDxjcWEtYnV0dG9uICpuZ0lmPVwiIWlzU2F2aW5nXCIgY2xhc3M9XCJjcWEtdy0xLzJcIiB2YXJpYW50PVwiZmlsbGVkXCIgW3RleHRdPVwic2F2ZUJ1dHRvbkxhYmVsXCJcbiAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLWZsZXgtMSBjcWEtdy1mdWxsJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVZhbGlkKClcIlxuICAgICAgKGNsaWNrZWQpPVwib25TYXZlKClcIj5cbiAgICA8L2NxYS1idXR0b24+XG4gICAgPGRpdiAqbmdJZj1cImlzU2F2aW5nXCIgY2xhc3M9XCJjcWEtdy0xLzIgY3FhLWZsZXgtMSBjcWEtbWluLWgtWzM4cHhdIGNxYS1yb3VuZGVkLVs4cHhdXCI+XG4gICAgICA8Y3FhLWJhZGdlIGxhYmVsPVwiU2F2aW5n4oCmXCIgaWNvbj1cImF1dG9yZW5ld1wiIFtpc0xvYWRpbmddPVwidHJ1ZVwiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIFtjZW50ZXJDb250ZW50XT1cInRydWVcIlxuICAgICAgICBbaW5saW5lU3R5bGVzXT1cIidtaW4taGVpZ2h0OiAzOHB4OyBoZWlnaHQ6IDM4cHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOydcIlxuICAgICAgICB2YXJpYW50PVwiaW5mb1wiIHNpemU9XCJtZWRpdW1cIj48L2NxYS1iYWRnZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -121,13 +121,13 @@ export class ManageColumnsDialogComponent {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
ManageColumnsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ManageColumnsDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
-
ManageColumnsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ManageColumnsDialogComponent, selector: "cqa-manage-columns-dialog", inputs: { columns: "columns", lockedColumns: "lockedColumns" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"
|
|
124
|
+
ManageColumnsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ManageColumnsDialogComponent, selector: "cqa-manage-columns-dialog", inputs: { columns: "columns", lockedColumns: "lockedColumns" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"manage-cols-stack\">\n\n <div class=\"manage-cols-drop-list\"\n [dndDropzone]=\"['col']\"\n dndEffectAllowed=\"move\"\n dndDragoverClass=\"dndDragover\"\n (dndDrop)=\"onDndDrop($event)\">\n <div dndPlaceholderRef class=\"manage-cols-placeholder\">Drop here</div>\n <div *ngFor=\"let item of items; let i = index; trackBy: trackByUid\"\n class=\"manage-cols-row\">\n <span class=\"manage-cols-handle\"\n [dndDraggable]=\"item\"\n [dndDisableIf]=\"isLocked(item)\"\n dndType=\"col\"\n dndEffectAllowed=\"move\">\n <mat-icon>drag_indicator</mat-icon>\n </span>\n <cqa-custom-input\n class=\"cqa-flex-1\"\n [value]=\"item.name\"\n [fullWidth]=\"true\"\n [disabled]=\"isLocked(item)\"\n inputInlineStyle=\"font-family: 'Inter', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onRename(i, $event)\">\n </cqa-custom-input>\n <button type=\"button\" class=\"manage-cols-icon-btn\"\n title=\"Move up\"\n [disabled]=\"i === 0\"\n (click)=\"onMove(i, -1)\">\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button type=\"button\" class=\"manage-cols-icon-btn\"\n title=\"Move down\"\n [disabled]=\"i === items.length - 1\"\n (click)=\"onMove(i, 1)\">\n <mat-icon>arrow_downward</mat-icon>\n </button>\n <button type=\"button\" class=\"manage-cols-icon-btn manage-cols-icon-btn-danger\"\n title=\"Delete column\"\n [disabled]=\"isLocked(item)\"\n (click)=\"onRemove(i)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n <div class=\"manage-cols-footer\">\n <cqa-custom-input\n class=\"cqa-flex-1\"\n [value]=\"newColName\"\n [fullWidth]=\"true\"\n placeholder=\"New column name (e.g. currency)\"\n inputInlineStyle=\"font-family: 'Inter', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNewColNameChange($event)\"\n (enterPressed)=\"onAdd()\">\n </cqa-custom-input>\n <cqa-button\n variant=\"outlined\"\n icon=\"add\"\n text=\"Add column\"\n [disabled]=\"!canAdd\"\n (clicked)=\"onAdd()\">\n </cqa-button>\n </div>\n\n <span *ngIf=\"columnsError\" class=\"manage-cols-error\">{{ columnsError }}</span>\n\n <div class=\"manage-cols-hint\">\n <strong>Heads up:</strong>\n Deleting a column removes its data from every environment. Renaming keeps the data in place.\n </div>\n\n</div>\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.CustomInputComponent, selector: "cqa-custom-input", inputs: ["inputId", "label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle", "showPasswordToggle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i3.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "loading", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i4.DndDropzoneDirective, selector: "[dndDropzone]", inputs: ["dndDropzone", "dndEffectAllowed", "dndAllowExternal", "dndHorizontal", "dndDragoverClass", "dndDropzoneDisabledClass", "dndDisableIf", "dndDisableDropIf"], outputs: ["dndDragover", "dndDrop"] }, { type: i4.DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.DndDraggableDirective, selector: "[dndDraggable]", inputs: ["dndDraggable", "dndEffectAllowed", "dndType", "dndDraggingClass", "dndDraggingSourceClass", "dndDraggableDisabledClass", "dndDragImageOffsetFunction", "dndDisableIf", "dndDisableDragIf"], outputs: ["dndStart", "dndDrag", "dndEnd", "dndMoved", "dndCopied", "dndLinked", "dndCanceled"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
125
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ManageColumnsDialogComponent, decorators: [{
|
|
126
126
|
type: Component,
|
|
127
|
-
args: [{ selector: 'cqa-manage-columns-dialog', host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"
|
|
127
|
+
args: [{ selector: 'cqa-manage-columns-dialog', host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"manage-cols-stack\">\n\n <div class=\"manage-cols-drop-list\"\n [dndDropzone]=\"['col']\"\n dndEffectAllowed=\"move\"\n dndDragoverClass=\"dndDragover\"\n (dndDrop)=\"onDndDrop($event)\">\n <div dndPlaceholderRef class=\"manage-cols-placeholder\">Drop here</div>\n <div *ngFor=\"let item of items; let i = index; trackBy: trackByUid\"\n class=\"manage-cols-row\">\n <span class=\"manage-cols-handle\"\n [dndDraggable]=\"item\"\n [dndDisableIf]=\"isLocked(item)\"\n dndType=\"col\"\n dndEffectAllowed=\"move\">\n <mat-icon>drag_indicator</mat-icon>\n </span>\n <cqa-custom-input\n class=\"cqa-flex-1\"\n [value]=\"item.name\"\n [fullWidth]=\"true\"\n [disabled]=\"isLocked(item)\"\n inputInlineStyle=\"font-family: 'Inter', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onRename(i, $event)\">\n </cqa-custom-input>\n <button type=\"button\" class=\"manage-cols-icon-btn\"\n title=\"Move up\"\n [disabled]=\"i === 0\"\n (click)=\"onMove(i, -1)\">\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button type=\"button\" class=\"manage-cols-icon-btn\"\n title=\"Move down\"\n [disabled]=\"i === items.length - 1\"\n (click)=\"onMove(i, 1)\">\n <mat-icon>arrow_downward</mat-icon>\n </button>\n <button type=\"button\" class=\"manage-cols-icon-btn manage-cols-icon-btn-danger\"\n title=\"Delete column\"\n [disabled]=\"isLocked(item)\"\n (click)=\"onRemove(i)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n <div class=\"manage-cols-footer\">\n <cqa-custom-input\n class=\"cqa-flex-1\"\n [value]=\"newColName\"\n [fullWidth]=\"true\"\n placeholder=\"New column name (e.g. currency)\"\n inputInlineStyle=\"font-family: 'Inter', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNewColNameChange($event)\"\n (enterPressed)=\"onAdd()\">\n </cqa-custom-input>\n <cqa-button\n variant=\"outlined\"\n icon=\"add\"\n text=\"Add column\"\n [disabled]=\"!canAdd\"\n (clicked)=\"onAdd()\">\n </cqa-button>\n </div>\n\n <span *ngIf=\"columnsError\" class=\"manage-cols-error\">{{ columnsError }}</span>\n\n <div class=\"manage-cols-hint\">\n <strong>Heads up:</strong>\n Deleting a column removes its data from every environment. Renaming keeps the data in place.\n </div>\n\n</div>\n" }]
|
|
128
128
|
}], propDecorators: { columns: [{
|
|
129
129
|
type: Input
|
|
130
130
|
}], lockedColumns: [{
|
|
131
131
|
type: Input
|
|
132
132
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbWFuYWdlLWNvbHVtbnMtZGlhbG9nL21hbmFnZS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hbmFnZS1jb2x1bW5zLWRpYWxvZy9tYW5hZ2UtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFtQnpELE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFNVyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBRS9CLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRW5DLGVBQVUsR0FBRyxDQUFDLENBQVMsRUFBRSxJQUF1QixFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXJFLFlBQU8sR0FBRyxDQUFDLENBQUM7S0FzR3JCO0lBcEdDLFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbkIsWUFBWSxFQUFFLElBQUk7WUFDbEIsSUFBSTtTQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLFFB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QUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7O3lIQS9HVSw0QkFBNEI7NkdBQTVCLDRCQUE0Qix1TkNuQnpDLGd0R0EwRUE7MkZEdkRhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkIsUUFFL0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTs4QkFHekQsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERuZERyb3BFdmVudCB9IGZyb20gJ25neC1kcmFnLWRyb3AnO1xuXG5pbXBvcnQge1xuICBNYW5hZ2VDb2x1bW5zRGlhbG9nQ29sdW1uLFxuICBNYW5hZ2VDb2x1bW5zRGlhbG9nVmFsdWUsXG59IGZyb20gJy4vbWFuYWdlLWNvbHVtbnMtZGlhbG9nLm1vZGVscyc7XG5cbmludGVyZmFjZSBNYW5hZ2VDb2x1bW5zSXRlbSB7XG4gIHVpZDogbnVtYmVyO1xuICBvcmlnaW5hbE5hbWU6IHN0cmluZyB8IG51bGw7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLW1hbmFnZS1jb2x1bW5zLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYW5hZ2UtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnLCBzdHlsZTogJ2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTsnIH0sXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZUNvbHVtbnNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBsb2NrZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHB1YmxpYyBpdGVtczogTWFuYWdlQ29sdW1uc0l0ZW1bXSA9IFtdO1xuICBwdWJsaWMgbmV3Q29sTmFtZSA9ICcnO1xuICBwdWJsaWMgY29sdW1uc0Vycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgdHJhY2tCeVVpZCA9IChfOiBudW1iZXIsIGl0ZW06IE1hbmFnZUNvbHVtbnNJdGVtKTogbnVtYmVyID0+IGl0ZW0udWlkO1xuXG4gIHByaXZhdGUgbmV4dFVpZCA9IDE7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5pdGlhbCA9IEFycmF5LmlzQXJyYXkodGhpcy5jb2x1bW5zKSA/IHRoaXMuY29sdW1ucyA6IFtdO1xuICAgIHRoaXMuaXRlbXMgPSBpbml0aWFsLm1hcChuYW1lID0+ICh7XG4gICAgICB1aWQ6IHRoaXMubmV4dFVpZCsrLFxuICAgICAgb3JpZ2luYWxOYW1lOiBuYW1lLFxuICAgICAgbmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaXNMb2NrZWQoaXRlbTogTWFuYWdlQ29sdW1uc0l0ZW0pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMubG9ja2VkQ29sdW1ucyB8fCB0aGlzLmxvY2tlZENvbHVtbnMubGVuZ3RoID09PSAwKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIGlmIChpdGVtLm9yaWdpbmFsTmFtZSAhPSBudWxsICYmIHRoaXMubG9ja2VkQ29sdW1ucy5pbmRleE9mKGl0ZW0ub3JpZ2luYWxOYW1lKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sb2NrZWRDb2x1bW5zLmluZGV4T2YoaXRlbS5uYW1lKSAhPT0gLTE7XG4gIH1cblxuICBwdWJsaWMgb25EbmREcm9wKGV2ZW50OiBEbmREcm9wRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkcmFnZ2VkID0gZXZlbnQuZGF0YSBhcyBNYW5hZ2VDb2x1bW5zSXRlbSB8IG51bGw7XG4gICAgaWYgKCFkcmFnZ2VkIHx8IGV2ZW50LmluZGV4ID09IG51bGwpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgZnJvbSA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGl0ID0+IGl0LnVpZCA9PT0gZHJhZ2dlZC51aWQpO1xuICAgIGlmIChmcm9tIDwgMCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBuZXh0ID0gdGhpcy5pdGVtcy5zbGljZSgpO1xuICAgIG5leHQuc3BsaWNlKGZyb20sIDEpO1xuICAgIGNvbnN0IHRvID0gZXZlbnQuaW5kZXggPiBmcm9tID8gZXZlbnQuaW5kZXggLSAxIDogZXZlbnQuaW5kZXg7XG4gICAgbmV4dC5zcGxpY2UodG8sIDAsIGRyYWdnZWQpO1xuICAgIHRoaXMuaXRlbXMgPSBuZXh0O1xuICB9XG5cbiAgcHVibGljIG9uTW92ZShpbmRleDogbnVtYmVyLCBkaXI6IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGluZGV4ICsgZGlyO1xuICAgIGlmICh0YXJnZXQgPCAwIHx8IHRhcmdldCA+PSB0aGlzLml0ZW1zLmxlbmd0aCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBuZXh0ID0gdGhpcy5pdGVtcy5zbGljZSgpO1xuICAgIFtuZXh0W2luZGV4XSwgbmV4dFt0YXJnZXRdXSA9IFtuZXh0W3RhcmdldF0sIG5leHRbaW5kZXhdXTtcbiAgICB0aGlzLml0ZW1zID0gbmV4dDtcbiAgfVxuXG4gIHB1YmxpYyBvblJlbmFtZShpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLml0ZW1zW2luZGV4XSkgeyByZXR1cm47IH1cbiAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5tYXAoKGl0LCBpKSA9PiBpID09PSBpbmRleCA/IHsgLi4uaXQsIG5hbWU6IHZhbHVlIH0gOiBpdCk7XG4gICAgdGhpcy5jb2x1bW5zRXJyb3IgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIG9uUmVtb3ZlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XG4gICAgaWYgKCFpdGVtIHx8IHRoaXMuaXNMb2NrZWQoaXRlbSkpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgdGhpcy5jb2x1bW5zRXJyb3IgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIG9uTmV3Q29sTmFtZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5uZXdDb2xOYW1lID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb25BZGQoKTogdm9pZCB7XG4gICAgY29uc3QgdHJpbW1lZCA9ICh0aGlzLm5ld0NvbE5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWQgfHwgdGhpcy5pdGVtc0hhc05hbWUodHJpbW1lZCkpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5pdGVtcyA9IFsuLi50aGlzLml0ZW1zLCB7XG4gICAgICB1aWQ6IHRoaXMubmV4dFVpZCsrLFxuICAgICAgb3JpZ2luYWxOYW1lOiBudWxsLFxuICAgICAgbmFtZTogdHJpbW1lZCxcbiAgICB9XTtcbiAgICB0aGlzLm5ld0NvbE5hbWUgPSAnJztcbiAgICB0aGlzLmNvbHVtbnNFcnJvciA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhbkFkZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB0cmltbWVkID0gKHRoaXMubmV3Q29sTmFtZSB8fCAnJykudHJpbSgpO1xuICAgIGlmICghdHJpbW1lZCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgICByZXR1cm4gIXRoaXMuaXRlbXNIYXNOYW1lKHRyaW1tZWQpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IE1hbmFnZUNvbHVtbnNEaWFsb2dWYWx1ZSB8IG51bGwge1xuICAgIGNvbnN0IHRyaW1tZWQ6IE1hbmFnZUNvbHVtbnNEaWFsb2dDb2x1bW5bXSA9IHRoaXMuaXRlbXMubWFwKGl0ID0+ICh7XG4gICAgICBvcmlnaW5hbE5hbWU6IGl0Lm9yaWdpbmFsTmFtZSxcbiAgICAgIG5hbWU6IChpdC5uYW1lIHx8ICcnKS50cmltKCksXG4gICAgfSkpO1xuXG4gICAgaWYgKHRyaW1tZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNvbHVtbnNFcnJvciA9ICdBdCBsZWFzdCBvbmUgY29sdW1uIGlzIHJlcXVpcmVkLic7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRyaW1tZWQuc29tZShjID0+IGMubmFtZS5sZW5ndGggPT09IDApKSB7XG4gICAgICB0aGlzLmNvbHVtbnNFcnJvciA9ICdDb2x1bW4gbmFtZXMgY2Fubm90IGJlIGVtcHR5Lic7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbG93ZXJlZCA9IHRyaW1tZWQubWFwKGMgPT4gYy5uYW1lLnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmIChuZXcgU2V0KGxvd2VyZWQpLnNpemUgIT09IHRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvbHVtbnNFcnJvciA9ICdDb2x1bW4gbmFtZXMgbXVzdCBiZSB1bmlxdWUuJztcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuY29sdW1uc0Vycm9yID0gbnVsbDtcbiAgICByZXR1cm4geyBjb2x1bW5zOiB0cmltbWVkIH07XG4gIH1cblxuICBwcml2YXRlIGl0ZW1zSGFzTmFtZShjYW5kaWRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxvd2VyZWQgPSBjYW5kaWRhdGUudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5zb21lKGl0ID0+IChpdC5uYW1lIHx8ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJlZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0zIGNxYS13LWZ1bGxcIj5cblxuICA8ZGl2IGNsYXNzPVwibWFuYWdlLWNvbHMtZHJvcC1saXN0IGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIlxuICAgICAgIFtkbmREcm9wem9uZV09XCJbJ2NvbCddXCJcbiAgICAgICBkbmRFZmZlY3RBbGxvd2VkPVwibW92ZVwiXG4gICAgICAgZG5kRHJhZ292ZXJDbGFzcz1cImRuZERyYWdvdmVyXCJcbiAgICAgICAoZG5kRHJvcCk9XCJvbkRuZERyb3AoJGV2ZW50KVwiPlxuICAgIDxkaXYgZG5kUGxhY2Vob2xkZXJSZWYgY2xhc3M9XCJtYW5hZ2UtY29scy1wbGFjZWhvbGRlclwiPkRyb3AgaGVyZTwvZGl2PlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlVaWRcIlxuICAgICAgICAgY2xhc3M9XCJtYW5hZ2UtY29scy1yb3cgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXB4LTIgY3FhLXB5LTEuNSBjcWEtcm91bmRlZC1tZCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItZ3JheS0yMDAgY3FhLWJnLWdyYXktNTBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWFuYWdlLWNvbHMtaGFuZGxlIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS10ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgICAgIFtkbmREcmFnZ2FibGVdPVwiaXRlbVwiXG4gICAgICAgICAgICBbZG5kRGlzYWJsZUlmXT1cImlzTG9ja2VkKGl0ZW0pXCJcbiAgICAgICAgICAgIGRuZFR5cGU9XCJjb2xcIlxuICAgICAgICAgICAgZG5kRWZmZWN0QWxsb3dlZD1cIm1vdmVcIj5cbiAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjE4cHg7d2lkdGg6MThweDtoZWlnaHQ6MThweDtsaW5lLWhlaWdodDoxOHB4O1wiPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXgtMVwiXG4gICAgICAgIFt2YWx1ZV09XCJpdGVtLm5hbWVcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWQoaXRlbSlcIlxuICAgICAgICBpbnB1dElubGluZVN0eWxlPVwiZm9udC1mYW1pbHk6ICdJbnRlcicsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlO1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblJlbmFtZShpLCAkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm1hbmFnZS1jb2xzLWljb24tYnRuXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJNb3ZlIHVwXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImkgPT09IDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Nb3ZlKGksIC0xKVwiPlxuICAgICAgICA8bWF0LWljb24+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtYW5hZ2UtY29scy1pY29uLWJ0blwiXG4gICAgICAgICAgICAgIHRpdGxlPVwiTW92ZSBkb3duXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImkgPT09IGl0ZW1zLmxlbmd0aCAtIDFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Nb3ZlKGksIDEpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5hcnJvd19kb3dud2FyZDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibWFuYWdlLWNvbHMtaWNvbi1idG4gbWFuYWdlLWNvbHMtaWNvbi1idG4tZGFuZ2VyXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJEZWxldGUgY29sdW1uXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlKGkpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcHQtMyBjcWEtbXQtMSBjcWEtYm9yZGVyLXQgY3FhLWJvcmRlci1kYXNoZWQgY3FhLWJvcmRlci1ncmF5LTIwMFwiPlxuICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICBjbGFzcz1cImNxYS1mbGV4LTFcIlxuICAgICAgW3ZhbHVlXT1cIm5ld0NvbE5hbWVcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiTmV3IGNvbHVtbiBuYW1lIChlLmcuIGN1cnJlbmN5KVwiXG4gICAgICBpbnB1dElubGluZVN0eWxlPVwiZm9udC1mYW1pbHk6ICdJbnRlcicsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlO1wiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25OZXdDb2xOYW1lQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGVudGVyUHJlc3NlZCk9XCJvbkFkZCgpXCI+XG4gICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgIDxjcWEtYnV0dG9uXG4gICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgYnRuU2l6ZT1cInNtXCJcbiAgICAgIGljb249XCJhZGRcIlxuICAgICAgdGV4dD1cIkFkZCBjb2x1bW5cIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5BZGRcIlxuICAgICAgKGNsaWNrZWQpPVwib25BZGQoKVwiPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPHNwYW4gKm5nSWY9XCJjb2x1bW5zRXJyb3JcIiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LXJlZC02MDBcIj57eyBjb2x1bW5zRXJyb3IgfX08L3NwYW4+XG5cbiAgPGRpdiBjbGFzcz1cImNxYS1weC0zIGNxYS1weS0yIGNxYS1yb3VuZGVkLW1kIGNxYS1iZy1wcmltYXJ5LXN1cmZhY2UgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXN1Y2Nlc3MtMTAwIGNxYS10ZXh0LXhzIGNxYS10ZXh0LWdyYXktNzAwXCI+XG4gICAgPHN0cm9uZyBjbGFzcz1cImNxYS10ZXh0LWdyYXktOTAwXCI+SGVhZHMgdXA6PC9zdHJvbmc+XG4gICAgRGVsZXRpbmcgYSBjb2x1bW4gcmVtb3ZlcyBpdHMgZGF0YSBmcm9tIGV2ZXJ5IGVudmlyb25tZW50LiBSZW5hbWluZyBrZWVwcyB0aGUgZGF0YSBpbiBwbGFjZS5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbWFuYWdlLWNvbHVtbnMtZGlhbG9nL21hbmFnZS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hbmFnZS1jb2x1bW5zLWRpYWxvZy9tYW5hZ2UtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFtQnpELE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFNVyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBRS9CLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRW5DLGVBQVUsR0FBRyxDQUFDLENBQVMsRUFBRSxJQUF1QixFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXJFLFlBQU8sR0FBRyxDQUFDLENBQUM7S0FzR3JCO0lBcEdDLFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbkIsWUFBWSxFQUFFLElBQUk7WUFDbEIsSUFBSTtTQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLFFB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QUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7O3lIQS9HVSw0QkFBNEI7NkdBQTVCLDRCQUE0Qix1TkNuQnpDLHVxRkF5RUE7MkZEdERhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkIsUUFFL0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTs4QkFHekQsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERuZERyb3BFdmVudCB9IGZyb20gJ25neC1kcmFnLWRyb3AnO1xuXG5pbXBvcnQge1xuICBNYW5hZ2VDb2x1bW5zRGlhbG9nQ29sdW1uLFxuICBNYW5hZ2VDb2x1bW5zRGlhbG9nVmFsdWUsXG59IGZyb20gJy4vbWFuYWdlLWNvbHVtbnMtZGlhbG9nLm1vZGVscyc7XG5cbmludGVyZmFjZSBNYW5hZ2VDb2x1bW5zSXRlbSB7XG4gIHVpZDogbnVtYmVyO1xuICBvcmlnaW5hbE5hbWU6IHN0cmluZyB8IG51bGw7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLW1hbmFnZS1jb2x1bW5zLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYW5hZ2UtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnLCBzdHlsZTogJ2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTsnIH0sXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZUNvbHVtbnNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBsb2NrZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHB1YmxpYyBpdGVtczogTWFuYWdlQ29sdW1uc0l0ZW1bXSA9IFtdO1xuICBwdWJsaWMgbmV3Q29sTmFtZSA9ICcnO1xuICBwdWJsaWMgY29sdW1uc0Vycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgdHJhY2tCeVVpZCA9IChfOiBudW1iZXIsIGl0ZW06IE1hbmFnZUNvbHVtbnNJdGVtKTogbnVtYmVyID0+IGl0ZW0udWlkO1xuXG4gIHByaXZhdGUgbmV4dFVpZCA9IDE7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5pdGlhbCA9IEFycmF5LmlzQXJyYXkodGhpcy5jb2x1bW5zKSA/IHRoaXMuY29sdW1ucyA6IFtdO1xuICAgIHRoaXMuaXRlbXMgPSBpbml0aWFsLm1hcChuYW1lID0+ICh7XG4gICAgICB1aWQ6IHRoaXMubmV4dFVpZCsrLFxuICAgICAgb3JpZ2luYWxOYW1lOiBuYW1lLFxuICAgICAgbmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaXNMb2NrZWQoaXRlbTogTWFuYWdlQ29sdW1uc0l0ZW0pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMubG9ja2VkQ29sdW1ucyB8fCB0aGlzLmxvY2tlZENvbHVtbnMubGVuZ3RoID09PSAwKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIGlmIChpdGVtLm9yaWdpbmFsTmFtZSAhPSBudWxsICYmIHRoaXMubG9ja2VkQ29sdW1ucy5pbmRleE9mKGl0ZW0ub3JpZ2luYWxOYW1lKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sb2NrZWRDb2x1bW5zLmluZGV4T2YoaXRlbS5uYW1lKSAhPT0gLTE7XG4gIH1cblxuICBwdWJsaWMgb25EbmREcm9wKGV2ZW50OiBEbmREcm9wRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkcmFnZ2VkID0gZXZlbnQuZGF0YSBhcyBNYW5hZ2VDb2x1bW5zSXRlbSB8IG51bGw7XG4gICAgaWYgKCFkcmFnZ2VkIHx8IGV2ZW50LmluZGV4ID09IG51bGwpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgZnJvbSA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGl0ID0+IGl0LnVpZCA9PT0gZHJhZ2dlZC51aWQpO1xuICAgIGlmIChmcm9tIDwgMCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBuZXh0ID0gdGhpcy5pdGVtcy5zbGljZSgpO1xuICAgIG5leHQuc3BsaWNlKGZyb20sIDEpO1xuICAgIGNvbnN0IHRvID0gZXZlbnQuaW5kZXggPiBmcm9tID8gZXZlbnQuaW5kZXggLSAxIDogZXZlbnQuaW5kZXg7XG4gICAgbmV4dC5zcGxpY2UodG8sIDAsIGRyYWdnZWQpO1xuICAgIHRoaXMuaXRlbXMgPSBuZXh0O1xuICB9XG5cbiAgcHVibGljIG9uTW92ZShpbmRleDogbnVtYmVyLCBkaXI6IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGluZGV4ICsgZGlyO1xuICAgIGlmICh0YXJnZXQgPCAwIHx8IHRhcmdldCA+PSB0aGlzLml0ZW1zLmxlbmd0aCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBuZXh0ID0gdGhpcy5pdGVtcy5zbGljZSgpO1xuICAgIFtuZXh0W2luZGV4XSwgbmV4dFt0YXJnZXRdXSA9IFtuZXh0W3RhcmdldF0sIG5leHRbaW5kZXhdXTtcbiAgICB0aGlzLml0ZW1zID0gbmV4dDtcbiAgfVxuXG4gIHB1YmxpYyBvblJlbmFtZShpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLml0ZW1zW2luZGV4XSkgeyByZXR1cm47IH1cbiAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5tYXAoKGl0LCBpKSA9PiBpID09PSBpbmRleCA/IHsgLi4uaXQsIG5hbWU6IHZhbHVlIH0gOiBpdCk7XG4gICAgdGhpcy5jb2x1bW5zRXJyb3IgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIG9uUmVtb3ZlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XG4gICAgaWYgKCFpdGVtIHx8IHRoaXMuaXNMb2NrZWQoaXRlbSkpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgdGhpcy5jb2x1bW5zRXJyb3IgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIG9uTmV3Q29sTmFtZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5uZXdDb2xOYW1lID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb25BZGQoKTogdm9pZCB7XG4gICAgY29uc3QgdHJpbW1lZCA9ICh0aGlzLm5ld0NvbE5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWQgfHwgdGhpcy5pdGVtc0hhc05hbWUodHJpbW1lZCkpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5pdGVtcyA9IFsuLi50aGlzLml0ZW1zLCB7XG4gICAgICB1aWQ6IHRoaXMubmV4dFVpZCsrLFxuICAgICAgb3JpZ2luYWxOYW1lOiBudWxsLFxuICAgICAgbmFtZTogdHJpbW1lZCxcbiAgICB9XTtcbiAgICB0aGlzLm5ld0NvbE5hbWUgPSAnJztcbiAgICB0aGlzLmNvbHVtbnNFcnJvciA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhbkFkZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB0cmltbWVkID0gKHRoaXMubmV3Q29sTmFtZSB8fCAnJykudHJpbSgpO1xuICAgIGlmICghdHJpbW1lZCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgICByZXR1cm4gIXRoaXMuaXRlbXNIYXNOYW1lKHRyaW1tZWQpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IE1hbmFnZUNvbHVtbnNEaWFsb2dWYWx1ZSB8IG51bGwge1xuICAgIGNvbnN0IHRyaW1tZWQ6IE1hbmFnZUNvbHVtbnNEaWFsb2dDb2x1bW5bXSA9IHRoaXMuaXRlbXMubWFwKGl0ID0+ICh7XG4gICAgICBvcmlnaW5hbE5hbWU6IGl0Lm9yaWdpbmFsTmFtZSxcbiAgICAgIG5hbWU6IChpdC5uYW1lIHx8ICcnKS50cmltKCksXG4gICAgfSkpO1xuXG4gICAgaWYgKHRyaW1tZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNvbHVtbnNFcnJvciA9ICdBdCBsZWFzdCBvbmUgY29sdW1uIGlzIHJlcXVpcmVkLic7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRyaW1tZWQuc29tZShjID0+IGMubmFtZS5sZW5ndGggPT09IDApKSB7XG4gICAgICB0aGlzLmNvbHVtbnNFcnJvciA9ICdDb2x1bW4gbmFtZXMgY2Fubm90IGJlIGVtcHR5Lic7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbG93ZXJlZCA9IHRyaW1tZWQubWFwKGMgPT4gYy5uYW1lLnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmIChuZXcgU2V0KGxvd2VyZWQpLnNpemUgIT09IHRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvbHVtbnNFcnJvciA9ICdDb2x1bW4gbmFtZXMgbXVzdCBiZSB1bmlxdWUuJztcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuY29sdW1uc0Vycm9yID0gbnVsbDtcbiAgICByZXR1cm4geyBjb2x1bW5zOiB0cmltbWVkIH07XG4gIH1cblxuICBwcml2YXRlIGl0ZW1zSGFzTmFtZShjYW5kaWRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxvd2VyZWQgPSBjYW5kaWRhdGUudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5zb21lKGl0ID0+IChpdC5uYW1lIHx8ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJlZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYW5hZ2UtY29scy1zdGFja1wiPlxuXG4gIDxkaXYgY2xhc3M9XCJtYW5hZ2UtY29scy1kcm9wLWxpc3RcIlxuICAgICAgIFtkbmREcm9wem9uZV09XCJbJ2NvbCddXCJcbiAgICAgICBkbmRFZmZlY3RBbGxvd2VkPVwibW92ZVwiXG4gICAgICAgZG5kRHJhZ292ZXJDbGFzcz1cImRuZERyYWdvdmVyXCJcbiAgICAgICAoZG5kRHJvcCk9XCJvbkRuZERyb3AoJGV2ZW50KVwiPlxuICAgIDxkaXYgZG5kUGxhY2Vob2xkZXJSZWYgY2xhc3M9XCJtYW5hZ2UtY29scy1wbGFjZWhvbGRlclwiPkRyb3AgaGVyZTwvZGl2PlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlVaWRcIlxuICAgICAgICAgY2xhc3M9XCJtYW5hZ2UtY29scy1yb3dcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWFuYWdlLWNvbHMtaGFuZGxlXCJcbiAgICAgICAgICAgIFtkbmREcmFnZ2FibGVdPVwiaXRlbVwiXG4gICAgICAgICAgICBbZG5kRGlzYWJsZUlmXT1cImlzTG9ja2VkKGl0ZW0pXCJcbiAgICAgICAgICAgIGRuZFR5cGU9XCJjb2xcIlxuICAgICAgICAgICAgZG5kRWZmZWN0QWxsb3dlZD1cIm1vdmVcIj5cbiAgICAgICAgPG1hdC1pY29uPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXgtMVwiXG4gICAgICAgIFt2YWx1ZV09XCJpdGVtLm5hbWVcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWQoaXRlbSlcIlxuICAgICAgICBpbnB1dElubGluZVN0eWxlPVwiZm9udC1mYW1pbHk6ICdJbnRlcicsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlO1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblJlbmFtZShpLCAkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm1hbmFnZS1jb2xzLWljb24tYnRuXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJNb3ZlIHVwXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImkgPT09IDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Nb3ZlKGksIC0xKVwiPlxuICAgICAgICA8bWF0LWljb24+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtYW5hZ2UtY29scy1pY29uLWJ0blwiXG4gICAgICAgICAgICAgIHRpdGxlPVwiTW92ZSBkb3duXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImkgPT09IGl0ZW1zLmxlbmd0aCAtIDFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Nb3ZlKGksIDEpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5hcnJvd19kb3dud2FyZDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibWFuYWdlLWNvbHMtaWNvbi1idG4gbWFuYWdlLWNvbHMtaWNvbi1idG4tZGFuZ2VyXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJEZWxldGUgY29sdW1uXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlKGkpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtYW5hZ2UtY29scy1mb290ZXJcIj5cbiAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgY2xhc3M9XCJjcWEtZmxleC0xXCJcbiAgICAgIFt2YWx1ZV09XCJuZXdDb2xOYW1lXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIk5ldyBjb2x1bW4gbmFtZSAoZS5nLiBjdXJyZW5jeSlcIlxuICAgICAgaW5wdXRJbmxpbmVTdHlsZT1cImZvbnQtZmFtaWx5OiAnSW50ZXInLCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uTmV3Q29sTmFtZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChlbnRlclByZXNzZWQpPVwib25BZGQoKVwiPlxuICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICA8Y3FhLWJ1dHRvblxuICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgIGljb249XCJhZGRcIlxuICAgICAgdGV4dD1cIkFkZCBjb2x1bW5cIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5BZGRcIlxuICAgICAgKGNsaWNrZWQpPVwib25BZGQoKVwiPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPHNwYW4gKm5nSWY9XCJjb2x1bW5zRXJyb3JcIiBjbGFzcz1cIm1hbmFnZS1jb2xzLWVycm9yXCI+e3sgY29sdW1uc0Vycm9yIH19PC9zcGFuPlxuXG4gIDxkaXYgY2xhc3M9XCJtYW5hZ2UtY29scy1oaW50XCI+XG4gICAgPHN0cm9uZz5IZWFkcyB1cDo8L3N0cm9uZz5cbiAgICBEZWxldGluZyBhIGNvbHVtbiByZW1vdmVzIGl0cyBkYXRhIGZyb20gZXZlcnkgZW52aXJvbm1lbnQuIFJlbmFtaW5nIGtlZXBzIHRoZSBkYXRhIGluIHBsYWNlLlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
@@ -112,10 +112,10 @@ export class GlobalVariableTagsInputComponent {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
GlobalVariableTagsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GlobalVariableTagsInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
-
GlobalVariableTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: GlobalVariableTagsInputComponent, selector: "lib-global-variable-tags-input", inputs: { tags: "tags", availableTags: "availableTags" }, outputs: { tagsChange: "tagsChange" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "tagInputRef", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "<div class=\"cqa-
|
|
115
|
+
GlobalVariableTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: GlobalVariableTagsInputComponent, selector: "lib-global-variable-tags-input", inputs: { tags: "tags", availableTags: "availableTags" }, outputs: { tagsChange: "tagsChange" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "tagInputRef", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "<div class=\"cqa-gv-tag-row\">\n <!-- Selected tag chips -->\n <span *ngFor=\"let tag of tags; let i = index\" class=\"cqa-gv-tag-chip\">\n <mat-icon>sell</mat-icon>\n <span>{{ tag }}</span>\n <button type=\"button\"\n class=\"cqa-gv-tag-chip-x\"\n (click)=\"removeAt(i)\"\n [attr.aria-label]=\"'Remove tag ' + tag\">\n <mat-icon>close</mat-icon>\n </button>\n </span>\n\n <!-- Inactive: \"+ Add tag\" dashed pill -->\n <button *ngIf=\"!adding\" type=\"button\"\n class=\"cqa-gv-tag-add\"\n (click)=\"beginAdd()\">\n <mat-icon>add</mat-icon>\n <span>Add tag</span>\n </button>\n\n <!-- Active: pill-styled input + suggestion dropdown -->\n <div *ngIf=\"adding\" class=\"cqa-relative\">\n <input #tagInput\n type=\"text\"\n class=\"cqa-gv-tag-input\"\n placeholder=\"Tag\u2026\"\n [value]=\"draft\"\n (input)=\"onDraftChange($any($event.target).value)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\" />\n\n <div *ngIf=\"suggestions.length > 0\" class=\"cqa-gv-tag-suggest\">\n <div *ngFor=\"let s of suggestions\"\n class=\"cqa-gv-tag-suggest-item\"\n (mousedown)=\"onSuggestionMouseDown($event, s)\">\n <span class=\"cqa-inline-flex cqa-items-center cqa-gap-1.5\">\n <mat-icon>sell</mat-icon>\n <span>{{ s.name }}</span>\n </span>\n <span *ngIf=\"s.count != null\" class=\"cqa-gv-tag-suggest-count\">{{ s.count }}</span>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
116
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GlobalVariableTagsInputComponent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
|
-
args: [{ selector: 'lib-global-variable-tags-input', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-
|
|
118
|
+
args: [{ selector: 'lib-global-variable-tags-input', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-gv-tag-row\">\n <!-- Selected tag chips -->\n <span *ngFor=\"let tag of tags; let i = index\" class=\"cqa-gv-tag-chip\">\n <mat-icon>sell</mat-icon>\n <span>{{ tag }}</span>\n <button type=\"button\"\n class=\"cqa-gv-tag-chip-x\"\n (click)=\"removeAt(i)\"\n [attr.aria-label]=\"'Remove tag ' + tag\">\n <mat-icon>close</mat-icon>\n </button>\n </span>\n\n <!-- Inactive: \"+ Add tag\" dashed pill -->\n <button *ngIf=\"!adding\" type=\"button\"\n class=\"cqa-gv-tag-add\"\n (click)=\"beginAdd()\">\n <mat-icon>add</mat-icon>\n <span>Add tag</span>\n </button>\n\n <!-- Active: pill-styled input + suggestion dropdown -->\n <div *ngIf=\"adding\" class=\"cqa-relative\">\n <input #tagInput\n type=\"text\"\n class=\"cqa-gv-tag-input\"\n placeholder=\"Tag\u2026\"\n [value]=\"draft\"\n (input)=\"onDraftChange($any($event.target).value)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\" />\n\n <div *ngIf=\"suggestions.length > 0\" class=\"cqa-gv-tag-suggest\">\n <div *ngFor=\"let s of suggestions\"\n class=\"cqa-gv-tag-suggest-item\"\n (mousedown)=\"onSuggestionMouseDown($event, s)\">\n <span class=\"cqa-inline-flex cqa-items-center cqa-gap-1.5\">\n <mat-icon>sell</mat-icon>\n <span>{{ s.name }}</span>\n </span>\n <span *ngIf=\"s.count != null\" class=\"cqa-gv-tag-suggest-count\">{{ s.count }}</span>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
119
119
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tags: [{
|
|
120
120
|
type: Input
|
|
121
121
|
}], availableTags: [{
|
|
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
126
126
|
type: ViewChild,
|
|
127
127
|
args: ['tagInput']
|
|
128
128
|
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLXRhZ3MtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy9nbG9iYWwtdmFyaWFibGUtdGFncy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nL2dsb2JhbC12YXJpYWJsZS10YWdzLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7OztBQUd2Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBT0gsTUFBTSxPQUFPLGdDQUFnQztJQVUzQyxZQUE2QixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVQxQyxTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQThCLEVBQUUsQ0FBQztRQUM3QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUlwRCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQUUyQyxDQUFDO0lBRXZELElBQUksV0FBVztRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMs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QUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs2SEFuR1UsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc1dDaEM3QywyNkZBc0RBOzJGRHRCYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUV6Qix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7d0dBR3pELElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBRWdCLFdBQVc7c0JBQWpDLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHbG9iYWxWYXJpYWJsZVRhZ09wdGlvbiB9IGZyb20gJy4vbmV3LWdsb2JhbC12YXJpYWJsZS1kaWFsb2cubW9kZWxzJztcblxuLyoqXG4gKiBUYWcgY2hpcC1saXN0ICsgYXV0b2NvbXBsZXRlIHVzZWQgYnkgdGhlIE5ldyAvIEVkaXQgR2xvYmFsIFZhcmlhYmxlIGRpYWxvZy5cbiAqIE1pcnJvcnMgdGhlIFJlYWN0IGBUYWdzRWRpdG9yYCBibG9jayBpblxuICogYEVudmlyb25tZW50IGFuZCBEYXRhIE1hbmFnZW1lbnRfQ0QgRGVpc2ducy9zcmMvR2xvYmFsLmpzeDoxNzktMjM3YDpcbiAqXG4gKiAgIFtjaGlwIMOXIOKApl0gIFsrIEFkZCB0YWddICAg4oaQICBpbmFjdGl2ZSBzdGF0ZVxuICogICBbY2hpcCDDlyDigKZdICBbX2lucHV0XyAg4oazIHN1Z2dlc3Rpb25zXSAgIOKGkCAgYWN0aXZlIHN0YXRlXG4gKlxuICogQmVoYXZpb3I6XG4gKiAgIC0gQmFja3NwYWNlIG9uIGFuIGVtcHR5IGlucHV0IHJlbW92ZXMgdGhlIGxhc3QgdGFnLlxuICogICAtIEVudGVyIGNvbW1pdHMgdGhlIHRyaW1tZWQgbG93ZXJjYXNlIHZhbHVlIChjcmVhdGVzIGlmIG5vdCBpbiBhdmFpbGFibGUpLlxuICogICAtIEVzY2FwZSBleGl0cyB0aGUgaW5wdXQgd2l0aG91dCBjb21taXR0aW5nLlxuICogICAtIFN1Z2dlc3Rpb25zIGFyZSBjb21wdXRlZCBmcm9tIGBhdmFpbGFibGVUYWdzYCwgY2FwcGVkIGF0IDQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1nbG9iYWwtdmFyaWFibGUtdGFncy1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9nbG9iYWwtdmFyaWFibGUtdGFncy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnLCBzdHlsZTogJ2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTsnIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdsb2JhbFZhcmlhYmxlVGFnc0lucHV0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdGFnczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgYXZhaWxhYmxlVGFnczogR2xvYmFsVmFyaWFibGVUYWdPcHRpb25bXSA9IFtdO1xuICBAT3V0cHV0KCkgdGFnc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGFnSW5wdXQnKSB0YWdJbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgYWRkaW5nID0gZmFsc2U7XG4gIGRyYWZ0ID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldCBzdWdnZXN0aW9ucygpOiBHbG9iYWxWYXJpYWJsZVRhZ09wdGlvbltdIHtcbiAgICBjb25zdCB0eXBlZCA9IHRoaXMuZHJhZnQudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdGFrZW4gPSBuZXcgU2V0KCh0aGlzLnRhZ3MgPz8gW10pLm1hcCh0ID0+IHQudG9Mb3dlckNhc2UoKSkpO1xuICAgIGNvbnN0IHBvb2wgPSAodGhpcy5hdmFpbGFibGVUYWdzID8/IFtdKS5maWx0ZXIodCA9PiAhdGFrZW4uaGFzKCh0Lm5hbWUgPz8gJycpLnRvTG93ZXJDYXNlKCkpKTtcbiAgICBpZiAodHlwZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gcG9vbC5zbGljZSgwLCA0KTtcbiAgICB9XG4gICAgcmV0dXJuIHBvb2xcbiAgICAgIC5maWx0ZXIodCA9PiAodC5uYW1lID8/ICcnKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgodHlwZWQpKVxuICAgICAgLnNsaWNlKDAsIDQpO1xuICB9XG5cbiAgYmVnaW5BZGQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZHJhZnQgPSAnJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudGFnSW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMCk7XG4gIH1cblxuICBvbkRyYWZ0Q2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZHJhZnQgPSBuZXh0ID8/ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY29tbWl0RHJhZnQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNhbmNlbEFkZCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJiAhdGhpcy5kcmFmdCAmJiB0aGlzLnRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMucmVtb3ZlQXQodGhpcy50YWdzLmxlbmd0aCAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3VnZ2VzdGlvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgc3VnZ2VzdGlvbjogR2xvYmFsVmFyaWFibGVUYWdPcHRpb24pOiB2b2lkIHtcbiAgICAvLyBtb3VzZURvd24gYmVhdHMgYmx1ciBzbyB0aGUgY2xpY2sgcmVnaXN0ZXJzIGJlZm9yZSB0aGUgaW5wdXQgbG9zZXMgZm9jdXNcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuY29tbWl0KHN1Z2dlc3Rpb24ubmFtZSk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgLy8gRGVmZXIgc28gc3VnZ2VzdGlvbiBjbGljayBoYXMgYSBjaGFuY2UgdG8gZmlyZSBmaXJzdFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFkZGluZykgeyByZXR1cm47IH1cbiAgICAgIHRoaXMuY29tbWl0RHJhZnQoKTtcbiAgICB9LCAxNTApO1xuICB9XG5cbiAgcmVtb3ZlQXQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSAodGhpcy50YWdzID8/IFtdKS5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICB0aGlzLnRhZ3MgPSBuZXh0O1xuICAgIHRoaXMudGFnc0NoYW5nZS5lbWl0KG5leHQpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21taXREcmFmdCgpOiB2b2lkIHtcbiAgICBjb25zdCByYXcgPSAodGhpcy5kcmFmdCA/PyAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHRoaXMuY2FuY2VsQWRkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29tbWl0KHJhdyk7XG4gIH1cblxuICBwcml2YXRlIGNvbW1pdChuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gKG5hbWUgPz8gJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghbm9ybWFsaXplZCkgeyByZXR1cm47IH1cbiAgICBjb25zdCB0YWtlbiA9IG5ldyBTZXQoKHRoaXMudGFncyA/PyBbXSkubWFwKHQgPT4gdC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgaWYgKHRha2VuLmhhcyhub3JtYWxpemVkKSkge1xuICAgICAgdGhpcy5jYW5jZWxBZGQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV4dCA9IFsuLi4odGhpcy50YWdzID8/IFtdKSwgbm9ybWFsaXplZF07XG4gICAgdGhpcy50YWdzID0gbmV4dDtcbiAgICB0aGlzLnRhZ3NDaGFuZ2UuZW1pdChuZXh0KTtcbiAgICB0aGlzLmRyYWZ0ID0gJyc7XG4gICAgdGhpcy5hZGRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuY2VsQWRkKCk6IHZvaWQge1xuICAgIHRoaXMuYWRkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5kcmFmdCA9ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMS41XCI+XG4gIDwhLS0gU2VsZWN0ZWQgdGFnIGNoaXBzIC0tPlxuICA8c3BhbiAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3M7IGxldCBpID0gaW5kZXhcIlxuICAgIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1weC0yIGNxYS1weS0wLjUgY3FhLXJvdW5kZWQtZnVsbCBjcWEtdGV4dC14cyBjcWEtZm9udC1tZWRpdW1cIlxuICAgIHN0eWxlPVwiYmFja2dyb3VuZDojRkFFOEZGO2NvbG9yOiM2QjIxQTg7XCI+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS13LVsxMnB4XSAhY3FhLWgtWzEycHhdICFjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzEycHhdXCI+c2VsbDwvbWF0LWljb24+XG4gICAgPHNwYW4+e3sgdGFnIH19PC9zcGFuPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcm91bmRlZC1mdWxsIGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtYmctWyNFOUQ1RkZdXCJcbiAgICAgIHN0eWxlPVwiYm9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nOjA7XCJcbiAgICAgIChjbGljayk9XCJyZW1vdmVBdChpKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUgdGFnICcgKyB0YWdcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy1bMTJweF0gIWNxYS1oLVsxMnB4XSAhY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxMnB4XVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9zcGFuPlxuXG4gIDwhLS0gSW5hY3RpdmU6IFwiKyBBZGQgdGFnXCIgcGlsbCAtLT5cbiAgPGJ1dHRvbiAqbmdJZj1cIiFhZGRpbmdcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtcHgtMiBjcWEtcHktMC41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLXRleHQteHMgY3FhLWN1cnNvci1wb2ludGVyXCJcbiAgICBzdHlsZT1cImJvcmRlcjoxcHggZGFzaGVkICNENEQ0RDg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojNTI1MjVCO1wiXG4gICAgKGNsaWNrKT1cImJlZ2luQWRkKClcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctWzEycHhdICFjcWEtaC1bMTJweF0gIWNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTJweF1cIj5hZGQ8L21hdC1pY29uPlxuICAgIDxzcGFuPkFkZCB0YWc8L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gQWN0aXZlOiBpbnB1dCArIHN1Z2dlc3Rpb25zLiBJbnB1dCBtYXRjaGVzIHRoZSBkaWFsb2cncyBvdGhlciBpbnB1dHM6XG4gICAgICAgZnVsbC13aWR0aCByb3csIDFweCBzb2xpZCBib3JkZXIsIHJvdW5kZWQ7IGlucHV0IGJvcmRlciBpdHNlbGYgaXMgdGhlXG4gICAgICAgaW5uZXIgcGlsbCB0aGUgdXNlciB0eXBlcyBpbnRvLiBTdWdnZXN0aW9uIGRyb3Bkb3duIHJlbmRlcnMgYmVsb3cuIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWRkaW5nXCIgY2xhc3M9XCJjcWEtcmVsYXRpdmVcIiBzdHlsZT1cIm1pbi13aWR0aDoyMDBweDtcIj5cbiAgICA8aW5wdXQgI3RhZ0lucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBjbGFzcz1cImNxYS1weC0zIGNxYS1weS0xLjUgY3FhLXJvdW5kZWQtbWQgY3FhLXRleHQtc20gY3FhLW91dGxpbmUtbm9uZSBjcWEtdy1mdWxsXCJcbiAgICAgIHN0eWxlPVwiYm9yZGVyOjFweCBzb2xpZCAjNjM2NkYxO2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoOTksMTAyLDI0MSwwLjEyKTtcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJUYWfigKZcIlxuICAgICAgW3ZhbHVlXT1cImRyYWZ0XCJcbiAgICAgIChpbnB1dCk9XCJvbkRyYWZ0Q2hhbmdlKCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgLz5cblxuICAgIDxkaXYgKm5nSWY9XCJzdWdnZXN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS16LTEwIGNxYS1tdC0xIGNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1tZCBjcWEtc2hhZG93LWxnIGNxYS13LWZ1bGxcIlxuICAgICAgc3R5bGU9XCJib3JkZXI6MXB4IHNvbGlkICNFNUU3RUI7bWF4LWhlaWdodDoyMjBweDtvdmVyZmxvdy15OmF1dG87bGVmdDowO1wiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcyBvZiBzdWdnZXN0aW9uc1wiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtcHgtMyBjcWEtcHktMiBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLWJnLVsjRjNGNEY2XVwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25TdWdnZXN0aW9uTW91c2VEb3duKCRldmVudCwgcylcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXRleHQtc20gY3FhLXRleHQtZ3JheS04MDBcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF0gIWNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMTRweF1cIiBzdHlsZT1cImNvbG9yOiM2QjIxQTg7XCI+c2VsbDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgcy5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicy5jb3VudCAhPSBudWxsXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTFweF0gY3FhLXRleHQtZ3JheS00MDBcIj57eyBzLmNvdW50IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLXRhZ3MtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy9nbG9iYWwtdmFyaWFibGUtdGFncy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nL2dsb2JhbC12YXJpYWJsZS10YWdzLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7OztBQUd2Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBT0gsTUFBTSxPQUFPLGdDQUFnQztJQVUzQyxZQUE2QixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVQxQyxTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQThCLEVBQUUsQ0FBQztRQUM3QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUlwRCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQUUyQyxDQUFDO0lBRXZELElBQUksV0FBVztRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMs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QUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs2SEFuR1UsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc1dDaEM3Qyx5L0NBNkNBOzJGRGJhLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSxnQ0FBZ0MsbUJBRXpCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTt3R0FHekQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFFZ0IsV0FBVztzQkFBakMsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdsb2JhbFZhcmlhYmxlVGFnT3B0aW9uIH0gZnJvbSAnLi9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy5tb2RlbHMnO1xuXG4vKipcbiAqIFRhZyBjaGlwLWxpc3QgKyBhdXRvY29tcGxldGUgdXNlZCBieSB0aGUgTmV3IC8gRWRpdCBHbG9iYWwgVmFyaWFibGUgZGlhbG9nLlxuICogTWlycm9ycyB0aGUgUmVhY3QgYFRhZ3NFZGl0b3JgIGJsb2NrIGluXG4gKiBgRW52aXJvbm1lbnQgYW5kIERhdGEgTWFuYWdlbWVudF9DRCBEZWlzZ25zL3NyYy9HbG9iYWwuanN4OjE3OS0yMzdgOlxuICpcbiAqICAgW2NoaXAgw5cg4oCmXSAgWysgQWRkIHRhZ10gICDihpAgIGluYWN0aXZlIHN0YXRlXG4gKiAgIFtjaGlwIMOXIOKApl0gIFtfaW5wdXRfICDihrMgc3VnZ2VzdGlvbnNdICAg4oaQICBhY3RpdmUgc3RhdGVcbiAqXG4gKiBCZWhhdmlvcjpcbiAqICAgLSBCYWNrc3BhY2Ugb24gYW4gZW1wdHkgaW5wdXQgcmVtb3ZlcyB0aGUgbGFzdCB0YWcuXG4gKiAgIC0gRW50ZXIgY29tbWl0cyB0aGUgdHJpbW1lZCBsb3dlcmNhc2UgdmFsdWUgKGNyZWF0ZXMgaWYgbm90IGluIGF2YWlsYWJsZSkuXG4gKiAgIC0gRXNjYXBlIGV4aXRzIHRoZSBpbnB1dCB3aXRob3V0IGNvbW1pdHRpbmcuXG4gKiAgIC0gU3VnZ2VzdGlvbnMgYXJlIGNvbXB1dGVkIGZyb20gYGF2YWlsYWJsZVRhZ3NgLCBjYXBwZWQgYXQgNC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdsb2JhbC12YXJpYWJsZS10YWdzLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dsb2JhbC12YXJpYWJsZS10YWdzLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcsIHN0eWxlOiAnZGlzcGxheTpibG9jazt3aWR0aDoxMDAlOycgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsVmFyaWFibGVUYWdzSW5wdXRDb21wb25lbnQge1xuICBASW5wdXQoKSB0YWdzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBhdmFpbGFibGVUYWdzOiBHbG9iYWxWYXJpYWJsZVRhZ09wdGlvbltdID0gW107XG4gIEBPdXRwdXQoKSB0YWdzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAVmlld0NoaWxkKCd0YWdJbnB1dCcpIHRhZ0lucHV0UmVmPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBhZGRpbmcgPSBmYWxzZTtcbiAgZHJhZnQgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IHN1Z2dlc3Rpb25zKCk6IEdsb2JhbFZhcmlhYmxlVGFnT3B0aW9uW10ge1xuICAgIGNvbnN0IHR5cGVkID0gdGhpcy5kcmFmdC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCB0YWtlbiA9IG5ldyBTZXQoKHRoaXMudGFncyA/PyBbXSkubWFwKHQgPT4gdC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgY29uc3QgcG9vbCA9ICh0aGlzLmF2YWlsYWJsZVRhZ3MgPz8gW10pLmZpbHRlcih0ID0+ICF0YWtlbi5oYXMoKHQubmFtZSA/PyAnJykudG9Mb3dlckNhc2UoKSkpO1xuICAgIGlmICh0eXBlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBwb29sLnNsaWNlKDAsIDQpO1xuICAgIH1cbiAgICByZXR1cm4gcG9vbFxuICAgICAgLmZpbHRlcih0ID0+ICh0Lm5hbWUgPz8gJycpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCh0eXBlZCkpXG4gICAgICAuc2xpY2UoMCwgNCk7XG4gIH1cblxuICBiZWdpbkFkZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZGluZyA9IHRydWU7XG4gICAgdGhpcy5kcmFmdCA9ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50YWdJbnB1dFJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpLCAwKTtcbiAgfVxuXG4gIG9uRHJhZnRDaGFuZ2UobmV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kcmFmdCA9IG5leHQgPz8gJyc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jb21taXREcmFmdCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY2FuY2VsQWRkKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmICF0aGlzLmRyYWZ0ICYmIHRoaXMudGFncy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5yZW1vdmVBdCh0aGlzLnRhZ3MubGVuZ3RoIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgb25TdWdnZXN0aW9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBzdWdnZXN0aW9uOiBHbG9iYWxWYXJpYWJsZVRhZ09wdGlvbik6IHZvaWQge1xuICAgIC8vIG1vdXNlRG93biBiZWF0cyBibHVyIHNvIHRoZSBjbGljayByZWdpc3RlcnMgYmVmb3JlIHRoZSBpbnB1dCBsb3NlcyBmb2N1c1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5jb21taXQoc3VnZ2VzdGlvbi5uYW1lKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICAvLyBEZWZlciBzbyBzdWdnZXN0aW9uIGNsaWNrIGhhcyBhIGNoYW5jZSB0byBmaXJlIGZpcnN0XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuYWRkaW5nKSB7IHJldHVybjsgfVxuICAgICAgdGhpcy5jb21taXREcmFmdCgpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICByZW1vdmVBdChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dCA9ICh0aGlzLnRhZ3MgPz8gW10pLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpO1xuICAgIHRoaXMudGFncyA9IG5leHQ7XG4gICAgdGhpcy50YWdzQ2hhbmdlLmVtaXQobmV4dCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGNvbW1pdERyYWZ0KCk6IHZvaWQge1xuICAgIGNvbnN0IHJhdyA9ICh0aGlzLmRyYWZ0ID8/ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXJhdykge1xuICAgICAgdGhpcy5jYW5jZWxBZGQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb21taXQocmF3KTtcbiAgfVxuXG4gIHByaXZhdGUgY29tbWl0KG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSAobmFtZSA/PyAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFub3JtYWxpemVkKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHRha2VuID0gbmV3IFNldCgodGhpcy50YWdzID8/IFtdKS5tYXAodCA9PiB0LnRvTG93ZXJDYXNlKCkpKTtcbiAgICBpZiAodGFrZW4uaGFzKG5vcm1hbGl6ZWQpKSB7XG4gICAgICB0aGlzLmNhbmNlbEFkZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXh0ID0gWy4uLih0aGlzLnRhZ3MgPz8gW10pLCBub3JtYWxpemVkXTtcbiAgICB0aGlzLnRhZ3MgPSBuZXh0O1xuICAgIHRoaXMudGFnc0NoYW5nZS5lbWl0KG5leHQpO1xuICAgIHRoaXMuZHJhZnQgPSAnJztcbiAgICB0aGlzLmFkZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5jZWxBZGQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRyYWZ0ID0gJyc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZ3YtdGFnLXJvd1wiPlxuICA8IS0tIFNlbGVjdGVkIHRhZyBjaGlwcyAtLT5cbiAgPHNwYW4gKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJjcWEtZ3YtdGFnLWNoaXBcIj5cbiAgICA8bWF0LWljb24+c2VsbDwvbWF0LWljb24+XG4gICAgPHNwYW4+e3sgdGFnIH19PC9zcGFuPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImNxYS1ndi10YWctY2hpcC14XCJcbiAgICAgIChjbGljayk9XCJyZW1vdmVBdChpKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUgdGFnICcgKyB0YWdcIj5cbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvc3Bhbj5cblxuICA8IS0tIEluYWN0aXZlOiBcIisgQWRkIHRhZ1wiIGRhc2hlZCBwaWxsIC0tPlxuICA8YnV0dG9uICpuZ0lmPVwiIWFkZGluZ1wiIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiY3FhLWd2LXRhZy1hZGRcIlxuICAgIChjbGljayk9XCJiZWdpbkFkZCgpXCI+XG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgPHNwYW4+QWRkIHRhZzwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgPCEtLSBBY3RpdmU6IHBpbGwtc3R5bGVkIGlucHV0ICsgc3VnZ2VzdGlvbiBkcm9wZG93biAtLT5cbiAgPGRpdiAqbmdJZj1cImFkZGluZ1wiIGNsYXNzPVwiY3FhLXJlbGF0aXZlXCI+XG4gICAgPGlucHV0ICN0YWdJbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgY2xhc3M9XCJjcWEtZ3YtdGFnLWlucHV0XCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiVGFn4oCmXCJcbiAgICAgIFt2YWx1ZV09XCJkcmFmdFwiXG4gICAgICAoaW5wdXQpPVwib25EcmFmdENoYW5nZSgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic3VnZ2VzdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiY3FhLWd2LXRhZy1zdWdnZXN0XCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzIG9mIHN1Z2dlc3Rpb25zXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtZ3YtdGFnLXN1Z2dlc3QtaXRlbVwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25TdWdnZXN0aW9uTW91c2VEb3duKCRldmVudCwgcylcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5zZWxsPC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyBzLm5hbWUgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzLmNvdW50ICE9IG51bGxcIiBjbGFzcz1cImNxYS1ndi10YWctc3VnZ2VzdC1jb3VudFwiPnt7IHMuY291bnQgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|