vcomply-workflow-engine 2.4.65 → 2.4.68
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/bundles/vcomply-workflow-engine.umd.js +125 -74
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/interceptor/business-cycle.interceptor.js +15 -0
- package/esm2015/lib/interceptor/business-cycle.interceptor.ngsummary.json +1 -0
- package/esm2015/lib/more-option/more-option.component.js +12 -12
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.js +6 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.js +2 -2
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.js +1 -2
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +1 -1
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.js +10 -7
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +1 -1
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +2 -2
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +3 -3
- package/esm2015/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.js +2 -2
- package/esm2015/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +19 -4
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +1 -1
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +9 -5
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +4 -4
- package/esm2015/lib/workflow-engine.module.js +1 -1
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.js +2 -2
- package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +4 -3
- package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngfactory.js +6 -4
- package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +13 -3
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +4 -4
- package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-program/workflow-program.component.js +9 -5
- package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +119 -118
- package/esm2015/lib/workflow-risk/workflow-risk.component.js +9 -6
- package/esm2015/lib/workflow-services/programs.service.js +12 -12
- package/fesm2015/vcomply-workflow-engine.js +98 -53
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/interceptor/business-cycle.interceptor.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +1 -0
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +2 -0
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -0
- package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +1 -0
- package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +2 -0
- package/lib/workflow-program/workflow-program.component.d.ts +1 -0
- package/package.json +1 -1
- package/vcomply-workflow-engine.metadata.json +1 -1
package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js
CHANGED
|
@@ -34,4 +34,4 @@ import * as i26 from "./components/logic-questions/logic-questions.module";
|
|
|
34
34
|
import * as i27 from "../../ui-kit/editor-loader/editor-loader.module";
|
|
35
35
|
var CreateAssessmentModuleNgFactory = i0.ɵcmf(i1.CreateAssessmentModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.DialogComponentNgFactory, i3.ɵaNgFactory, i4.DatePickerComponentNgFactory, i5.ɵtNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i6.NgLocalization, i6.NgLocaleLocalization, [i0.LOCALE_ID]), i0.ɵmpd(4608, i7.PopoverService, i7.PopoverService, []), i0.ɵmpd(4608, i8.DragDrop, i8.DragDrop, [i6.DOCUMENT, i0.NgZone, i9.ViewportRuler, i8.DragDropRegistry]), i0.ɵmpd(4608, i10.DialogRef, i10.DialogRef, []), i0.ɵmpd(1073742336, i6.CommonModule, i6.CommonModule, []), i0.ɵmpd(1073742336, i11.TooltipModule, i11.TooltipModule, []), i0.ɵmpd(1073742336, i12.PopoverModule, i12.PopoverModule, []), i0.ɵmpd(1073742336, i9.CdkScrollableModule, i9.CdkScrollableModule, []), i0.ɵmpd(1073742336, i8.DragDropModule, i8.DragDropModule, []), i0.ɵmpd(1073742336, i13.DialogModule, i13.DialogModule, []), i0.ɵmpd(1073742336, i14.ɵangular_packages_forms_forms_p, i14.ɵangular_packages_forms_forms_p, []), i0.ɵmpd(1073742336, i14.ɵangular_packages_forms_forms_d, i14.ɵangular_packages_forms_forms_d, []), i0.ɵmpd(1073742336, i14.FormsModule, i14.FormsModule, []), i0.ɵmpd(1073742336, i15.ɵg, i15.ɵg, []), i0.ɵmpd(1073742336, i16.MentionModule, i16.MentionModule, []), i0.ɵmpd(1073742336, i15.MarxEditorModule, i15.MarxEditorModule, []), i0.ɵmpd(1073742336, i17.FormgroupModule, i17.FormgroupModule, []), i0.ɵmpd(1073742336, i18.NoDataModule, i18.NoDataModule, []), i0.ɵmpd(1073742336, i19.FormgroupModule, i19.FormgroupModule, []), i0.ɵmpd(1073742336, i20.BuildModule, i20.BuildModule, []), i0.ɵmpd(1073742336, i21.DpDatePickerModule, i21.DpDatePickerModule, []), i0.ɵmpd(1073742336, i22.NgxMaterialTimepickerModule, i22.NgxMaterialTimepickerModule, []), i0.ɵmpd(1073742336, i23.SelectModule, i23.SelectModule, []), i0.ɵmpd(1073742336, i24.PreviewModule, i24.PreviewModule, []), i0.ɵmpd(1073742336, i25.AssessmentPreviewModule, i25.AssessmentPreviewModule, []), i0.ɵmpd(1073742336, i26.LogicQuestionsModule, i26.LogicQuestionsModule, []), i0.ɵmpd(1073742336, i27.EditorLoaderModule, i27.EditorLoaderModule, []), i0.ɵmpd(1073742336, i1.CreateAssessmentModule, i1.CreateAssessmentModule, [])]); });
|
|
36
36
|
export { CreateAssessmentModuleNgFactory as CreateAssessmentModuleNgFactory };
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL2NyZWF0ZS1hc3Nlc3NtZW50Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1ldmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1sb25ncHJlc3MuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAndmNvbXBseS1lZGl0b3InO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1jaGVja2JveC9jcy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1yYWRpby9jcy1yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEzIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1zd2l0Y2gvY3Mtc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTQgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXJhZGlvLWdyb3VwL2NzLXJhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXNlbGVjdC9jcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNiBmcm9tICcuLi8uLi9mb3JtZ3JvdXAvY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS9jcy1jaGVja2JveC1pbmRldGVybWluYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTcgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTggZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL211bHRpcGxlLWNob2ljZS9tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvaW1hZ2UtY2hvaWNlL2ltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIyIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tYXRyaXgtZHJvcGRvd24vbWF0cml4LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjMgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjQgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL21hdHJpeC1yYXRpbmctc2NhbGUvbWF0cml4LXJhdGluZy1zY2FsZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI1IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9yYW5raW5nL3JhbmtpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNiBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI3IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tdWx0aXBsZS10ZXh0Ym94L211bHRpcGxlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvZGF0ZS10aW1lL2RhdGUtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI5IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvdGhhbmsteW91L3RoYW5rLXlvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWlnaHRhZ2Utc2VsZWN0b3Ivd2VpZ2h0YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzIgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy13cmFwcGVyL3ByZXZpZXctd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMzIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlL3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzQgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1jaGVja2JveC9wcmV2aWV3LWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1pbWFnZS1jaG9pY2UvcHJldmlldy1pbWFnZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXN0YXItcmF0aW5nL3ByZXZpZXctc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXNpbmdsZS10ZXh0Ym94L3ByZXZpZXctc2luZ2xlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWNvbW1lbnQtYm94L3ByZXZpZXctY29tbWVudC1ib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOSBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQwIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctZHJvcGRvd24vcHJldmlldy1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQxIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbWF0cml4LXJhdGluZy1zY2FsZS9wcmV2aWV3LW1hdHJpeC1yYXRpbmctc2NhbGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0MiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXJhbmtpbmcvcHJldmlldy1yYW5raW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDMgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1zbGlkZXIvcHJldmlldy1zbGlkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW11bHRpcGxlLXRleHRib3gvcHJldmlldy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1kYXRlLXRpbWUvcHJldmlldy1kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWZpbGUtdXBsb2FkL3ByZXZpZXctZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0OCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy90aGFuay15b3UvdGhhbmsteW91LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDkgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2NoZWNrYm94LXF1ZXN0aW9uL2NoZWNrYm94LXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNTAgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2RhdGUtdGltZS9kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1MSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvZGV2aWNlL2RldmljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUyIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUzIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NCBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcHJldmlldy1jb250YWluZXIvcHJldmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcXVpY2stc2V0dGluZ3MvcXVpY2stc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NiBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcmFkaW8tcXVlc3Rpb24vcmFkaW8tcXVlc3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NyBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvc2VsZWN0LXF1ZXN0aW9uL3NlbGVjdC1xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU4IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9zaW5nbGUtdGV4dGJveC9zaW5nbGUtdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU5IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2MCBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBpNjEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1tdWx0aXBsZS1jaG9pY2UvbG9naWMtbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjIgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jaGVja2JveC9sb2dpYy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTYzIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtaW1hZ2UtY2hvaWNlL2xvZ2ljLWltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc3Rhci1yYXRpbmcvbG9naWMtc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2NSBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXNpbmdsZS10ZXh0Ym94L2xvZ2ljLXNpbmdsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jb21tZW50LWJveC9sb2dpYy1jb21tZW50LWJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY3IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtZHJvcGRvd24vbG9naWMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2OCBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXJhbmtpbmcvbG9naWMtcmFua2luZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY5IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc2xpZGVyL2xvZ2ljLXNsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTcwIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtbXVsdGlwbGUtdGV4dGJveC9sb2dpYy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1kYXRlLXRpbWUvbG9naWMtZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzIgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci9lZGl0b3ItbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzMgZnJvbSAnLi9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzQgZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUvcXVlc3Rpb24tdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtcGFnZS1kZXRhaWxzL2FkZC1wYWdlLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk3NiBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXNzbWVudC1zZXR0aW5ncy9hc3Nlc3NtZW50LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzcgZnJvbSAnLi9jb21wb25lbnRzL2FkZC1zZWdtZW50LXBvcHVwL2FkZC1zZWdtZW50LXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzggZnJvbSAnLi9jb21wb25lbnRzL2FkZC1yZXNwb25zZS1zZXQtcG9wdXAvYWRkLXJlc3BvbnNlLXNldC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc5IGZyb20gJy4vY29tcG9uZW50cy9lZGl0b3Itd3JhcHBlci9lZGl0b3Itd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgwIGZyb20gJy4vY29tcG9uZW50cy9xdWljay1zZXR0aW5ncy9xdWljay1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgxIGZyb20gJy4vY29tcG9uZW50cy9zaW5nbGUtbGluZS1lZGl0b3Ivc2luZ2xlLWxpbmUtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODIgZnJvbSAnLi9jb21wb25lbnRzL3Jlc3BvbnNlLXNlbGVjdG9yL3Jlc3BvbnNlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODMgZnJvbSAnLi9jb21wb25lbnRzL21vdmUvbW92ZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy9sb2dpYy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtbG9naWMvYWRkLWxvZ2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODYgZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xraXQvdG9vbGtpdC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg3IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLWFub255bW91cy9zZXR0aW5nLWFub255bW91cy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg4IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLXJlc3BvbnNlLXNlZ21lbnQvc2V0dGluZy1yZXNwb25zZS1zZWdtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODkgZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpOTAgZnJvbSAnLi9jb21wb25lbnRzL3dlbGNvbWUtdGhhbmt5b3Uvd2VsY29tZS10aGFua3lvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTkxIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9lcnJvci1tZXNzYWdlLnBpcGUnO1xuaW1wb3J0ICogYXMgaTkyIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9xdWVzdGlvbi1maWx0ZXIucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTMgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhcnNlci5waXBlJztcbmltcG9ydCAqIGFzIGk5NCBmcm9tICcuL2NvbXBvbmVudHMvcGlwZXMvZm9ybWF0dGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk1IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9jdXJyZW50LXBhZ2UtcXVlc3Rpb24ucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTYgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhZ2UtZmlsdGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk3IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy90eXBlLW9mLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk4IGZyb20gJy4uLy4uL3VpLWtpdC90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk5OSBmcm9tICcuLi8uLi91aS1raXQvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAwIGZyb20gJy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAxIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9mb3JtZ3JvdXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDIgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAzIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9idWlsZC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTEwNCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTA1IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9hc3Nlc3NtZW50LXByZXZpZXcubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1xdWVzdGlvbnMubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDcgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci5tb2R1bGUnO1xuZXhwb3J0IGNvbnN0IENyZWF0ZUFzc2Vzc21lbnRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLkNyZWF0ZUFzc2Vzc21lbnRNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5Ub29sVGlwRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlBvcG92ZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuUG9wb3ZlckRpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5Qb3BvdmVyRXZlbnREaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuUG9wb3ZlckxvbmdwcmVzc0RpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppOC5DZGtTY3JvbGxhYmxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5LkNka0Ryb3BMaXN0PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTkuQ2RrRHJvcExpc3RHcm91cDxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5Omk5LkNka0RyYWc8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppOS5DZGtEcmFnSGFuZGxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmk5LkNka0RyYWdQcmV2aWV3PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTkuQ2RrRHJhZ1BsYWNlaG9sZGVyPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTEwLsm1YSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMTEuQ3NDaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMTIuQ3NSYWRpb0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMTMuQ3NTd2l0Y2hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTE0LkNzUmFkaW9Hcm91cENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yODppMTUuQ3NTZWxlY3RDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTE2LkNzQ2hlY2tib3hJbmRldGVybWluYXRlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmkxNy5Ob0RhdGFDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzE6aTE4Lk11bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxOS5DaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppMjAuSW1hZ2VDaG9pY2VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTIxLlN0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzU6aTIyLk1hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2OmkyMy5Ecm9wZG93bkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppMjQuTWF0cml4UmF0aW5nU2NhbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTI1LlJhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTI2LlNsaWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMjcuTXVsdGlwbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQxOmkyOC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MjppMjkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MzppMzAuVGhhbmtZb3VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTMxLldlaWdodGFnZVNlbGVjdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ1OmkzMi5QcmV2aWV3V3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMzMuUHJldmlld011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ3OmkzNC5QcmV2aWV3Q2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTM1LlByZXZpZXdJbWFnZUNob2ljZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OTppMzYuUHJldmlld1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTA6aTM3LlByZXZpZXdTaW5nbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUxOmkzOC5QcmV2aWV3Q29tbWVudEJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMzkuUHJldmlld01hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmk0MC5QcmV2aWV3RHJvcGRvd25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTQxLlByZXZpZXdNYXRyaXhSYXRpbmdTY2FsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppNDIuUHJldmlld1JhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTQzLlByZXZpZXdTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTQ0LlByZXZpZXdNdWx0aXBsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTQ1LlByZXZpZXdEYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppNDYuUHJldmlld0ZpbGVVcGxvYWRDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTQ3LldlbGNvbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjE6aTQ4LlRoYW5rWW91Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYyOmk0OS5DaGVja2JveFF1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYzOmk1MC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NDppNTEuRGV2aWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY1Omk1Mi5GaWxlVXBsb2FkQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY2Omk1My5QcmV2aWV3Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY3Omk1NC5QcmV2aWV3Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY4Omk1NS5RdWlja1NldHRpbmdzQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY5Omk1Ni5SYWRpb1F1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcwOmk1Ny5TZWxlY3RRdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MTppNTguU2luZ2xlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MjppNTkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MzppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JiID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc0Omk2MC5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NTppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JhID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc2Omk2MC5EZWZhdWx0VmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NzppNjAuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83ODppNjAuUmFuZ2VWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc5Omk2MC5DaGVja2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgwOmk2MC5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MTppNjAuU2VsZWN0TXVsdGlwbGVDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MjppNjAuUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MzppNjAuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg0Omk2MC5OZ0NvbnRyb2xTdGF0dXNHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NTppNjAuUmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTYwLk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NzppNjAuTWF4TGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg4Omk2MC5QYXR0ZXJuVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg5Omk2MC5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkwOmk2MC5FbWFpbFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85MTppNjAuTWluVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkyOmk2MC5NYXhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTM6aTYwLk5nTW9kZWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTQ6aTYwLk5nTW9kZWxHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85NTppNjAuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk2Omk2MS5Mb2dpY011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk3Omk2Mi5Mb2dpY0NoZWNrYm94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk4Omk2My5Mb2dpY0ltYWdlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk5Omk2NC5Mb2dpY1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAwOmk2NS5Mb2dpY1NpbmdsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAxOmk2Ni5Mb2dpY0NvbW1lbnRCb3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAyOmk2Ny5Mb2dpY0Ryb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwMzppNjguTG9naWNSYW5raW5nQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwNDppNjkuTG9naWNTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA1Omk3MC5Mb2dpY011bHRpcGxlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDY6aTcxLkxvZ2ljRGF0ZVRpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA3Omk3Mi5FZGl0b3JMb2FkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA4Omk3My5DcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOTppNzQuUXVlc3Rpb25UeXBlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMDppNzUuQWRkUGFnZURldGFpbHNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTExOmk3Ni5Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEyOmk3Ny5BZGRTZWdtZW50UG9wdXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEzOmk3OC5BZGRSZXNwb25zZVNldFBvcHVwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNDppNzkuRWRpdG9yV3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTU6aTgwLlF1aWNrU2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE2Omk4MS5TaW5nbGVMaW5lRWRpdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNzppODIuUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTg6aTgzLk1vdmVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE5Omk4NC5Mb2dpY0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjA6aTg1LkFkZExvZ2ljQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyMTppODYuVG9vbGtpdENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjI6aTg3LlNldHRpbmdBbm9ueW1vdXNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTIzOmk4OC5TZXR0aW5nUmVzcG9uc2VTZWdtZW50Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNDppODkuUGFnZUhlYWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjU6aTkwLldlbGNvbWVUaGFua3lvdUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjY6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNzppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyODppMi5Mb3dlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzA6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzMTppMi5EZWNpbWFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzI6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTMzOmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM0OmkyLkN1cnJlbmN5UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzU6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM2OmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzNzppMi5JMThuU2VsZWN0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzg6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0MDppOTEuRXJyb3JNZXNzYWdlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDI6aTkyLlF1ZXN0aW9uRmlsdGVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDQ6aTkzLlF1ZXN0aW9uUGFyc2VyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDY6aTk0LkZvcm1hdHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ4Omk5NS5DdXJyZW50UGFnZVF1ZXN0aW9uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTA6aTk2LlF1ZXN0aW9uUGFnZUZpbHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTUyOmk5Ny5UeXBlT2ZQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1MzppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU0Omk5OC5Ub29sdGlwTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1NTppOTkuUG9wb3Zlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTY6aTkuRHJhZ0Ryb3BNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU3OmkxMDAuRGlhbG9nTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1ODppMTAuTWFyeEVkaXRvck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTk6aTEwMS5Gb3JtZ3JvdXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYwOmkxMDIuTm9EYXRhTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MTppMTAzLkJ1aWxkTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MjppMTA0LlByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYzOmkxMDUuQXNzZXNzbWVudFByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY0Omk2MC5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjU6aTEwNi5Mb2dpY1F1ZXN0aW9uc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjY6aTEwNy5FZGl0b3JMb2FkZXJNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY3OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY4OmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTA4LnBhZ2VNb2RlID09PSAnRURJVCcpO1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19RdWVzdGlvblR5cGVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1F1ZXN0aW9uVHlwZUNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTA5LmFkZFF1ZXN0aW9uLmVtaXQoJ211bHRpcGxlLWNob2ljZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdjaGVja2JveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdzaW5nbGUtdGV4dGJveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkcm9wZG93bicpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkYXRlLXRpbWUnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTU6YW55ID0gKCg8YW55Pl9kZWNsMF8xMDkuYWRkUXVlc3Rpb24uZW1pdCgnZmlsZS11cGxvYWQnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFBhZ2VEZXRhaWxzQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRQYWdlRGV0YWlsc0NvbXBvbmVudF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdQYWdlIHRpdGxlJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ211bHRpbGluZSc7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VOYW1lO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEwLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VEZXNjcmlwdGlvbjtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMC5jYW5jZWxQYWdlRGV0YWlscygpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlTmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF85OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlRGVzY3JpcHRpb24gPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuY2FuY2VsUGFnZURldGFpbHMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTE6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuc2F2ZVBhZ2VEZXRhaWxzKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRTZXR0aW5nc0NvbXBvbmVudF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTEuc2V0dGluZ3NEYXRhLnBhbmVsVGl0bGUpKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ1tFc2NdIHRvIGNsb3NlJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ2xlZnQnO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnYmxhY2snO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMTExLnNldHRpbmdzRGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEuc2V0dGluZ3NFbGVtZW50cyk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMS5jbG9zZVBhbmVsKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRTZWdtZW50UG9wdXBDb21wb25lbnRfSG9zdF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFNlZ21lbnRQb3B1cENvbXBvbmVudF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTEyLnNlZ21lbnRFcnJvci5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5jb2xvcjtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKDxhbnk+e3N0YW5kYWxvbmU6dHJ1ZX0pO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLmNvbG9yO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEyLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbjtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5mcm9tUmFuZ2U7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8xMTIuc2VnbWVudEVycm9yLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoX2RlY2wwXzExMi5zZWdtZW50RXJyb3IubGVuZ3RoID4gMCk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IHBkXzExOmFueSA9ICgoPGFueT4oX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuY29sb3IgPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTM6YW55ID0gKCg8YW55PihfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbiA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi5mcm9tTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuZnJvbVJhbmdlID0gX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLmZyb21NYW5hZ2VyKCcrJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLnRvTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi50b01hbmFnZXIoJysnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfSG9zdF82XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfNl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gIV9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICFfZGVjbDBfMTEzLmhpZGVTcGVjaWZpY0NhdGVnb3J5O1xuICBjdXJyVmFsXzU7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50X0hvc3RfN18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50XzdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExNC5lcnJvclByZXNlbnQ7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnYnVpbGQnKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnbG9naWMnKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKChfZGVjbDBfMTE0LnNlcnZpY2UuZm9ybXNQYWdlID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiAoKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMubGVuZ3RoKSkgPCAyKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8xMTQudmlld01vZGUgPT0gJ21vdmUnKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICdidWlsZCc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gJ2xvZ2ljJztcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAnbW92ZSc7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2FueS50cmFuc2Zvcm0oKChfZGVjbDBfMTE0LnF1ZXN0aW9uID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMTE0LnF1ZXN0aW9uLmVycm9yQXJyYXkpKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgcGRfMTY6YW55ID0gKCg8YW55PihfZGVjbDBfMTE0LnZpZXdNb2RlID0gJ2J1aWxkJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT4oX2RlY2wwXzExNC52aWV3TW9kZSA9ICdsb2dpYycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTQudmlld01vZGUgPSAnbW92ZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5jb3B5UXVlc3Rpb24uZW1pdChfZGVjbDBfMTE0LnF1ZXN0aW9uSW5kZXgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMDphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5kZWxldGVRdWVzdGlvbi5lbWl0KF9kZWNsMF8xMTQucXVlc3Rpb25JbmRleCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTE0Lm9wZW5OZXh0UXVlc3Rpb24oKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTQuY2hlY2tGb3JWYWxpZGF0aW9uU3RhdHVzKCdzYXZlJykpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50X0hvc3RfOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50XzhfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ3F1ZXN0aW9uLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1tci0yJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbkNsYXNzO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE1LnNlbGVjdGVkUXVlc3Rpb25EZXRhaWxzLnF1ZXN0aW9uSWNvbjtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbk5hbWU7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMTUucXVlc3Rpb25UeXBlRHJvcGRvd247XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMTUucXVpY2tTZXR0aW5nc0xpc3Q7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMTUuZmQuZm9ybXNQYWdlLmVsZW1lbnRzW19kZWNsMF8xMTUucXVlc3Rpb25JbmRleF0uaGFzQ2hhcmFjdGVyTGVuZ3RoO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9hbnkucG9wb3ZlcigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF9Ib3N0XzlfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF85XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzExNi5lZGl0b3JNb2RlID09ICdtdWx0aWxpbmUnKSAmJiAoX2RlY2wwXzExNi5sYWJlbCA9PSB0cnVlKSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTYucGxhY2Vob2xkZXI7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMTE2LmVkaXRvck1vZGUgPT0gJ211bHRpbGluZScpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzExNi5pZCwnJyk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTYuc2hvd0VkaXRvckNvbnRyb2xzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTE2LnNob3dFZGl0b3JDb250cm9scztcbiAgY3VyclZhbF81O1xuICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uYmx1cigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF83OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uUGFzdGUoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTYuc2V0VmFsdWUoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNi5zaG93KCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19SZXNwb25zZVNlbGVjdG9yQ29tcG9uZW50X0hvc3RfMTBfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudF8xMF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExNy5yZXNwb25zZURldGFpbHM7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTcucmVzcG9uc2VEZXRhaWxzO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19Nb3ZlQ29tcG9uZW50X0hvc3RfMTFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTW92ZUNvbXBvbmVudF8xMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzExOC5vcGVuUG9ydGFsICE9PSAnUkVTUE9OU0lCSUxJVFlfQ0hFQ0tQT0lOVCcpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAncmlnaHQnO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9uO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9ucztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKCgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk/ICgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk6ICdTZWxlY3QgcXVlc3Rpb24nKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS50cmFuc2Zvcm0oX2RlY2wwXzExOC5zZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cyxfZGVjbDBfMTE4LmN1cnJlbnRQYWdlKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8xMTguZW1wdHlQYWdlID09PSB0cnVlKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT5fYW55LnBvcG92ZXIoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTE4Lm1vdmUoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0xvZ2ljQ29tcG9uZW50X0hvc3RfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9naWNDb21wb25lbnRfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xMTkucXVlc3Rpb24udmlzaWJpbGl0eUxvZ2ljLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTE5LnF1ZXN0aW9uLnZpc2liaWxpdHlMb2dpYy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfQWRkTG9naWNDb21wb25lbnRfSG9zdF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRMb2dpY0NvbXBvbmVudF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzEyMC5xdWVzdGlvbkluZGV4ICsgMSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbi5pc1JlcXVpcmVkID09PSB0cnVlKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKCgoX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLnRpdGxlKT8gKChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbiA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24udGl0bGUpOiAnUXVlc3Rpb24nKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24uaGFzQ29tbWVudHM7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9ICdsZWZ0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gJ1NlbGVjdCBhIHF1ZXN0aW9uJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gJ2JvdHRvbS1sZWZ0JztcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gJ2JsYWNrJztcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzEyMC5xdWVzdGlvbnNBcnJheVtfZGVjbDBfMTIwLnNlbGVjdGVkTG9naWNRdWVzdGlvbl0gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAucXVlc3Rpb25zQXJyYXlbX2RlY2wwXzEyMC5zZWxlY3RlZExvZ2ljUXVlc3Rpb25dLnRpdGxlKSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfYW55LnRyYW5zZm9ybShfZGVjbDBfMTIwLnF1ZXN0aW9uc0FycmF5LF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLm5hbWUpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoKF9kZWNsMF8xMjAub3BlcmF0b3JNYXAgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAub3BlcmF0b3JNYXAubGVuZ3RoKSA+IDApO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoX2RlY2wwXzEyMC5sb2dpYy5xdWVzdGlvbk5hbWUgIT0gJycpICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICE9ICdhbnN3ZXJlZCcpKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzEyMC5zaG93RXJyb3IuaXNWaXNpYmxlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMC5jbG9zZVBvcHVwKCdDTE9TRScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTIwLnJlc2V0TG9naWMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTc6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjAuYWRkTG9naWMoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1Rvb2xraXRDb21wb25lbnRfSG9zdF8xNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Ub29sa2l0Q29tcG9uZW50XzE0XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9ICFfZGVjbDBfMTIxLnNob3dDb2xsYXBzZTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmNsaWNrQ29sbGFwc2UoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjEuYWRkUXVlc3Rpb24uZW1pdCgnbXVsdGlwbGUtY2hvaWNlJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2NoZWNrYm94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIyOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ3NpbmdsZS10ZXh0Ym94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIzOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2Ryb3Bkb3duJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI0OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2RhdGUtdGltZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNTphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMS5hZGRRdWVzdGlvbi5lbWl0KCdmaWxlLXVwbG9hZCcpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ0Fub255bW91c0NvbXBvbmVudF9Ib3N0XzE1XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdBbm9ueW1vdXNDb21wb25lbnRfMTVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ1Jlc3BvbnNlU2VnbWVudENvbXBvbmVudF9Ib3N0XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdSZXNwb25zZVNlZ21lbnRDb21wb25lbnRfMTZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfUGFnZUhlYWRlckNvbXBvbmVudF9Ib3N0XzE3XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1BhZ2VIZWFkZXJDb21wb25lbnRfMTdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzEyNC5wYWdlTmFtZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNC5wYWdlRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEyNC5lZGl0LmVtaXQoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF9Ib3N0XzE4XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF8xOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVJbWFnZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ1dlbGNvbWUgSGVhZGluZyc7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICdtdWx0aWxpbmUnO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLndlbGNvbWVUZXh0O1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8xMjUuZW50aXR5RGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVEZXNjcmlwdGlvbik7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lSW1hZ2U7XG4gIGN1cnJWYWxfODtcbiAgX2RlY2wwXzEyNS5kZWxldGVRdWVzdGlvbi5lbWl0KCk7XG4gIGNvbnN0IHBkXzk6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjUuZGVsZXRlV2VsY29tZSgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMDphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMjUuZW50aXR5RGF0YS53ZWxjb21lVGV4dCA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lRGVzY3JpcHRpb24gPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTI6YW55ID0gKCg8YW55PihfZGVjbDBfMTI1LmVudGl0eURhdGEuaGFzV2VsY29tZUltYWdlID0gX2FueSkpICE9PSBmYWxzZSk7XG59XG4iXX0=
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1lZGl0b3IvY3JlYXRlLWFzc2Vzc21lbnQubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL2NyZWF0ZS1hc3Nlc3NtZW50Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi4vLi4vdWkta2l0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1ldmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vLi4vdWkta2l0L3BvcG92ZXIvcG9wb3Zlci1sb25ncHJlc3MuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAndmNvbXBseS1lZGl0b3InO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1jaGVja2JveC9jcy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1yYWRpby9jcy1yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEzIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9jcy1zd2l0Y2gvY3Mtc3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTQgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXJhZGlvLWdyb3VwL2NzLXJhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vLi4vZm9ybWdyb3VwL2NzLXNlbGVjdC9jcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNiBmcm9tICcuLi8uLi9mb3JtZ3JvdXAvY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS9jcy1jaGVja2JveC1pbmRldGVybWluYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTcgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTggZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL211bHRpcGxlLWNob2ljZS9tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvaW1hZ2UtY2hvaWNlL2ltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIyIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tYXRyaXgtZHJvcGRvd24vbWF0cml4LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjMgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjQgZnJvbSAnLi9jb21wb25lbnRzL2J1aWxkL21hdHJpeC1yYXRpbmctc2NhbGUvbWF0cml4LXJhdGluZy1zY2FsZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI1IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9yYW5raW5nL3JhbmtpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNiBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI3IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9tdWx0aXBsZS10ZXh0Ym94L211bHRpcGxlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvZGF0ZS10aW1lL2RhdGUtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI5IGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzMCBmcm9tICcuL2NvbXBvbmVudHMvYnVpbGQvdGhhbmsteW91L3RoYW5rLXlvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC93ZWlnaHRhZ2Utc2VsZWN0b3Ivd2VpZ2h0YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzIgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy13cmFwcGVyL3ByZXZpZXctd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTMzIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlL3ByZXZpZXctbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzQgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1jaGVja2JveC9wcmV2aWV3LWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1pbWFnZS1jaG9pY2UvcHJldmlldy1pbWFnZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXN0YXItcmF0aW5nL3ByZXZpZXctc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzNyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXNpbmdsZS10ZXh0Ym94L3ByZXZpZXctc2luZ2xlLXRleHRib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWNvbW1lbnQtYm94L3ByZXZpZXctY29tbWVudC1ib3guY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkzOSBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi9wcmV2aWV3LW1hdHJpeC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQwIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctZHJvcGRvd24vcHJldmlldy1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTQxIGZyb20gJy4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXctbWF0cml4LXJhdGluZy1zY2FsZS9wcmV2aWV3LW1hdHJpeC1yYXRpbmctc2NhbGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0MiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LXJhbmtpbmcvcHJldmlldy1yYW5raW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDMgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1zbGlkZXIvcHJldmlldy1zbGlkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LW11bHRpcGxlLXRleHRib3gvcHJldmlldy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDUgZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy1kYXRlLXRpbWUvcHJldmlldy1kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3LWZpbGUtdXBsb2FkL3ByZXZpZXctZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0NyBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0OCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy90aGFuay15b3UvdGhhbmsteW91LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNDkgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2NoZWNrYm94LXF1ZXN0aW9uL2NoZWNrYm94LXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNTAgZnJvbSAnLi4vYXNzZXNzbWVudC1wcmV2aWV3L2RhdGUtdGltZS9kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1MSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvZGV2aWNlL2RldmljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUyIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUzIGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NCBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcHJldmlldy1jb250YWluZXIvcHJldmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NSBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcXVpY2stc2V0dGluZ3MvcXVpY2stc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NiBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvcmFkaW8tcXVlc3Rpb24vcmFkaW8tcXVlc3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk1NyBmcm9tICcuLi9hc3Nlc3NtZW50LXByZXZpZXcvc2VsZWN0LXF1ZXN0aW9uL3NlbGVjdC1xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU4IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9zaW5nbGUtdGV4dGJveC9zaW5nbGUtdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTU5IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2MCBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBpNjEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1tdWx0aXBsZS1jaG9pY2UvbG9naWMtbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjIgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jaGVja2JveC9sb2dpYy1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTYzIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtaW1hZ2UtY2hvaWNlL2xvZ2ljLWltYWdlLWNob2ljZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc3Rhci1yYXRpbmcvbG9naWMtc3Rhci1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2NSBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXNpbmdsZS10ZXh0Ym94L2xvZ2ljLXNpbmdsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNjYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1jb21tZW50LWJveC9sb2dpYy1jb21tZW50LWJveC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY3IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtZHJvcGRvd24vbG9naWMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk2OCBmcm9tICcuL2NvbXBvbmVudHMvbG9naWMtcXVlc3Rpb25zL2xvZ2ljLXJhbmtpbmcvbG9naWMtcmFua2luZy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTY5IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtc2xpZGVyL2xvZ2ljLXNsaWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTcwIGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy1xdWVzdGlvbnMvbG9naWMtbXVsdGlwbGUtdGV4dGJveC9sb2dpYy1tdWx0aXBsZS10ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzEgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1kYXRlLXRpbWUvbG9naWMtZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzIgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci9lZGl0b3ItbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzMgZnJvbSAnLi9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzQgZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXR5cGUvcXVlc3Rpb24tdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtcGFnZS1kZXRhaWxzL2FkZC1wYWdlLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk3NiBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXNzbWVudC1zZXR0aW5ncy9hc3Nlc3NtZW50LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzcgZnJvbSAnLi9jb21wb25lbnRzL2FkZC1zZWdtZW50LXBvcHVwL2FkZC1zZWdtZW50LXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNzggZnJvbSAnLi9jb21wb25lbnRzL2FkZC1yZXNwb25zZS1zZXQtcG9wdXAvYWRkLXJlc3BvbnNlLXNldC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTc5IGZyb20gJy4vY29tcG9uZW50cy9lZGl0b3Itd3JhcHBlci9lZGl0b3Itd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgwIGZyb20gJy4vY29tcG9uZW50cy9xdWljay1zZXR0aW5ncy9xdWljay1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTgxIGZyb20gJy4vY29tcG9uZW50cy9zaW5nbGUtbGluZS1lZGl0b3Ivc2luZ2xlLWxpbmUtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODIgZnJvbSAnLi9jb21wb25lbnRzL3Jlc3BvbnNlLXNlbGVjdG9yL3Jlc3BvbnNlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODMgZnJvbSAnLi9jb21wb25lbnRzL21vdmUvbW92ZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg0IGZyb20gJy4vY29tcG9uZW50cy9sb2dpYy9sb2dpYy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg1IGZyb20gJy4vY29tcG9uZW50cy9hZGQtbG9naWMvYWRkLWxvZ2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODYgZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xraXQvdG9vbGtpdC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg3IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLWFub255bW91cy9zZXR0aW5nLWFub255bW91cy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTg4IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5nLXJlc3BvbnNlLXNlZ21lbnQvc2V0dGluZy1yZXNwb25zZS1zZWdtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpODkgZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpOTAgZnJvbSAnLi9jb21wb25lbnRzL3dlbGNvbWUtdGhhbmt5b3Uvd2VsY29tZS10aGFua3lvdS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTkxIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9lcnJvci1tZXNzYWdlLnBpcGUnO1xuaW1wb3J0ICogYXMgaTkyIGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9xdWVzdGlvbi1maWx0ZXIucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTMgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhcnNlci5waXBlJztcbmltcG9ydCAqIGFzIGk5NCBmcm9tICcuL2NvbXBvbmVudHMvcGlwZXMvZm9ybWF0dGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk1IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy9jdXJyZW50LXBhZ2UtcXVlc3Rpb24ucGlwZSc7XG5pbXBvcnQgKiBhcyBpOTYgZnJvbSAnLi9jb21wb25lbnRzL3BpcGVzL3F1ZXN0aW9uLXBhZ2UtZmlsdGVyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk3IGZyb20gJy4vY29tcG9uZW50cy9waXBlcy90eXBlLW9mLnBpcGUnO1xuaW1wb3J0ICogYXMgaTk4IGZyb20gJy4uLy4uL3VpLWtpdC90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGk5OSBmcm9tICcuLi8uLi91aS1raXQvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAwIGZyb20gJy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAxIGZyb20gJy4uLy4uL2Zvcm1ncm91cC9mb3JtZ3JvdXAubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDIgZnJvbSAnLi4vbm8tZGF0YS9uby1kYXRhLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTAzIGZyb20gJy4vY29tcG9uZW50cy9idWlsZC9idWlsZC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTEwNCBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldy9wcmV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTA1IGZyb20gJy4uL2Fzc2Vzc21lbnQtcHJldmlldy9hc3Nlc3NtZW50LXByZXZpZXcubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDYgZnJvbSAnLi9jb21wb25lbnRzL2xvZ2ljLXF1ZXN0aW9ucy9sb2dpYy1xdWVzdGlvbnMubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxMDcgZnJvbSAnLi4vLi4vdWkta2l0L2VkaXRvci1sb2FkZXIvZWRpdG9yLWxvYWRlci5tb2R1bGUnO1xuZXhwb3J0IGNvbnN0IENyZWF0ZUFzc2Vzc21lbnRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLkNyZWF0ZUFzc2Vzc21lbnRNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5Ub29sVGlwRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlBvcG92ZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuUG9wb3ZlckRpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5Qb3BvdmVyRXZlbnREaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuUG9wb3ZlckxvbmdwcmVzc0RpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppOC5DZGtTY3JvbGxhYmxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5LkNka0Ryb3BMaXN0PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTkuQ2RrRHJvcExpc3RHcm91cDxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5Omk5LkNka0RyYWc8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppOS5DZGtEcmFnSGFuZGxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmk5LkNka0RyYWdQcmV2aWV3PGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTkuQ2RrRHJhZ1BsYWNlaG9sZGVyPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTEwLsm1YSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMTEuQ3NDaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMTIuQ3NSYWRpb0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMTMuQ3NTd2l0Y2hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTE0LkNzUmFkaW9Hcm91cENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yODppMTUuQ3NTZWxlY3RDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTE2LkNzQ2hlY2tib3hJbmRldGVybWluYXRlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmkxNy5Ob0RhdGFDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzE6aTE4Lk11bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxOS5DaGVja2JveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppMjAuSW1hZ2VDaG9pY2VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTIxLlN0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzU6aTIyLk1hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2OmkyMy5Ecm9wZG93bkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppMjQuTWF0cml4UmF0aW5nU2NhbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTI1LlJhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTI2LlNsaWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMjcuTXVsdGlwbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQxOmkyOC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MjppMjkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MzppMzAuVGhhbmtZb3VDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTMxLldlaWdodGFnZVNlbGVjdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ1OmkzMi5QcmV2aWV3V3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMzMuUHJldmlld011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ3OmkzNC5QcmV2aWV3Q2hlY2tib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTM1LlByZXZpZXdJbWFnZUNob2ljZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OTppMzYuUHJldmlld1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTA6aTM3LlByZXZpZXdTaW5nbGVUZXh0Ym94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUxOmkzOC5QcmV2aWV3Q29tbWVudEJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMzkuUHJldmlld01hdHJpeERyb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmk0MC5QcmV2aWV3RHJvcGRvd25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTQxLlByZXZpZXdNYXRyaXhSYXRpbmdTY2FsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppNDIuUHJldmlld1JhbmtpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTQzLlByZXZpZXdTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTQ0LlByZXZpZXdNdWx0aXBsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTQ1LlByZXZpZXdEYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppNDYuUHJldmlld0ZpbGVVcGxvYWRDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTQ3LldlbGNvbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjE6aTQ4LlRoYW5rWW91Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYyOmk0OS5DaGVja2JveFF1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYzOmk1MC5EYXRlVGltZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NDppNTEuRGV2aWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY1Omk1Mi5GaWxlVXBsb2FkQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY2Omk1My5QcmV2aWV3Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY3Omk1NC5QcmV2aWV3Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY4Omk1NS5RdWlja1NldHRpbmdzQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY5Omk1Ni5SYWRpb1F1ZXN0aW9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcwOmk1Ny5TZWxlY3RRdWVzdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MTppNTguU2luZ2xlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MjppNTkuV2VsY29tZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MzppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JiID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc0Omk2MC5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NTppNjAuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX2JhID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc2Omk2MC5EZWZhdWx0VmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NzppNjAuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83ODppNjAuUmFuZ2VWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc5Omk2MC5DaGVja2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgwOmk2MC5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MTppNjAuU2VsZWN0TXVsdGlwbGVDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MjppNjAuUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MzppNjAuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg0Omk2MC5OZ0NvbnRyb2xTdGF0dXNHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NTppNjAuUmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTYwLk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NzppNjAuTWF4TGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg4Omk2MC5QYXR0ZXJuVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg5Omk2MC5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkwOmk2MC5FbWFpbFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85MTppNjAuTWluVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkyOmk2MC5NYXhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTM6aTYwLk5nTW9kZWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTQ6aTYwLk5nTW9kZWxHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85NTppNjAuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk2Omk2MS5Mb2dpY011bHRpcGxlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk3Omk2Mi5Mb2dpY0NoZWNrYm94Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk4Omk2My5Mb2dpY0ltYWdlQ2hvaWNlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk5Omk2NC5Mb2dpY1N0YXJSYXRpbmdDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAwOmk2NS5Mb2dpY1NpbmdsZVRleHRib3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAxOmk2Ni5Mb2dpY0NvbW1lbnRCb3hDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTAyOmk2Ny5Mb2dpY0Ryb3Bkb3duQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwMzppNjguTG9naWNSYW5raW5nQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwNDppNjkuTG9naWNTbGlkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA1Omk3MC5Mb2dpY011bHRpcGxlVGV4dGJveENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDY6aTcxLkxvZ2ljRGF0ZVRpbWVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA3Omk3Mi5FZGl0b3JMb2FkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA4Omk3My5DcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOTppNzQuUXVlc3Rpb25UeXBlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExMDppNzUuQWRkUGFnZURldGFpbHNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTExOmk3Ni5Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEyOmk3Ny5BZGRTZWdtZW50UG9wdXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTEzOmk3OC5BZGRSZXNwb25zZVNldFBvcHVwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNDppNzkuRWRpdG9yV3JhcHBlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTU6aTgwLlF1aWNrU2V0dGluZ3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE2Omk4MS5TaW5nbGVMaW5lRWRpdG9yQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExNzppODIuUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTg6aTgzLk1vdmVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE5Omk4NC5Mb2dpY0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjA6aTg1LkFkZExvZ2ljQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyMTppODYuVG9vbGtpdENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjI6aTg3LlNldHRpbmdBbm9ueW1vdXNDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTIzOmk4OC5TZXR0aW5nUmVzcG9uc2VTZWdtZW50Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNDppODkuUGFnZUhlYWRlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjU6aTkwLldlbGNvbWVUaGFua3lvdUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjY6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyNzppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyODppMi5Mb3dlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzA6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzMTppMi5EZWNpbWFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzI6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTMzOmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM0OmkyLkN1cnJlbmN5UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzU6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM2OmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzNzppMi5JMThuU2VsZWN0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzg6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0MDppOTEuRXJyb3JNZXNzYWdlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDI6aTkyLlF1ZXN0aW9uRmlsdGVyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDQ6aTkzLlF1ZXN0aW9uUGFyc2VyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDY6aTk0LkZvcm1hdHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ4Omk5NS5DdXJyZW50UGFnZVF1ZXN0aW9uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTA6aTk2LlF1ZXN0aW9uUGFnZUZpbHRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTUyOmk5Ny5UeXBlT2ZQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1MzppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU0Omk5OC5Ub29sdGlwTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1NTppOTkuUG9wb3Zlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTY6aTkuRHJhZ0Ryb3BNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU3OmkxMDAuRGlhbG9nTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1ODppMTAuTWFyeEVkaXRvck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTk6aTEwMS5Gb3JtZ3JvdXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYwOmkxMDIuTm9EYXRhTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MTppMTAzLkJ1aWxkTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2MjppMTA0LlByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTYzOmkxMDUuQXNzZXNzbWVudFByZXZpZXdNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY0Omk2MC5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjU6aTEwNi5Mb2dpY1F1ZXN0aW9uc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjY6aTEwNy5FZGl0b3JMb2FkZXJNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY3OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY4OmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTA4LnBhZ2VNb2RlID09PSAnRURJVCcpO1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19RdWVzdGlvblR5cGVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1F1ZXN0aW9uVHlwZUNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTA5LmFkZFF1ZXN0aW9uLmVtaXQoJ211bHRpcGxlLWNob2ljZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdjaGVja2JveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdzaW5nbGUtdGV4dGJveCcpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkcm9wZG93bicpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEwOS5hZGRRdWVzdGlvbi5lbWl0KCdkYXRlLXRpbWUnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTU6YW55ID0gKCg8YW55Pl9kZWNsMF8xMDkuYWRkUXVlc3Rpb24uZW1pdCgnZmlsZS11cGxvYWQnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFBhZ2VEZXRhaWxzQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRQYWdlRGV0YWlsc0NvbXBvbmVudF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdQYWdlIHRpdGxlJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ211bHRpbGluZSc7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VOYW1lO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEwLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEwLnBhZ2VEZXRhaWxzLnBhZ2VEZXNjcmlwdGlvbjtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMC5jYW5jZWxQYWdlRGV0YWlscygpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlTmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF85OmFueSA9ICgoPGFueT4oX2RlY2wwXzExMC5wYWdlRGV0YWlscy5wYWdlRGVzY3JpcHRpb24gPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuY2FuY2VsUGFnZURldGFpbHMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTE6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTAuc2F2ZVBhZ2VEZXRhaWxzKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19Bc3Nlc3NtZW50U2V0dGluZ3NDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0Fzc2Vzc21lbnRTZXR0aW5nc0NvbXBvbmVudF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTEuc2V0dGluZ3NEYXRhLnBhbmVsVGl0bGUpKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ1tFc2NdIHRvIGNsb3NlJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ2xlZnQnO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnYmxhY2snO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMTExLnNldHRpbmdzRGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExMS5zZXR0aW5nc0RhdGEuc2V0dGluZ3NFbGVtZW50cyk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzExMS5jbG9zZVBhbmVsKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRTZWdtZW50UG9wdXBDb21wb25lbnRfSG9zdF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFNlZ21lbnRQb3B1cENvbXBvbmVudF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTEyLnNlZ21lbnRFcnJvci5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5jb2xvcjtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKDxhbnk+e3N0YW5kYWxvbmU6dHJ1ZX0pO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLmNvbG9yO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEyLmRlc2NyaXB0aW9uO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbjtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzExMi5jcml0ZXJpYS5mcm9tUmFuZ2U7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8xMTIuc2VnbWVudEVycm9yLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoX2RlY2wwXzExMi5zZWdtZW50RXJyb3IubGVuZ3RoID4gMCk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IHBkXzExOmFueSA9ICgoPGFueT4oX2RlY2wwXzExMi5jcml0ZXJpYS5zZWdtZW50TmFtZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuY29sb3IgPSBfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTM6YW55ID0gKCg8YW55PihfZGVjbDBfMTEyLmNyaXRlcmlhLnNlZ21lbnREZXNjcmlwdGlvbiA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi5mcm9tTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEuZnJvbVJhbmdlID0gX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLmZyb21NYW5hZ2VyKCcrJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT5fZGVjbDBfMTEyLnRvTWFuYWdlcignLScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTIuY3JpdGVyaWEudG9SYW5nZSA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExMi50b01hbmFnZXIoJysnKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfSG9zdF82XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FkZFJlc3BvbnNlU2V0UG9wdXBDb21wb25lbnRfNl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExMy5oaWRlU3BlY2lmaWNDYXRlZ29yeTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gIV9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTMuaGlkZVNwZWNpZmljQ2F0ZWdvcnk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICFfZGVjbDBfMTEzLmhpZGVTcGVjaWZpY0NhdGVnb3J5O1xuICBjdXJyVmFsXzU7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50X0hvc3RfN18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19FZGl0b3JXcmFwcGVyQ29tcG9uZW50XzdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzExNC5lcnJvclByZXNlbnQ7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnYnVpbGQnKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoX2RlY2wwXzExNC52aWV3TW9kZSA9PSAnbG9naWMnKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKF9hbnkudHJhbnNmb3JtKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMsX2RlY2wwXzExNC5zZXJ2aWNlLmN1cnJlbnRQYWdlTnVtYmVyKSA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKChfZGVjbDBfMTE0LnNlcnZpY2UuZm9ybXNQYWdlID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiAoKF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMTQuc2VydmljZS5mb3Jtc1BhZ2UuZWxlbWVudHMubGVuZ3RoKSkgPCAyKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8xMTQudmlld01vZGUgPT0gJ21vdmUnKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzExNC52aWV3TW9kZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICdidWlsZCc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gJ2xvZ2ljJztcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAnbW92ZSc7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2FueS50cmFuc2Zvcm0oKChfZGVjbDBfMTE0LnF1ZXN0aW9uID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMTE0LnF1ZXN0aW9uLmVycm9yQXJyYXkpKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMTE0Lm5leHRRdWVzdGlvbjtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgcGRfMTY6YW55ID0gKCg8YW55PihfZGVjbDBfMTE0LnZpZXdNb2RlID0gJ2J1aWxkJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT4oX2RlY2wwXzExNC52aWV3TW9kZSA9ICdsb2dpYycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMTQudmlld01vZGUgPSAnbW92ZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5jb3B5UXVlc3Rpb24uZW1pdChfZGVjbDBfMTE0LnF1ZXN0aW9uSW5kZXgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMDphbnkgPSAoKDxhbnk+X2RlY2wwXzExNC5kZWxldGVRdWVzdGlvbi5lbWl0KF9kZWNsMF8xMTQucXVlc3Rpb25JbmRleCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTE0Lm9wZW5OZXh0UXVlc3Rpb24oKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTQuY2hlY2tGb3JWYWxpZGF0aW9uU3RhdHVzKCdzYXZlJykpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50X0hvc3RfOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19RdWlja1NldHRpbmdzQ29tcG9uZW50XzhfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ3F1ZXN0aW9uLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1tci0yJztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbkNsYXNzO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE1LnNlbGVjdGVkUXVlc3Rpb25EZXRhaWxzLnF1ZXN0aW9uSWNvbjtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzExNS5zZWxlY3RlZFF1ZXN0aW9uRGV0YWlscy5xdWVzdGlvbk5hbWU7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMTUucXVlc3Rpb25UeXBlRHJvcGRvd247XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMTUucXVpY2tTZXR0aW5nc0xpc3Q7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMTUuZmQuZm9ybXNQYWdlLmVsZW1lbnRzW19kZWNsMF8xMTUucXVlc3Rpb25JbmRleF0uaGFzQ2hhcmFjdGVyTGVuZ3RoO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9hbnkucG9wb3ZlcigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF9Ib3N0XzlfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2luZ2xlTGluZUVkaXRvckNvbXBvbmVudF85XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzExNi5lZGl0b3JNb2RlID09ICdtdWx0aWxpbmUnKSAmJiAoX2RlY2wwXzExNi5sYWJlbCA9PSB0cnVlKSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTYucGxhY2Vob2xkZXI7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMTE2LmVkaXRvck1vZGUgPT0gJ211bHRpbGluZScpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzExNi5pZCwnJyk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMTYuc2hvd0VkaXRvckNvbnRyb2xzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTE2LnNob3dFZGl0b3JDb250cm9scztcbiAgY3VyclZhbF81O1xuICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uYmx1cigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF83OmFueSA9ICgoPGFueT5fZGVjbDBfMTE2Lm9uUGFzdGUoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzg6YW55ID0gKCg8YW55Pl9kZWNsMF8xMTYuc2V0VmFsdWUoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzExNi5zaG93KCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19SZXNwb25zZVNlbGVjdG9yQ29tcG9uZW50X0hvc3RfMTBfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfUmVzcG9uc2VTZWxlY3RvckNvbXBvbmVudF8xMF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhX2RlY2wwXzExNy5yZXNwb25zZURldGFpbHM7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMTcucmVzcG9uc2VEZXRhaWxzO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19Nb3ZlQ29tcG9uZW50X0hvc3RfMTFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTW92ZUNvbXBvbmVudF8xMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzExOC5vcGVuUG9ydGFsICE9PSAnUkVTUE9OU0lCSUxJVFlfQ0hFQ0tQT0lOVCcpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAncmlnaHQnO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9uO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTE4LnBvc2l0aW9ucztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ3JpZ2h0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKCgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk/ICgoX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbCA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzExOC5xdWVzdGlvbkRldGFpbC50aXRsZSk6ICdTZWxlY3QgcXVlc3Rpb24nKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS50cmFuc2Zvcm0oX2RlY2wwXzExOC5zZXJ2aWNlLmZvcm1zUGFnZS5lbGVtZW50cyxfZGVjbDBfMTE4LmN1cnJlbnRQYWdlKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8xMTguZW1wdHlQYWdlID09PSB0cnVlKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBwZF84OmFueSA9ICgoPGFueT5fYW55LnBvcG92ZXIoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTE4Lm1vdmUoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0xvZ2ljQ29tcG9uZW50X0hvc3RfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfTG9naWNDb21wb25lbnRfMTJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xMTkucXVlc3Rpb24udmlzaWJpbGl0eUxvZ2ljLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTE5LnF1ZXN0aW9uLnZpc2liaWxpdHlMb2dpYy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfQWRkTG9naWNDb21wb25lbnRfSG9zdF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BZGRMb2dpY0NvbXBvbmVudF8xM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzEyMC5xdWVzdGlvbkluZGV4ICsgMSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbi5pc1JlcXVpcmVkID09PSB0cnVlKTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKCgoX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLnRpdGxlKT8gKChfZGVjbDBfMTIwLmN1cnJlbnRRdWVzdGlvbiA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24udGl0bGUpOiAnUXVlc3Rpb24nKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzEyMC5jdXJyZW50UXVlc3Rpb24uaGFzQ29tbWVudHM7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9ICdsZWZ0JztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gJ1NlbGVjdCBhIHF1ZXN0aW9uJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gJ2JvdHRvbS1sZWZ0JztcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gJ2JsYWNrJztcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9hbnkudHJhbnNmb3JtKCgoX2RlY2wwXzEyMC5xdWVzdGlvbnNBcnJheVtfZGVjbDBfMTIwLnNlbGVjdGVkTG9naWNRdWVzdGlvbl0gPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAucXVlc3Rpb25zQXJyYXlbX2RlY2wwXzEyMC5zZWxlY3RlZExvZ2ljUXVlc3Rpb25dLnRpdGxlKSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfYW55LnRyYW5zZm9ybShfZGVjbDBfMTIwLnF1ZXN0aW9uc0FycmF5LF9kZWNsMF8xMjAuY3VycmVudFF1ZXN0aW9uLm5hbWUpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoKF9kZWNsMF8xMjAub3BlcmF0b3JNYXAgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8xMjAub3BlcmF0b3JNYXAubGVuZ3RoKSA+IDApO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoX2RlY2wwXzEyMC5sb2dpYy5xdWVzdGlvbk5hbWUgIT0gJycpICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICYmIChfZGVjbDBfMTIwLmxvZ2ljLm9wZXJhdG9yICE9ICdhbnN3ZXJlZCcpKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzEyMC5zaG93RXJyb3IuaXNWaXNpYmxlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMC5jbG9zZVBvcHVwKCdDTE9TRScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xNTphbnkgPSAoKDxhbnk+X2FueS5wb3BvdmVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE2OmFueSA9ICgoPGFueT5fZGVjbDBfMTIwLnJlc2V0TG9naWMoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTc6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjAuYWRkTG9naWMoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1Rvb2xraXRDb21wb25lbnRfSG9zdF8xNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19Ub29sa2l0Q29tcG9uZW50XzE0XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gZmFsc2U7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gIV9kZWNsMF8xMjEuc2hvd0NvbGxhcHNlO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IGZhbHNlO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9ICFfZGVjbDBfMTIxLnNob3dDb2xsYXBzZTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAhX2RlY2wwXzEyMS5zaG93Q29sbGFwc2U7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmNsaWNrQ29sbGFwc2UoKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMjEuYWRkUXVlc3Rpb24uZW1pdCgnbXVsdGlwbGUtY2hvaWNlJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2NoZWNrYm94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIyOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ3NpbmdsZS10ZXh0Ym94JykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIzOmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2Ryb3Bkb3duJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI0OmFueSA9ICgoPGFueT5fZGVjbDBfMTIxLmFkZFF1ZXN0aW9uLmVtaXQoJ2RhdGUtdGltZScpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yNTphbnkgPSAoKDxhbnk+X2RlY2wwXzEyMS5hZGRRdWVzdGlvbi5lbWl0KCdmaWxlLXVwbG9hZCcpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ0Fub255bW91c0NvbXBvbmVudF9Ib3N0XzE1XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdBbm9ueW1vdXNDb21wb25lbnRfMTVfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2V0dGluZ1Jlc3BvbnNlU2VnbWVudENvbXBvbmVudF9Ib3N0XzE2XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NldHRpbmdSZXNwb25zZVNlZ21lbnRDb21wb25lbnRfMTZfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gdHJ1ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfUGFnZUhlYWRlckNvbXBvbmVudF9Ib3N0XzE3XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1BhZ2VIZWFkZXJDb21wb25lbnRfMTdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzEyNC5wYWdlTmFtZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNC5wYWdlRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzEyNC5lZGl0LmVtaXQoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF9Ib3N0XzE4XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1dlbGNvbWVUaGFua3lvdUNvbXBvbmVudF8xOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVJbWFnZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ1dlbGNvbWUgSGVhZGluZyc7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICdtdWx0aWxpbmUnO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBmYWxzZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEyNS5lbnRpdHlEYXRhLndlbGNvbWVUZXh0O1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8xMjUuZW50aXR5RGF0YSA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVEZXNjcmlwdGlvbik7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lRGVzY3JpcHRpb247XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lSW1hZ2U7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzEyNS5kZWxldGVXZWxjb21lKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT4oX2RlY2wwXzEyNS5lbnRpdHlEYXRhLndlbGNvbWVUZXh0ID0gX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzExOmFueSA9ICgoPGFueT4oX2RlY2wwXzEyNS5lbnRpdHlEYXRhLmhhc1dlbGNvbWVEZXNjcmlwdGlvbiA9IF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+KF9kZWNsMF8xMjUuZW50aXR5RGF0YS5oYXNXZWxjb21lSW1hZ2UgPSBfYW55KSkgIT09IGZhbHNlKTtcbn1cbiJdfQ==
|
|
@@ -52,11 +52,12 @@ export class ValidatorService {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
validateMultiValuedQuestion(question) {
|
|
55
|
+
var _a, _b, _c, _d, _e;
|
|
55
56
|
// question.errorArray = {};
|
|
56
57
|
delete question.errorArray;
|
|
57
58
|
const validStatus = [];
|
|
58
59
|
const ERROR_ARRAY = {};
|
|
59
|
-
if (this.extract(question.title).length === 0) {
|
|
60
|
+
if (this.extract(question.title).length === 0 || ((_a = question === null || question === void 0 ? void 0 : question.title) === null || _a === void 0 ? void 0 : _a.trim().length) === 0) {
|
|
60
61
|
ERROR_ARRAY.questionMissing = { message: 'Please enter the question.' };
|
|
61
62
|
validStatus.push(false);
|
|
62
63
|
}
|
|
@@ -67,14 +68,14 @@ export class ValidatorService {
|
|
|
67
68
|
question.hasComments = false;
|
|
68
69
|
}
|
|
69
70
|
if (question.choices.length >= 2) {
|
|
70
|
-
if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 ||
|
|
71
|
-
this.extract(question.choices[1].title).length === 0)) {
|
|
71
|
+
if (question.choices.length === 2 && (this.extract(question.choices[0].title).length === 0 || ((_c = (_b = this.extract(question.choices[0].title)) === null || _b === void 0 ? void 0 : _b.trim()) === null || _c === void 0 ? void 0 : _c.length) === 0 ||
|
|
72
|
+
this.extract(question.choices[1].title).length === 0 || ((_e = (_d = this.extract(question.choices[1].title)) === null || _d === void 0 ? void 0 : _d.trim()) === null || _e === void 0 ? void 0 : _e.length) === 0)) {
|
|
72
73
|
ERROR_ARRAY.twoChoice = { message: 'Please add at least two answer choices.' };
|
|
73
74
|
validStatus.push(false);
|
|
74
75
|
}
|
|
75
76
|
else {
|
|
76
77
|
question.choices =
|
|
77
|
-
question.choices.filter((choice) => this.extract(choice.title).length !== 0);
|
|
78
|
+
question.choices.filter((choice) => { var _a, _b; return (((_b = (_a = this.extract(choice.title)) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) !== 0); });
|
|
78
79
|
if (question.choices.length === 0) {
|
|
79
80
|
question.choices.push({ title: '', value: 1, isSelected: false, required: 0, hasHelpingLabel: false, helpingLabel: '' });
|
|
80
81
|
}
|
|
@@ -100,10 +101,11 @@ export class ValidatorService {
|
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
validateSingleValued(question) {
|
|
104
|
+
var _a, _b;
|
|
103
105
|
delete question.errorArray;
|
|
104
106
|
const validStatus = [];
|
|
105
107
|
const ERROR_ARRAY = {};
|
|
106
|
-
if (this.extract(question.title).length === 0) {
|
|
108
|
+
if (this.extract(question.title).length === 0 || ((_b = (_a = this.extract(question.title)) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
107
109
|
ERROR_ARRAY.questionMissing = { message: 'Please enter the question.' };
|
|
108
110
|
validStatus.push(false);
|
|
109
111
|
}
|
|
@@ -131,10 +133,11 @@ export class ValidatorService {
|
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
135
|
validateDateTime(question) {
|
|
136
|
+
var _a, _b;
|
|
134
137
|
delete question.errorArray;
|
|
135
138
|
const validStatus = [];
|
|
136
139
|
const ERROR_ARRAY = {};
|
|
137
|
-
if (this.extract(question.title).length === 0) {
|
|
140
|
+
if (this.extract(question.title).length === 0 || ((_b = (_a = this.extract(question.title)) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
138
141
|
ERROR_ARRAY.questionMissing = { message: 'Please enter the question.' };
|
|
139
142
|
validStatus.push(false);
|
|
140
143
|
}
|
|
@@ -540,4 +543,4 @@ ValidatorService.decorators = [
|
|
|
540
543
|
},] }
|
|
541
544
|
];
|
|
542
545
|
ValidatorService.ctorParameters = () => [];
|
|
543
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL3NlcnZpY2VzL3ZhbGlkYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7O0FBUXpDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0I7UUFHTyx1QkFBa0IsR0FBUSxFQUFFLENBQUM7SUFEcEMsQ0FBQztJQUlELFFBQVEsQ0FBQyxRQUFrQjtRQUN6QixRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDckIsS0FBSyxVQUFXLENBQUMsQ0FBQztnQkFDaEIsT0FBUSxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEQ7WUFDRCxLQUFLLFVBQVcsQ0FBQyxDQUFDO2dCQUNoQixPQUFRLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNwRDtZQUNELEtBQUssaUJBQWtCLENBQUMsQ0FBQztnQkFDdkIsT0FBUSxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEQ7WUFDRCxLQUFLLFNBQVUsQ0FBQyxDQUFDO2dCQUNmLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsS0FBSyxhQUFhLENBQUMsQ0FBQztnQkFDbEIsT0FBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0M7WUFDRCxLQUFLLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3ZCLE9BQVEsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hEO1lBQ0QsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNyQixPQUFRLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMzQztZQUNELEtBQUssYUFBYSxDQUFDLENBQUM7Z0JBQ2xCLE9BQVEsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzNDO1lBQ0wsS0FBSyxXQUFXLENBQUMsQ0FBQztnQkFDaEIsT0FBUSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdkM7WUFDSCxLQUFLLGNBQWMsQ0FBQyxDQUFDO2dCQUNuQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMzQztZQUNELEtBQUssaUJBQWtCLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUM7WUFDRCxLQUFLLGFBQWMsQ0FBQyxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN6QztZQUNELEtBQUssUUFBUyxDQUFDLENBQUM7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsS0FBSyxjQUFlLENBQUMsQ0FBQztnQkFDckIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUM7U0FFSDtJQUNILENBQUM7SUFJSCwyQkFBMkIsQ0FBQyxRQUFZO1FBQ3BDLDRCQUE0QjtRQUM1QixPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0MsV0FBVyxDQUFDLGVBQWUsR0FBRyxFQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBQyxDQUFDO1lBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckYsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0UsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDaEM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNoQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDMUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDckQsV0FBVyxDQUFDLFNBQVMsR0FBSSxFQUFDLE9BQU8sRUFBRSx5Q0FBeUMsRUFBQyxDQUFDO2dCQUM5RSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxPQUFPO29CQUNoQixRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNqRixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDL0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQzVIO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsV0FBVyxDQUFDLFNBQVMsR0FBSSxFQUFDLE9BQU8sRUFBRSx5Q0FBeUMsRUFBQyxDQUFDO1lBQzlFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlDLFdBQVcsQ0FBQyxVQUFVLEdBQUssRUFBQyxPQUFPLEVBQUUscUNBQXFDLEVBQUMsQ0FBQztZQUM1RSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxnQkFBbUMsQ0FBQztRQUN4QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7WUFDbEMsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDaEUsT0FBTyxnQkFBZ0IsQ0FBQztTQUN4QjthQUFNO1lBQ0wsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDL0QsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxRQUFZO1FBQy9CLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxXQUFXLEdBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QyxXQUFXLENBQUMsZUFBZSxHQUFHLEVBQUMsT0FBTyxFQUFFLDRCQUE0QixFQUFDLENBQUM7WUFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksUUFBUSxDQUFDLGNBQWMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2RixRQUFRLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUNqQztRQUNELElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRixRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUM5QjtRQUNELElBQUcsUUFBUSxDQUFDLGtCQUFrQixLQUFLLElBQUksRUFBQztZQUNyQyxJQUFHLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsa0JBQWtCLEVBQUM7Z0JBQzVELFdBQVcsQ0FBQyxVQUFVLEdBQUcsRUFBQyxPQUFPLEVBQUUsdURBQXVELEVBQUMsQ0FBQztnQkFDNUYsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QjtTQUNIO1FBQ0QsSUFBSSxnQkFBbUMsQ0FBQztRQUN4QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7WUFDbEMsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDaEUsT0FBTyxnQkFBZ0IsQ0FBQztTQUN4QjthQUFNO1lBQ0wsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDL0QsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFZO1FBQzNCLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxXQUFXLEdBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QyxXQUFXLENBQUMsZUFBZSxHQUFHLEVBQUMsT0FBTyxFQUFFLDRCQUE0QixFQUFDLENBQUM7WUFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUV6QjtRQUNELElBQUksUUFBUSxDQUFDLGNBQWMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2RixRQUFRLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUNqQztRQUNELElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRixRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUM5QjtRQUNELElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDakYsV0FBVyxDQUFDLFdBQVcsR0FBRyxFQUFDLE9BQU8sRUFBRywwQ0FBMEMsRUFBQyxDQUFDO2dCQUNqRixXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pCO1NBQ0Y7UUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQzdCLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ2pGLFdBQVcsQ0FBQyxXQUFXLEdBQUcsRUFBQyxPQUFPLEVBQUUsMENBQTBDLEVBQUMsQ0FBRTtnQkFDakYsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtTQUNGO1FBQ0QsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLEtBQUssSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLEtBQUssRUFBRTtZQUMxRCxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUNELElBQUksZ0JBQW1DLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQ2hFLE9BQU8sZ0JBQWdCLENBQUM7U0FDeEI7YUFBTTtZQUNMLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQy9ELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBWTtRQUM5QixPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0MsV0FBVyxDQUFDLGVBQWUsR0FBRyxFQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBQyxDQUFDO1lBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkYsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakYsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDOUI7UUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDMUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRTttQkFDeEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLEVBQUU7Z0JBQ3ZDLFdBQVcsQ0FBQyxTQUFTLEdBQUksRUFBQyxPQUFPLEVBQUUseUNBQXlDLEVBQUMsQ0FBQztnQkFDOUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxRQUFRLENBQUMsT0FBTztvQkFDaEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNsRjtTQUNGO2FBQU07WUFDSCxXQUFXLENBQUMsU0FBUyxHQUFJLEVBQUMsT0FBTyxFQUFFLHlDQUF5QyxFQUFDLENBQUM7WUFDOUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzdDLFdBQVcsQ0FBQyxVQUFVLEdBQUssRUFBQyxPQUFPLEVBQUUscUNBQXFDLEVBQUMsQ0FBQztZQUM1RSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxnQkFBbUMsQ0FBQztRQUN4QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7WUFDbEMsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDaEUsT0FBTyxnQkFBZ0IsQ0FBQztTQUN4QjthQUFNO1lBQ0wsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDL0QsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFJRCxzQkFBc0IsQ0FBQyxRQUFZO1FBQ2pDLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxXQUFXLEdBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QyxXQUFXLENBQUMsZUFBZSxHQUFHLEVBQUMsT0FBTyxFQUFFLDRCQUE0QixFQUFDLENBQUM7WUFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksUUFBUSxDQUFDLGNBQWMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2RixRQUFRLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUNqQztRQUNELElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRixRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUM5QjtRQUNELElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLEtBQUssTUFBTSxNQUFNLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDckMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDNUUsV0FBVyxDQUFDLE1BQU0sR0FBSyxFQUFDLE9BQU8sRUFBRSw0Q0FBNEMsRUFBQyxDQUFDO29CQUMvRSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN6QjtxQkFBTTtvQkFDQyxRQUFRLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNwSCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDckMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUcsQ0FBQztxQkFDN0k7aUJBRUo7YUFDRjtTQUNGO2FBQU07WUFDTCxXQUFXLENBQUMsTUFBTSxHQUFLLEVBQUMsT0FBTyxFQUFFLDRDQUE0QyxFQUFDLENBQUM7WUFDL0UsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzdDLFdBQVcsQ0FBQyxVQUFVLEdBQUssRUFBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUMsQ0FBQztZQUN6RSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0IsUUFBUSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztZQUVwSCxLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDM0MsV0FBVyxDQUFDLE1BQU0sR0FBSSxFQUFDLE9BQU8sRUFBRSwrQ0FBK0MsRUFBQyxDQUFDO29CQUNqRixXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN6QjtnQkFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDN0IsS0FBSyxNQUFNLFlBQVksSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO3dCQUN6QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQ2pELFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFrQixFQUFFLEVBQUUsQ0FDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDOzRCQUNuRCxpR0FBaUc7NEJBQ2pHLDJCQUEyQjs0QkFDM0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWtCLEVBQUUsRUFBRSxDQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7eUJBQ3BEOzZCQUFNOzRCQUNMLDJEQUEyRDs0QkFDM0Qsc0RBQXNEO3lCQUN2RDtxQkFDRjtpQkFDRjtxQkFBTTtvQkFDTCxXQUFXLENBQUMsU0FBUyxHQUFJLEVBQUMsT0FBTyxFQUFFLHlEQUF5RCxFQUFDLENBQUM7b0JBQzlGLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0Y7WUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRTtvQkFDeEksT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDL0g7U0FDRjthQUFNO1lBQ0wsV0FBVyxDQUFDLE1BQU0sR0FBSyxFQUFDLE9BQU8sRUFBRSwrQ0FBK0MsRUFBQyxDQUFDO1lBQ2xGLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM3QyxXQUFXLENBQUMsVUFBVSxHQUFLLEVBQUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFDLENBQUM7WUFDNUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksZ0JBQW1DLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQ2hFLE9BQU8sZ0JBQWdCLENBQUM7U0FDeEI7YUFBTTtZQUNMLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQy9ELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBR0QsdUJBQXVCLENBQUMsUUFBWTtRQUNsQyxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0MsV0FBVyxDQUFDLGVBQWUsR0FBRyxFQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBQyxDQUFDO1lBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkYsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakYsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDOUI7UUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDekYsV0FBVyxDQUFDLFNBQVMsR0FBSSxFQUFDLE9BQU8sRUFBRSwrQkFBK0IsRUFBQyxDQUFDO2dCQUNwRSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxPQUFPO29CQUNoQixRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2xGO1NBQ0Y7YUFBTTtZQUNMLFdBQVcsQ0FBQyxTQUFTLEdBQUksRUFBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUMsQ0FBQztZQUN2RSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5QyxXQUFXLENBQUMsVUFBVSxHQUFLLEVBQUMsT0FBTyxFQUFFLHVDQUF1QyxFQUFDLENBQUM7WUFDOUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksZ0JBQW1DLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQ2hFLE9BQU8sZ0JBQWdCLENBQUM7U0FDeEI7YUFBTTtZQUNMLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQy9ELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQVk7UUFDekIsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQzNCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFdBQVcsR0FBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsRUFBQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUMsQ0FBQztZQUN0RSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxRQUFRLENBQUMsY0FBYyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZGLFFBQVEsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxRQUFRLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pGLFFBQVEsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFO1lBQ3RCLFdBQVcsQ0FBQyxRQUFRLEdBQUksRUFBQyxPQUFPLEVBQUUscUNBQXFDLE9BQU8sR0FBRyxFQUFDLENBQUM7WUFDbkYsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRTtZQUN0QixXQUFXLENBQUMsUUFBUSxHQUFJLEVBQUMsT0FBTyxFQUFFLHFDQUFxQyxPQUFPLEdBQUcsRUFBQyxDQUFDO1lBQ25GLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsR0FBRyxPQUFPLEVBQUU7WUFDdEIsV0FBVyxDQUFDLFNBQVMsR0FBSSxFQUFDLE9BQU8sRUFBRSw4Q0FBOEMsT0FBTyxJQUFJLE9BQU8sZ0RBQWdELEVBQUMsQ0FBQztZQUNySixXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO1lBQ2pCLFdBQVcsQ0FBQyxTQUFTLEdBQUksRUFBQyxPQUFPLEVBQUUscUNBQXFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDdkYsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksZ0JBQW1DLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQ2hFLE9BQU8sZ0JBQWdCLENBQUM7U0FDeEI7YUFBTTtZQUNMLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQy9ELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsUUFBWTtRQUM3QixPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0MsV0FBVyxDQUFDLGVBQWUsR0FBRyxFQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBQyxDQUFDO1lBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkYsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakYsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDOUI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxjQUFjLEVBQUU7WUFDM0IsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLE9BQU8sSUFBSSxRQUFRLENBQUMsY0FBYyxLQUFLLEVBQUUsSUFBSSxRQUFRLENBQUMsWUFBWSxLQUFLLEVBQUUsRUFBRTtnQkFDMUcsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7YUFDakM7U0FDRjtRQUNELElBQUksZ0JBQW1DLENBQUM7UUFDeEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQ2hFLE9BQU8sZ0JBQWdCLENBQUM7U0FDeEI7YUFBTTtZQUNMLGdCQUFnQixHQUFHLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxDQUFDO1lBQy9ELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBWTtRQUM5QixPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0MsV0FBVyxDQUFDLGVBQWUsR0FBRyxFQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBQyxDQUFDO1lBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkYsUUFBUSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakYsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDOUI7UUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQzVFLFdBQVcsQ0FBQyxNQUFNLEdBQUssRUFBQyxPQUFPLEVBQUUsNENBQTRDLEVBQUMsQ0FBQztvQkFDL0UsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDekI7cUJBQU07b0JBQ0MsUUFBUSxDQUFDLE9BQU87d0JBQ3RCLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBa0IsRUFBRSxFQUFFLENBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7d0JBQ3JDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFHLENBQUM7cUJBQzdJO2lCQUVKO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsV0FBVyxDQUFDLE1BQU0sR0FBSyxFQUFDLE9BQU8sRUFBRSw0Q0FBNEMsRUFBQyxDQUFDO1lBQy9FLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM3QyxXQUFXLENBQUMsVUFBVSxHQUFLLEVBQUMsT0FBTyxFQUFFLGtDQUFrQyxFQUFDLENBQUM7WUFDekUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pFLEtBQUssTUFBTSxNQUFNLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDckMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDNUUsV0FBVyxDQUFDLE1BQU0sR0FBSyxFQUFDLE9BQU8sRUFBRSwrQ0FBK0MsRUFBQyxDQUFDO29CQUNsRixXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN6QjtxQkFBTTtvQkFDTCxRQUFRLENBQUMsT0FBTzt3QkFDdEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFrQixFQUFFLEVBQUUsQ0FDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDckMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUcsQ0FBQztxQkFDN0k7aUJBRUo7YUFDSTtTQUNGO2FBQU07WUFDTCxXQUFXLENBQUMsTUFBTSxHQUFLLEVBQUMsT0FBTyxFQUFFLCtDQUErQyxFQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzdDLFdBQVcsQ0FBQyxVQUFVLEdBQUssRUFBQyxPQUFPLEVBQUUscUNBQXFDLEVBQUMsQ0FBQztZQUM1RSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxnQkFBbUMsQ0FBQztRQUN4QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7WUFDbEMsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDaEUsT0FBTyxnQkFBZ0IsQ0FBQztTQUN4QjthQUFNO1lBQ0wsZ0JBQWdCLEdBQUcsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDL0QsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFDRDs7O09BR0c7SUFDRCxPQUFPLENBQUMsQ0FBSztRQUNiLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUMsQ0FBQztJQUNBOzs7TUFHRTtJQUNILGlCQUFpQixDQUFDLE9BQVc7UUFDM0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzVCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0UsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsMEJBQTBCLENBQUMsZUFBb0I7UUFDN0MsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0YsS0FBSyxNQUFNLE1BQU0sSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFO1lBQzVDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUYsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxLQUFLLENBQUM7YUFDZDtpQkFBTTtnQkFDTCxJQUFJLGVBQWUsQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxlQUFlLENBQUMsVUFBVSxFQUFFO29CQUNsRixPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7WUFqaUJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcclxuaW1wb3J0IHsgVmFsaWRhdGVTdHJ1Y3R1cmUgfSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9ySW50ZXJmYWNlL3ZhbGlkYXRlU3RydWN0dXJlJztcclxuaW1wb3J0IHsgRXJyb3IgfSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9ySW50ZXJmYWNlL2Vycm9yJztcclxuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9ySW50ZXJmYWNlL3F1ZXN0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuXHJcbiAgfVxyXG4gIHB1YmxpYyB2YWxpZGF0ZWRRdWVzdGlvbnM6IGFueSA9IHt9O1xyXG5cclxuXHJcbiAgdmFsaWRhdGUocXVlc3Rpb246IFF1ZXN0aW9uKTogVmFsaWRhdGVTdHJ1Y3R1cmUgfCBhbnkge1xyXG4gICAgc3dpdGNoIChxdWVzdGlvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2NoZWNrYm94JyA6IHtcclxuICAgICAgICByZXR1cm4gIHRoaXMudmFsaWRhdGVNdWx0aVZhbHVlZFF1ZXN0aW9uKHF1ZXN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdkcm9wZG93bicgOiB7XHJcbiAgICAgICAgcmV0dXJuICB0aGlzLnZhbGlkYXRlTXVsdGlWYWx1ZWRRdWVzdGlvbihxdWVzdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnbXVsdGlwbGUtY2hvaWNlJyA6IHtcclxuICAgICAgICByZXR1cm4gIHRoaXMudmFsaWRhdGVNdWx0aVZhbHVlZFF1ZXN0aW9uKHF1ZXN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdyYW5raW5nJyA6IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZU11bHRpVmFsdWVkUXVlc3Rpb24ocXVlc3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2NvbW1lbnQtYm94Jzoge1xyXG4gICAgICAgIHJldHVybiAgdGhpcy52YWxpZGF0ZVNpbmdsZVZhbHVlZChxdWVzdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnbXVsdGlwbGUtdGV4dGJveCc6IHtcclxuICAgICAgICByZXR1cm4gIHRoaXMudmFsaWRhdGVNdWx0aXBsZVRleHRCb3gocXVlc3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3NpbmdsZS10ZXh0Ym94Jzoge1xyXG4gICAgICAgIHJldHVybiAgdGhpcy52YWxpZGF0ZVNpbmdsZVZhbHVlZChxdWVzdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2ZpbGUtdXBsb2FkJzoge1xyXG4gICAgICAgICAgcmV0dXJuICB0aGlzLnZhbGlkYXRlU2luZ2xlVmFsdWVkKHF1ZXN0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgY2FzZSAnZGF0ZS10aW1lJzoge1xyXG4gICAgICAgIHJldHVybiAgdGhpcy52YWxpZGF0ZURhdGVUaW1lKHF1ZXN0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgJ2ltYWdlLWNob2ljZSc6IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUltYWdlVXBsb2FkKHF1ZXN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdtYXRyaXgtZHJvcGRvd24nIDoge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlTWF0cml4RHJvcGRvd24ocXVlc3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3N0YXItcmF0aW5nJyA6IHtcclxuICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlU3RhclJhdGluZyhxdWVzdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnc2xpZGVyJyA6IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVNsaWRlcihxdWVzdGlvbik7XHJcbiAgICAgICB9XHJcbiAgICAgICBjYXNlICdyYXRpbmctc2NhbGUnIDoge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUmF0aW5nU2NhbGUocXVlc3Rpb24pO1xyXG4gICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbnZhbGlkYXRlTXVsdGlWYWx1ZWRRdWVzdGlvbihxdWVzdGlvbjphbnkpOiBWYWxpZGF0ZVN0cnVjdHVyZSAge1xyXG4gICAgLy8gcXVlc3Rpb24uZXJyb3JBcnJheSA9IHt9O1xyXG4gICAgZGVsZXRlIHF1ZXN0aW9uLmVycm9yQXJyYXk7XHJcbiAgICBjb25zdCB2YWxpZFN0YXR1cyA9IFtdO1xyXG4gICAgY29uc3QgRVJST1JfQVJSQVk6IEVycm9yID0ge307XHJcbiAgICBpZiAodGhpcy5leHRyYWN0KHF1ZXN0aW9uLnRpdGxlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgRVJST1JfQVJSQVkucXVlc3Rpb25NaXNzaW5nID0ge21lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgdGhlIHF1ZXN0aW9uLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNEZXNjcmlwdGlvbiA9PT0gdHJ1ZSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uZGVzY3JpcHRpb24pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBxdWVzdGlvbi5oYXNDb21tZW50cyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID49IDIpIHtcclxuICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAyICYmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24uY2hvaWNlc1swXS50aXRsZSkubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5jaG9pY2VzWzFdLnRpdGxlKS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgRVJST1JfQVJSQVkudHdvQ2hvaWNlICA9IHttZXNzYWdlOiAnUGxlYXNlIGFkZCBhdCBsZWFzdCB0d28gYW5zd2VyIGNob2ljZXMuJ307XHJcbiAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcXVlc3Rpb24uY2hvaWNlcyA9XHJcbiAgICAgICAgcXVlc3Rpb24uY2hvaWNlcy5maWx0ZXIoKGNob2ljZTphbnkpID0+IHRoaXMuZXh0cmFjdChjaG9pY2UudGl0bGUpLmxlbmd0aCAhPT0gMCk7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMucHVzaCh7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnR3b0Nob2ljZSAgPSB7bWVzc2FnZTogJ1BsZWFzZSBhZGQgYXQgbGVhc3QgdHdvIGFuc3dlciBjaG9pY2VzLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGVXaXRoT3RoZXIocXVlc3Rpb24pKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnNhbWVDaG9pY2UgICA9IHttZXNzYWdlOiAnVHdvIG9wdGlvbnMgY2Fubm90IGhhdmUgc2FtZSB0aXRsZS4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlU2luZ2xlVmFsdWVkKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlICB7XHJcbiAgICBkZWxldGUgcXVlc3Rpb24uZXJyb3JBcnJheTtcclxuICAgIGNvbnN0IHZhbGlkU3RhdHVzID0gW107XHJcbiAgICBjb25zdCBFUlJPUl9BUlJBWTogRXJyb3IgPSB7fTtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKHF1ZXN0aW9uLmhhc0NoYXJhY3Rlckxlbmd0aCA9PT0gdHJ1ZSl7XHJcbiAgICAgICBpZihxdWVzdGlvbi5taW5DaGFyYWN0ZXJMZW5ndGggPiBxdWVzdGlvbi5tYXhDaGFyYWN0ZXJMZW5ndGgpe1xyXG4gICAgICAgIEVSUk9SX0FSUkFZLmNoYXJMZW5ndGggPSB7bWVzc2FnZTogJ01pbmltdW0gQ2hhcmFjdGVyIGxlbmd0aCBzaG91bGQgYmUgbGVzcyB0aGFuIG1heGltdW0uJ307XHJcbiAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0ZVRpbWUocXVlc3Rpb246YW55KTogVmFsaWRhdGVTdHJ1Y3R1cmUgIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnF1ZXN0aW9uTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIHRoZSBxdWVzdGlvbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNEYXRlID09PSB0cnVlKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5kYXRlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmRhdGUudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIEVSUk9SX0FSUkFZLmRhdGVNaXNzaW5nID0ge21lc3NhZ2UgOiAnUGxlYXNlIGVudGVyIGEgbGFiZWwgZm9yIHRoZSBkYXRlIGZpZWxkLid9O1xyXG4gICAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzVGltZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBpZiAocXVlc3Rpb24udGltZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aW1lLnRpdGxlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBFUlJPUl9BUlJBWS50aW1lTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbGFiZWwgZm9yIHRoZSB0aW1lIGZpZWxkLid9IDtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc1RpbWUgPT09IGZhbHNlICYmIHF1ZXN0aW9uLmhhc0RhdGUgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uaGFzRGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlSW1hZ2VVcGxvYWQocXVlc3Rpb246YW55KTogVmFsaWRhdGVTdHJ1Y3R1cmUge1xyXG4gICAgZGVsZXRlIHF1ZXN0aW9uLmVycm9yQXJyYXk7XHJcbiAgICBjb25zdCB2YWxpZFN0YXR1cyA9IFtdO1xyXG4gICAgY29uc3QgRVJST1JfQVJSQVk6IEVycm9yID0ge307XHJcbiAgICBpZiAodGhpcy5leHRyYWN0KHF1ZXN0aW9uLnRpdGxlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgRVJST1JfQVJSQVkucXVlc3Rpb25NaXNzaW5nID0ge21lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgdGhlIHF1ZXN0aW9uLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNEZXNjcmlwdGlvbiA9PT0gdHJ1ZSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uZGVzY3JpcHRpb24pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBxdWVzdGlvbi5oYXNEZXNjcmlwdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0NvbW1lbnRzID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5jb21tZW50cykubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0NvbW1lbnRzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICBpZiAocXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPT09IDIgJiYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi5jaG9pY2VzWzBdLnRpdGxlKS5sZW5ndGggPT09IDAgfHxcclxuICAgICAgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNob2ljZXNbMV0udGl0bGUpLmxlbmd0aCA9PT0gMCB8fCBxdWVzdGlvbi5jaG9pY2VzWzFdLmltYWdlVVJMID09PSAnJ1xyXG4gICAgICB8fCBxdWVzdGlvbi5jaG9pY2VzWzBdLmltYWdlVVJMID09PSAnJykpIHtcclxuICAgICAgICBFUlJPUl9BUlJBWS50d29DaG9pY2UgID0ge21lc3NhZ2U6ICdQbGVhc2UgYWRkIGF0IGxlYXN0IHR3byBhbnN3ZXIgY2hvaWNlcy4nfTtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzID1cclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzLmZpbHRlcigoY2hvaWNlOmFueSkgPT4gdGhpcy5leHRyYWN0KGNob2ljZS50aXRsZSkubGVuZ3RoICE9PSAwKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBFUlJPUl9BUlJBWS50d29DaG9pY2UgID0ge21lc3NhZ2U6ICdQbGVhc2UgYWRkIGF0IGxlYXN0IHR3byBhbnN3ZXIgY2hvaWNlcy4nfTtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY2hvaWNlcykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gb3B0aW9ucyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICB2YWxpZGF0ZU1hdHJpeERyb3Bkb3duKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnF1ZXN0aW9uTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIHRoZSBxdWVzdGlvbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmRlc2NyaXB0aW9uKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNDb21tZW50cyA9PT0gdHJ1ZSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uY29tbWVudHMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBxdWVzdGlvbi5oYXNDb21tZW50cyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzKSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAxICYmIHRoaXMuZXh0cmFjdChjaG9pY2UudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkub25lUm93ICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgcm93Lid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMgPSBxdWVzdGlvbi5jaG9pY2VzLmZpbHRlcigoc2VsZWN0ZWRDaG9pY2U6YW55KSA9PiB0aGlzLmV4dHJhY3Qoc2VsZWN0ZWRDaG9pY2UudGl0bGUpLmxlbmd0aCAhPT0gMCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICBxdWVzdGlvbi5jaG9pY2VzLnB1c2goIHsgdGl0bGU6ICcnLCBpc1Zpc2libGU6IHRydWUsIHZhbHVlOiAwLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogdHJ1ZSwgaGVscGluZ0xhYmVsOiAnJyB9LCApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgRVJST1JfQVJSQVkub25lUm93ICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgcm93Lid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jaGVja0ZvclNhbWVUaXRsZShxdWVzdGlvbi5jaG9pY2VzKSkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5zYW1lQ2hvaWNlICAgPSB7bWVzc2FnZTogJ1R3byByb3dzIGNhbm5vdCBoYXZlIHNhbWUgdGl0bGUuJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChxdWVzdGlvbi5jb2x1bW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgcXVlc3Rpb24uY29sdW1ucyA9IHF1ZXN0aW9uLmNvbHVtbnMuZmlsdGVyKChzZWxlY3RlZENob2ljZTphbnkpID0+IHRoaXMuZXh0cmFjdChzZWxlY3RlZENob2ljZS50aXRsZSkubGVuZ3RoICE9PSAwKTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHF1ZXN0aW9uLmNvbHVtbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5leHRyYWN0KGNvbHVtbi50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBFUlJPUl9BUlJBWS5vbmVDb2wgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbi4nfTtcclxuICAgICAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29sdW1uLmNob2ljZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBjb2x1bW5DaG9pY2Ugb2YgY29sdW1uLmNob2ljZXMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZXh0cmFjdChjb2x1bW5DaG9pY2UudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLmNvbHVtbnMgPSBxdWVzdGlvbi5jb2x1bW5zLmZpbHRlcigoc2VsZWN0ZWRDaG9pY2U6YW55KSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgICAgIC8vIEVSUk9SX0FSUkFZLnR3b0Nob2ljZSAgPSB7bWVzc2FnZTogJ1BsZWFzZSBhZGQgYXQgbGVhc3QgdHdvIGFuc3dlciBjaG9pY2VzIGZvciBlYWNoIGNvbHVtbi4nfTtcclxuICAgICAgICAgICAgICAvLyB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgICAgICAgICBjb2x1bW4uY2hvaWNlcyA9IGNvbHVtbi5jaG9pY2VzLmZpbHRlcigoc2VsZWN0ZWRDaG9pY2U6YW55KSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIC8vIGNvbHVtbi5jaG9pY2VzID0gY29sdW1uLmNob2ljZXMuZmlsdGVyKHNlbGVjdGVkQ2hvaWNlID0+XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmV4dHJhY3Qoc2VsZWN0ZWRDaG9pY2UudGl0bGUpLmxlbmd0aCAhPT0gMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkudHdvQ2hvaWNlICA9IHttZXNzYWdlOiAnUGxlYXNlIGFkZCBhdCBsZWFzdCB0d28gYW5zd2VyIGNob2ljZXMgZm9yIGVhY2ggY29sdW1uLid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChxdWVzdGlvbi5jb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgcXVlc3Rpb24uY29sdW1ucy5wdXNoKCB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycsXHJcbiAgICAgICAgY2hvaWNlczogW3sgdGl0bGU6ICcnLCBpc1Zpc2libGU6IHRydWUsIHZhbHVlOiAwLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogdHJ1ZSwgaGVscGluZ0xhYmVsOiAnJ31dfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm9uZUNvbCAgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY29sdW1ucykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gY29sdW1ucyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHZhbGlkYXRlTXVsdGlwbGVUZXh0Qm94KHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlICB7XHJcbiAgICBkZWxldGUgcXVlc3Rpb24uZXJyb3JBcnJheTtcclxuICAgIGNvbnN0IHZhbGlkU3RhdHVzID0gW107XHJcbiAgICBjb25zdCBFUlJPUl9BUlJBWTogRXJyb3IgPSB7fTtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5jaG9pY2VzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uY2hvaWNlc1swXS50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgRVJST1JfQVJSQVkub25lQ2hvaWNlICA9IHttZXNzYWdlOiAnUGxlYXNlIGFkZCBsYWJlbCBmb3IgdGV4dGJveC4nfTtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzID1cclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzLmZpbHRlcigoY2hvaWNlOmFueSkgPT4gdGhpcy5leHRyYWN0KGNob2ljZS50aXRsZSkubGVuZ3RoICE9PSAwKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgRVJST1JfQVJSQVkub25lQ2hvaWNlICA9IHttZXNzYWdlOiAnUGxlYXNlIGFkZCBhdCBsZWFzdCBvbmUgdGV4dGJveC4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmNoZWNrRm9yU2FtZVRpdGxlV2l0aE90aGVyKHF1ZXN0aW9uKSkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5zYW1lQ2hvaWNlICAgPSB7bWVzc2FnZTogJ1R3byB0ZXh0Ym94ZXMgY2Fubm90IGhhdmUgc2FtZSBsYWJlbC4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlU2xpZGVyKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgY29uc3QgbWluaW11bSA9IHBhcnNlSW50KHF1ZXN0aW9uLnNjYWxlUmFuZ2VNaW4sIDEwKTtcclxuICAgIGNvbnN0IG1heGltdW0gPSBwYXJzZUludChxdWVzdGlvbi5zY2FsZVJhbmdlTWF4LCAxMCk7XHJcbiAgICBjb25zdCBzdGVwU2l6ZSA9IHF1ZXN0aW9uLnN0ZXBTaXplO1xyXG4gICAgY29uc3QgdGhyZXNob2xkID0gMDtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtaW5pbXVtID49IG1heGltdW0pIHtcclxuICAgICAgRVJST1JfQVJSQVkubWluRXJyb3IgID0ge21lc3NhZ2U6IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBzbWFsbGVyIHRoYW4gJHttYXhpbXVtfS5gfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4aW11bSA8PSBtaW5pbXVtKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm1pbkVycm9yICA9IHttZXNzYWdlOiBgUGxlYXNlIGVudGVyIGEgdmFsdWUgZ3JlYXRlciB0aGFuICR7bWF4aW11bX0uYH07XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0ZXBTaXplID4gbWF4aW11bSkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5zdGVwRXJyb3IgID0ge21lc3NhZ2U6IGBUaGUgcmFuZ2UgZm9yIHRoZSBzbGlkZXIgdmFsdWVzIGFyZSB3aXRoaW4gJHttaW5pbXVtfS0ke21heGltdW19LiBQbGVhc2Ugc2VsZWN0IGEgc3RlcCBzaXplIHdpdGhpbiB0aGlzIHJhbmdlLmB9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmIChzdGVwU2l6ZSA8PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnN0ZXBFcnJvciAgPSB7bWVzc2FnZTogYFBsZWFzZSBlbnRlciBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAke3RocmVzaG9sZH0uYCB9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHZhbGlkYXRlU3RhclJhdGluZyhxdWVzdGlvbjphbnkpOiBWYWxpZGF0ZVN0cnVjdHVyZSB7XHJcbiAgICBkZWxldGUgcXVlc3Rpb24uZXJyb3JBcnJheTtcclxuICAgIGNvbnN0IHZhbGlkU3RhdHVzID0gW107XHJcbiAgICBjb25zdCBFUlJPUl9BUlJBWTogRXJyb3IgPSB7fTtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNSYXRpbmdMYWJlbCkge1xyXG4gICAgICBpZiAocXVlc3Rpb24ucmF0aW5nTGFiZWxUeXBlID09PSAnc2NhbGUnICYmIHF1ZXN0aW9uLnNjYWxlUmFuZ2VGcm9tID09PSAnJyAmJiBxdWVzdGlvbi5zY2FsZVJhbmdlVG8gPT09ICcnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uaGFzUmF0aW5nTGFiZWwgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHZhbGlkYXRpb25SZXN1bHQ6IFZhbGlkYXRlU3RydWN0dXJlO1xyXG4gICAgaWYgKHZhbGlkU3RhdHVzLmluY2x1ZGVzKGZhbHNlKSkge1xyXG4gICAgIHF1ZXN0aW9uLmVycm9yQXJyYXkgPSBFUlJPUl9BUlJBWTtcclxuICAgICB2YWxpZGF0aW9uUmVzdWx0ID0ge3ZhbGlkOiBmYWxzZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0ge3ZhbGlkOiB0cnVlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVJhdGluZ1NjYWxlKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnF1ZXN0aW9uTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIHRoZSBxdWVzdGlvbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmRlc2NyaXB0aW9uKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNDb21tZW50cyA9PT0gdHJ1ZSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uY29tbWVudHMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBxdWVzdGlvbi5oYXNDb21tZW50cyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzKSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAxICYmIHRoaXMuZXh0cmFjdChjaG9pY2UudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkub25lUm93ICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgcm93Lid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMgPVxyXG4gICAgICAgICAgcXVlc3Rpb24uY2hvaWNlcy5maWx0ZXIoKHNlbGVjdGVkQ2hvaWNlOmFueSkgPT5cclxuICAgICAgICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgcXVlc3Rpb24uY2hvaWNlcy5wdXNoKCB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycgfSwgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm9uZVJvdyAgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIHJvdy4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY2hvaWNlcykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gcm93cyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocXVlc3Rpb24uY29sdW1ucyAhPT0gdW5kZWZpbmVkICYmIHF1ZXN0aW9uLmNvbHVtbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBxdWVzdGlvbi5jb2x1bW5zKSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNvbHVtbnMubGVuZ3RoID09PSAxICYmIHRoaXMuZXh0cmFjdChjb2x1bW4udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkub25lQ29sICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgY29sdW1uLid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHF1ZXN0aW9uLmNvbHVtbnMgPVxyXG4gICAgcXVlc3Rpb24uY29sdW1ucy5maWx0ZXIoKHNlbGVjdGVkQ2hvaWNlOmFueSkgPT5cclxuICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgaWYgKHF1ZXN0aW9uLmNvbHVtbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uY29sdW1ucy5wdXNoKCB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycgfSwgKTtcclxuICAgICAgfVxyXG5cclxuICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm9uZUNvbCAgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY29sdW1ucykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gY29sdW1ucyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBFeHRyYWN0cyB0aGUgdGV4dCBmcm9tIGEgcGFydGljdWxhciBodG1sIGNvbnRlbnRcclxuICAgKiBAcGFyYW0gcyBodG1sIGNvbnRlbnQgZnJvbSB3aGljaCB0ZXh0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZFxyXG4gICAqL1xyXG4gICAgZXh0cmFjdChzOmFueSkge1xyXG4gICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHNwYW4uaW5uZXJIVE1MID0gcztcclxuICAgIHJldHVybiBzcGFuLnRleHRDb250ZW50IHx8IHNwYW4uaW5uZXJUZXh0O1xyXG4gIH1cclxuICAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRpdGxlIG9mIHR3byBjaG9pY2VzIGlzIHNhbWUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNob2ljZXMgQ2hvaWNlIGZvciB3aGljaCB0aXRsZSBzaG91bGQgYmUgY2hlY2tlZFxyXG4gICAqL1xyXG4gIGNoZWNrRm9yU2FtZVRpdGxlKGNob2ljZXM6YW55KSB7XHJcbiAgICBjb25zdCB0aXRsZSA9IGNob2ljZXMubWFwKChkYXRhOmFueSkgPT4gZGF0YS50aXRsZSk7XHJcbiAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBjaG9pY2VzKSB7XHJcbiAgICAgIGNvbnN0IHNhbWVUaXRsZSA9IGNsb25lRGVlcCh0aXRsZSkuZmlsdGVyKChkYXRhOmFueSkgPT4gZGF0YSA9PT0gY2hvaWNlLnRpdGxlKTtcclxuICAgICAgaWYgKHNhbWVUaXRsZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRpdGxlIG9mIHR3byBjaG9pY2VzIGlzIHNhbWUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNob2ljZXMgQ2hvaWNlIGZvciB3aGljaCB0aXRsZSBzaG91bGQgYmUgY2hlY2tlZFxyXG4gICAqL1xyXG4gIGNoZWNrRm9yU2FtZVRpdGxlV2l0aE90aGVyKHF1ZXN0aW9uRGV0YWlsczogYW55KSB7XHJcbiAgICBjb25zdCB0aXRsZSA9IHF1ZXN0aW9uRGV0YWlscy5jaG9pY2VzLm1hcCgoZGF0YTogeyB0aXRsZTogc3RyaW5nOyB9KSA9PiBkYXRhLnRpdGxlLnRyaW0oKSk7XHJcbiAgICBcclxuICAgIGZvciAoY29uc3QgY2hvaWNlIG9mIHF1ZXN0aW9uRGV0YWlscy5jaG9pY2VzKSB7XHJcbiAgICAgIGNvbnN0IHNhbWVUaXRsZSA9IGNsb25lRGVlcCh0aXRsZSkuZmlsdGVyKChkYXRhOiBzdHJpbmcpID0+IGRhdGEgPT09IGNob2ljZS50aXRsZS50cmltKCkpO1xyXG4gICAgICBpZiAoc2FtZVRpdGxlLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uRGV0YWlscy5oYXNPdGhlciAmJiBjaG9pY2UudGl0bGUudHJpbSgpID09PSBxdWVzdGlvbkRldGFpbHMub3RoZXJWYWx1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
546
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL3NlcnZpY2VzL3ZhbGlkYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7O0FBUXpDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0I7UUFHTyx1QkFBa0IsR0FBUSxFQUFFLENBQUM7SUFEcEMsQ0FBQztJQUlELFFBQVEsQ0FBQyxRQUFrQjtRQUN6QixRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDckIsS0FBSyxVQUFXLENBQUMsQ0FBQztnQkFDaEIsT0FBUSxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEQ7WUFDRCxLQUFLLFVBQVcsQ0FBQyxDQUFDO2dCQUNoQixPQUFRLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNwRDtZQUNELEtBQUssaUJBQWtCLENBQUMsQ0FBQztnQkFDdkIsT0FBUSxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEQ7WUFDRCxLQUFLLFNBQVUsQ0FBQyxDQUFDO2dCQUNmLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsS0FBSyxhQUFhLENBQUMsQ0FBQztnQkFDbEIsT0FBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0M7WUFDRCxLQUFLLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3ZCLE9BQVEsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hEO1lBQ0Qs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ZSxDQUFDLE9BQU8sRUFBRTtZQUM1QyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFGLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7aUJBQU07Z0JBQ0wsSUFBSSxlQUFlLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssZUFBZSxDQUFDLFVBQVUsRUFBRTtvQkFDbEYsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7O1lBamlCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XHJcbmltcG9ydCB7IFZhbGlkYXRlU3RydWN0dXJlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvckludGVyZmFjZS92YWxpZGF0ZVN0cnVjdHVyZSc7XHJcbmltcG9ydCB7IEVycm9yIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvckludGVyZmFjZS9lcnJvcic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvckludGVyZmFjZS9xdWVzdGlvbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0b3JTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gIH1cclxuICBwdWJsaWMgdmFsaWRhdGVkUXVlc3Rpb25zOiBhbnkgPSB7fTtcclxuXHJcblxyXG4gIHZhbGlkYXRlKHF1ZXN0aW9uOiBRdWVzdGlvbik6IFZhbGlkYXRlU3RydWN0dXJlIHwgYW55IHtcclxuICAgIHN3aXRjaCAocXVlc3Rpb24udHlwZSkge1xyXG4gICAgICBjYXNlICdjaGVja2JveCcgOiB7XHJcbiAgICAgICAgcmV0dXJuICB0aGlzLnZhbGlkYXRlTXVsdGlWYWx1ZWRRdWVzdGlvbihxdWVzdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZHJvcGRvd24nIDoge1xyXG4gICAgICAgIHJldHVybiAgdGhpcy52YWxpZGF0ZU11bHRpVmFsdWVkUXVlc3Rpb24ocXVlc3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ211bHRpcGxlLWNob2ljZScgOiB7XHJcbiAgICAgICAgcmV0dXJuICB0aGlzLnZhbGlkYXRlTXVsdGlWYWx1ZWRRdWVzdGlvbihxdWVzdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAncmFua2luZycgOiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVNdWx0aVZhbHVlZFF1ZXN0aW9uKHF1ZXN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdjb21tZW50LWJveCc6IHtcclxuICAgICAgICByZXR1cm4gIHRoaXMudmFsaWRhdGVTaW5nbGVWYWx1ZWQocXVlc3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ211bHRpcGxlLXRleHRib3gnOiB7XHJcbiAgICAgICAgcmV0dXJuICB0aGlzLnZhbGlkYXRlTXVsdGlwbGVUZXh0Qm94KHF1ZXN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdzaW5nbGUtdGV4dGJveCc6IHtcclxuICAgICAgICByZXR1cm4gIHRoaXMudmFsaWRhdGVTaW5nbGVWYWx1ZWQocXVlc3Rpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdmaWxlLXVwbG9hZCc6IHtcclxuICAgICAgICAgIHJldHVybiAgdGhpcy52YWxpZGF0ZVNpbmdsZVZhbHVlZChxdWVzdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIGNhc2UgJ2RhdGUtdGltZSc6IHtcclxuICAgICAgICByZXR1cm4gIHRoaXMudmFsaWRhdGVEYXRlVGltZShxdWVzdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICBjYXNlICdpbWFnZS1jaG9pY2UnOiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVJbWFnZVVwbG9hZChxdWVzdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnbWF0cml4LWRyb3Bkb3duJyA6IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZU1hdHJpeERyb3Bkb3duKHF1ZXN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdzdGFyLXJhdGluZycgOiB7XHJcbiAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVN0YXJSYXRpbmcocXVlc3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3NsaWRlcicgOiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVTbGlkZXIocXVlc3Rpb24pO1xyXG4gICAgICAgfVxyXG4gICAgICAgY2FzZSAncmF0aW5nLXNjYWxlJyA6IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVJhdGluZ1NjYWxlKHF1ZXN0aW9uKTtcclxuICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHZhbGlkYXRlTXVsdGlWYWx1ZWRRdWVzdGlvbihxdWVzdGlvbjphbnkpOiBWYWxpZGF0ZVN0cnVjdHVyZSAge1xyXG4gICAgLy8gcXVlc3Rpb24uZXJyb3JBcnJheSA9IHt9O1xyXG4gICAgZGVsZXRlIHF1ZXN0aW9uLmVycm9yQXJyYXk7XHJcbiAgICBjb25zdCB2YWxpZFN0YXR1cyA9IFtdO1xyXG4gICAgY29uc3QgRVJST1JfQVJSQVk6IEVycm9yID0ge307XHJcbiAgICBpZiAodGhpcy5leHRyYWN0KHF1ZXN0aW9uLnRpdGxlKS5sZW5ndGggPT09IDAgfHwgcXVlc3Rpb24/LnRpdGxlPy50cmltKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnF1ZXN0aW9uTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIHRoZSBxdWVzdGlvbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmRlc2NyaXB0aW9uKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBxdWVzdGlvbi5oYXNEZXNjcmlwdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0NvbW1lbnRzID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5jb21tZW50cykubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5jaG9pY2VzLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5jaG9pY2VzLmxlbmd0aCA9PT0gMiAmJiAodGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNob2ljZXNbMF0udGl0bGUpLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmV4dHJhY3QocXVlc3Rpb24uY2hvaWNlc1swXS50aXRsZSk/LnRyaW0oKT8ubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5jaG9pY2VzWzFdLnRpdGxlKS5sZW5ndGggPT09IDAgfHx0aGlzLmV4dHJhY3QocXVlc3Rpb24uY2hvaWNlc1sxXS50aXRsZSk/LnRyaW0oKT8ubGVuZ3RoID09PSAwKSkge1xyXG4gICAgICAgIEVSUk9SX0FSUkFZLnR3b0Nob2ljZSAgPSB7bWVzc2FnZTogJ1BsZWFzZSBhZGQgYXQgbGVhc3QgdHdvIGFuc3dlciBjaG9pY2VzLid9O1xyXG4gICAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHF1ZXN0aW9uLmNob2ljZXMgPVxyXG4gICAgICAgIHF1ZXN0aW9uLmNob2ljZXMuZmlsdGVyKChjaG9pY2U6YW55KSA9PiAodGhpcy5leHRyYWN0KGNob2ljZS50aXRsZSk/LnRyaW0oKT8ubGVuZ3RoICE9PSAwKSk7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMucHVzaCh7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnR3b0Nob2ljZSAgPSB7bWVzc2FnZTogJ1BsZWFzZSBhZGQgYXQgbGVhc3QgdHdvIGFuc3dlciBjaG9pY2VzLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGVXaXRoT3RoZXIocXVlc3Rpb24pKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnNhbWVDaG9pY2UgICA9IHttZXNzYWdlOiAnVHdvIG9wdGlvbnMgY2Fubm90IGhhdmUgc2FtZSB0aXRsZS4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlU2luZ2xlVmFsdWVkKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlICB7XHJcbiAgICBkZWxldGUgcXVlc3Rpb24uZXJyb3JBcnJheTtcclxuICAgIGNvbnN0IHZhbGlkU3RhdHVzID0gW107XHJcbiAgICBjb25zdCBFUlJPUl9BUlJBWTogRXJyb3IgPSB7fTtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpPy50cmltKCk/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKHF1ZXN0aW9uLmhhc0NoYXJhY3Rlckxlbmd0aCA9PT0gdHJ1ZSl7XHJcbiAgICAgICBpZihxdWVzdGlvbi5taW5DaGFyYWN0ZXJMZW5ndGggPiBxdWVzdGlvbi5tYXhDaGFyYWN0ZXJMZW5ndGgpe1xyXG4gICAgICAgIEVSUk9SX0FSUkFZLmNoYXJMZW5ndGggPSB7bWVzc2FnZTogJ01pbmltdW0gQ2hhcmFjdGVyIGxlbmd0aCBzaG91bGQgYmUgbGVzcyB0aGFuIG1heGltdW0uJ307XHJcbiAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0ZVRpbWUocXVlc3Rpb246YW55KTogVmFsaWRhdGVTdHJ1Y3R1cmUgIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aXRsZSkubGVuZ3RoID09PSAwIHx8IHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aXRsZSk/LnRyaW0oKT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnF1ZXN0aW9uTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIHRoZSBxdWVzdGlvbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNEYXRlID09PSB0cnVlKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5kYXRlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmRhdGUudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIEVSUk9SX0FSUkFZLmRhdGVNaXNzaW5nID0ge21lc3NhZ2UgOiAnUGxlYXNlIGVudGVyIGEgbGFiZWwgZm9yIHRoZSBkYXRlIGZpZWxkLid9O1xyXG4gICAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzVGltZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBpZiAocXVlc3Rpb24udGltZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aW1lLnRpdGxlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBFUlJPUl9BUlJBWS50aW1lTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbGFiZWwgZm9yIHRoZSB0aW1lIGZpZWxkLid9IDtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc1RpbWUgPT09IGZhbHNlICYmIHF1ZXN0aW9uLmhhc0RhdGUgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uaGFzRGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlSW1hZ2VVcGxvYWQocXVlc3Rpb246YW55KTogVmFsaWRhdGVTdHJ1Y3R1cmUge1xyXG4gICAgZGVsZXRlIHF1ZXN0aW9uLmVycm9yQXJyYXk7XHJcbiAgICBjb25zdCB2YWxpZFN0YXR1cyA9IFtdO1xyXG4gICAgY29uc3QgRVJST1JfQVJSQVk6IEVycm9yID0ge307XHJcbiAgICBpZiAodGhpcy5leHRyYWN0KHF1ZXN0aW9uLnRpdGxlKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgRVJST1JfQVJSQVkucXVlc3Rpb25NaXNzaW5nID0ge21lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgdGhlIHF1ZXN0aW9uLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNEZXNjcmlwdGlvbiA9PT0gdHJ1ZSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uZGVzY3JpcHRpb24pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBxdWVzdGlvbi5oYXNEZXNjcmlwdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0NvbW1lbnRzID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5jb21tZW50cykubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0NvbW1lbnRzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICBpZiAocXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPT09IDIgJiYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi5jaG9pY2VzWzBdLnRpdGxlKS5sZW5ndGggPT09IDAgfHxcclxuICAgICAgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNob2ljZXNbMV0udGl0bGUpLmxlbmd0aCA9PT0gMCB8fCBxdWVzdGlvbi5jaG9pY2VzWzFdLmltYWdlVVJMID09PSAnJ1xyXG4gICAgICB8fCBxdWVzdGlvbi5jaG9pY2VzWzBdLmltYWdlVVJMID09PSAnJykpIHtcclxuICAgICAgICBFUlJPUl9BUlJBWS50d29DaG9pY2UgID0ge21lc3NhZ2U6ICdQbGVhc2UgYWRkIGF0IGxlYXN0IHR3byBhbnN3ZXIgY2hvaWNlcy4nfTtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzID1cclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzLmZpbHRlcigoY2hvaWNlOmFueSkgPT4gdGhpcy5leHRyYWN0KGNob2ljZS50aXRsZSkubGVuZ3RoICE9PSAwKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBFUlJPUl9BUlJBWS50d29DaG9pY2UgID0ge21lc3NhZ2U6ICdQbGVhc2UgYWRkIGF0IGxlYXN0IHR3byBhbnN3ZXIgY2hvaWNlcy4nfTtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY2hvaWNlcykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gb3B0aW9ucyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICB2YWxpZGF0ZU1hdHJpeERyb3Bkb3duKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnF1ZXN0aW9uTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIHRoZSBxdWVzdGlvbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmRlc2NyaXB0aW9uKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNDb21tZW50cyA9PT0gdHJ1ZSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uY29tbWVudHMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBxdWVzdGlvbi5oYXNDb21tZW50cyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzKSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAxICYmIHRoaXMuZXh0cmFjdChjaG9pY2UudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkub25lUm93ICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgcm93Lid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMgPSBxdWVzdGlvbi5jaG9pY2VzLmZpbHRlcigoc2VsZWN0ZWRDaG9pY2U6YW55KSA9PiB0aGlzLmV4dHJhY3Qoc2VsZWN0ZWRDaG9pY2UudGl0bGUpLmxlbmd0aCAhPT0gMCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICBxdWVzdGlvbi5jaG9pY2VzLnB1c2goIHsgdGl0bGU6ICcnLCBpc1Zpc2libGU6IHRydWUsIHZhbHVlOiAwLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogdHJ1ZSwgaGVscGluZ0xhYmVsOiAnJyB9LCApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgRVJST1JfQVJSQVkub25lUm93ICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgcm93Lid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jaGVja0ZvclNhbWVUaXRsZShxdWVzdGlvbi5jaG9pY2VzKSkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5zYW1lQ2hvaWNlICAgPSB7bWVzc2FnZTogJ1R3byByb3dzIGNhbm5vdCBoYXZlIHNhbWUgdGl0bGUuJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChxdWVzdGlvbi5jb2x1bW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgcXVlc3Rpb24uY29sdW1ucyA9IHF1ZXN0aW9uLmNvbHVtbnMuZmlsdGVyKChzZWxlY3RlZENob2ljZTphbnkpID0+IHRoaXMuZXh0cmFjdChzZWxlY3RlZENob2ljZS50aXRsZSkubGVuZ3RoICE9PSAwKTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHF1ZXN0aW9uLmNvbHVtbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5leHRyYWN0KGNvbHVtbi50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBFUlJPUl9BUlJBWS5vbmVDb2wgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbi4nfTtcclxuICAgICAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29sdW1uLmNob2ljZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBjb2x1bW5DaG9pY2Ugb2YgY29sdW1uLmNob2ljZXMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZXh0cmFjdChjb2x1bW5DaG9pY2UudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLmNvbHVtbnMgPSBxdWVzdGlvbi5jb2x1bW5zLmZpbHRlcigoc2VsZWN0ZWRDaG9pY2U6YW55KSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgICAgIC8vIEVSUk9SX0FSUkFZLnR3b0Nob2ljZSAgPSB7bWVzc2FnZTogJ1BsZWFzZSBhZGQgYXQgbGVhc3QgdHdvIGFuc3dlciBjaG9pY2VzIGZvciBlYWNoIGNvbHVtbi4nfTtcclxuICAgICAgICAgICAgICAvLyB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgICAgICAgICBjb2x1bW4uY2hvaWNlcyA9IGNvbHVtbi5jaG9pY2VzLmZpbHRlcigoc2VsZWN0ZWRDaG9pY2U6YW55KSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIC8vIGNvbHVtbi5jaG9pY2VzID0gY29sdW1uLmNob2ljZXMuZmlsdGVyKHNlbGVjdGVkQ2hvaWNlID0+XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmV4dHJhY3Qoc2VsZWN0ZWRDaG9pY2UudGl0bGUpLmxlbmd0aCAhPT0gMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkudHdvQ2hvaWNlICA9IHttZXNzYWdlOiAnUGxlYXNlIGFkZCBhdCBsZWFzdCB0d28gYW5zd2VyIGNob2ljZXMgZm9yIGVhY2ggY29sdW1uLid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChxdWVzdGlvbi5jb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgcXVlc3Rpb24uY29sdW1ucy5wdXNoKCB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycsXHJcbiAgICAgICAgY2hvaWNlczogW3sgdGl0bGU6ICcnLCBpc1Zpc2libGU6IHRydWUsIHZhbHVlOiAwLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogdHJ1ZSwgaGVscGluZ0xhYmVsOiAnJ31dfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm9uZUNvbCAgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY29sdW1ucykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gY29sdW1ucyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHZhbGlkYXRlTXVsdGlwbGVUZXh0Qm94KHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlICB7XHJcbiAgICBkZWxldGUgcXVlc3Rpb24uZXJyb3JBcnJheTtcclxuICAgIGNvbnN0IHZhbGlkU3RhdHVzID0gW107XHJcbiAgICBjb25zdCBFUlJPUl9BUlJBWTogRXJyb3IgPSB7fTtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocXVlc3Rpb24uY2hvaWNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5jaG9pY2VzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uY2hvaWNlc1swXS50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgRVJST1JfQVJSQVkub25lQ2hvaWNlICA9IHttZXNzYWdlOiAnUGxlYXNlIGFkZCBsYWJlbCBmb3IgdGV4dGJveC4nfTtcclxuICAgICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzID1cclxuICAgICAgICBxdWVzdGlvbi5jaG9pY2VzLmZpbHRlcigoY2hvaWNlOmFueSkgPT4gdGhpcy5leHRyYWN0KGNob2ljZS50aXRsZSkubGVuZ3RoICE9PSAwKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgRVJST1JfQVJSQVkub25lQ2hvaWNlICA9IHttZXNzYWdlOiAnUGxlYXNlIGFkZCBhdCBsZWFzdCBvbmUgdGV4dGJveC4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmNoZWNrRm9yU2FtZVRpdGxlV2l0aE90aGVyKHF1ZXN0aW9uKSkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5zYW1lQ2hvaWNlICAgPSB7bWVzc2FnZTogJ1R3byB0ZXh0Ym94ZXMgY2Fubm90IGhhdmUgc2FtZSBsYWJlbC4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogVmFsaWRhdGVTdHJ1Y3R1cmU7XHJcbiAgICBpZiAodmFsaWRTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgcXVlc3Rpb24uZXJyb3JBcnJheSA9IEVSUk9SX0FSUkFZO1xyXG4gICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IGZhbHNlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB7dmFsaWQ6IHRydWUsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlU2xpZGVyKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgY29uc3QgbWluaW11bSA9IHBhcnNlSW50KHF1ZXN0aW9uLnNjYWxlUmFuZ2VNaW4sIDEwKTtcclxuICAgIGNvbnN0IG1heGltdW0gPSBwYXJzZUludChxdWVzdGlvbi5zY2FsZVJhbmdlTWF4LCAxMCk7XHJcbiAgICBjb25zdCBzdGVwU2l6ZSA9IHF1ZXN0aW9uLnN0ZXBTaXplO1xyXG4gICAgY29uc3QgdGhyZXNob2xkID0gMDtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtaW5pbXVtID49IG1heGltdW0pIHtcclxuICAgICAgRVJST1JfQVJSQVkubWluRXJyb3IgID0ge21lc3NhZ2U6IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBzbWFsbGVyIHRoYW4gJHttYXhpbXVtfS5gfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4aW11bSA8PSBtaW5pbXVtKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm1pbkVycm9yICA9IHttZXNzYWdlOiBgUGxlYXNlIGVudGVyIGEgdmFsdWUgZ3JlYXRlciB0aGFuICR7bWF4aW11bX0uYH07XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0ZXBTaXplID4gbWF4aW11bSkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5zdGVwRXJyb3IgID0ge21lc3NhZ2U6IGBUaGUgcmFuZ2UgZm9yIHRoZSBzbGlkZXIgdmFsdWVzIGFyZSB3aXRoaW4gJHttaW5pbXVtfS0ke21heGltdW19LiBQbGVhc2Ugc2VsZWN0IGEgc3RlcCBzaXplIHdpdGhpbiB0aGlzIHJhbmdlLmB9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGlmIChzdGVwU2l6ZSA8PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnN0ZXBFcnJvciAgPSB7bWVzc2FnZTogYFBsZWFzZSBlbnRlciBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAke3RocmVzaG9sZH0uYCB9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHZhbGlkYXRlU3RhclJhdGluZyhxdWVzdGlvbjphbnkpOiBWYWxpZGF0ZVN0cnVjdHVyZSB7XHJcbiAgICBkZWxldGUgcXVlc3Rpb24uZXJyb3JBcnJheTtcclxuICAgIGNvbnN0IHZhbGlkU3RhdHVzID0gW107XHJcbiAgICBjb25zdCBFUlJPUl9BUlJBWTogRXJyb3IgPSB7fTtcclxuICAgIGlmICh0aGlzLmV4dHJhY3QocXVlc3Rpb24udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBFUlJPUl9BUlJBWS5xdWVzdGlvbk1pc3NpbmcgPSB7bWVzc2FnZTogJ1BsZWFzZSBlbnRlciB0aGUgcXVlc3Rpb24uJ307XHJcbiAgICAgIHZhbGlkU3RhdHVzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID09PSB0cnVlICYmIHRoaXMuZXh0cmFjdChxdWVzdGlvbi5kZXNjcmlwdGlvbikubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHF1ZXN0aW9uLmhhc0Rlc2NyaXB0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzQ29tbWVudHMgPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmNvbW1lbnRzKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzQ29tbWVudHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNSYXRpbmdMYWJlbCkge1xyXG4gICAgICBpZiAocXVlc3Rpb24ucmF0aW5nTGFiZWxUeXBlID09PSAnc2NhbGUnICYmIHF1ZXN0aW9uLnNjYWxlUmFuZ2VGcm9tID09PSAnJyAmJiBxdWVzdGlvbi5zY2FsZVJhbmdlVG8gPT09ICcnKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uaGFzUmF0aW5nTGFiZWwgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHZhbGlkYXRpb25SZXN1bHQ6IFZhbGlkYXRlU3RydWN0dXJlO1xyXG4gICAgaWYgKHZhbGlkU3RhdHVzLmluY2x1ZGVzKGZhbHNlKSkge1xyXG4gICAgIHF1ZXN0aW9uLmVycm9yQXJyYXkgPSBFUlJPUl9BUlJBWTtcclxuICAgICB2YWxpZGF0aW9uUmVzdWx0ID0ge3ZhbGlkOiBmYWxzZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0ge3ZhbGlkOiB0cnVlLCBlcnJvcjogRVJST1JfQVJSQVksIHF1ZXN0aW9ufTtcclxuICAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVJhdGluZ1NjYWxlKHF1ZXN0aW9uOmFueSk6IFZhbGlkYXRlU3RydWN0dXJlIHtcclxuICAgIGRlbGV0ZSBxdWVzdGlvbi5lcnJvckFycmF5O1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBbXTtcclxuICAgIGNvbnN0IEVSUk9SX0FSUkFZOiBFcnJvciA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZXh0cmFjdChxdWVzdGlvbi50aXRsZSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLnF1ZXN0aW9uTWlzc2luZyA9IHttZXNzYWdlOiAnUGxlYXNlIGVudGVyIHRoZSBxdWVzdGlvbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPT09IHRydWUgJiYgdGhpcy5leHRyYWN0KHF1ZXN0aW9uLmRlc2NyaXB0aW9uKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcXVlc3Rpb24uaGFzRGVzY3JpcHRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChxdWVzdGlvbi5oYXNDb21tZW50cyA9PT0gdHJ1ZSAmJiB0aGlzLmV4dHJhY3QocXVlc3Rpb24uY29tbWVudHMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBxdWVzdGlvbi5oYXNDb21tZW50cyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzKSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAxICYmIHRoaXMuZXh0cmFjdChjaG9pY2UudGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkub25lUm93ICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgcm93Lid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uLmNob2ljZXMgPVxyXG4gICAgICAgICAgcXVlc3Rpb24uY2hvaWNlcy5maWx0ZXIoKHNlbGVjdGVkQ2hvaWNlOmFueSkgPT5cclxuICAgICAgICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLmNob2ljZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgcXVlc3Rpb24uY2hvaWNlcy5wdXNoKCB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycgfSwgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm9uZVJvdyAgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIHJvdy4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY2hvaWNlcykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gcm93cyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocXVlc3Rpb24uY29sdW1ucyAhPT0gdW5kZWZpbmVkICYmIHF1ZXN0aW9uLmNvbHVtbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBxdWVzdGlvbi5jb2x1bW5zKSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uLmNvbHVtbnMubGVuZ3RoID09PSAxICYmIHRoaXMuZXh0cmFjdChjb2x1bW4udGl0bGUpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgRVJST1JfQVJSQVkub25lQ29sICAgPSB7bWVzc2FnZTogJ1lvdSBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgY29sdW1uLid9O1xyXG4gICAgICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHF1ZXN0aW9uLmNvbHVtbnMgPVxyXG4gICAgcXVlc3Rpb24uY29sdW1ucy5maWx0ZXIoKHNlbGVjdGVkQ2hvaWNlOmFueSkgPT5cclxuICAgICAgdGhpcy5leHRyYWN0KHNlbGVjdGVkQ2hvaWNlLnRpdGxlKS5sZW5ndGggIT09IDApO1xyXG4gICAgICAgICAgaWYgKHF1ZXN0aW9uLmNvbHVtbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcXVlc3Rpb24uY29sdW1ucy5wdXNoKCB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycgfSwgKTtcclxuICAgICAgfVxyXG5cclxuICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIEVSUk9SX0FSUkFZLm9uZUNvbCAgID0ge21lc3NhZ2U6ICdZb3UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbi4nfTtcclxuICAgICAgdmFsaWRTdGF0dXMucHVzaChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JTYW1lVGl0bGUocXVlc3Rpb24uY29sdW1ucykpIHtcclxuICAgICAgRVJST1JfQVJSQVkuc2FtZUNob2ljZSAgID0ge21lc3NhZ2U6ICdUd28gY29sdW1ucyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9O1xyXG4gICAgICB2YWxpZFN0YXR1cy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGxldCB2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0ZVN0cnVjdHVyZTtcclxuICAgIGlmICh2YWxpZFN0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICBxdWVzdGlvbi5lcnJvckFycmF5ID0gRVJST1JfQVJSQVk7XHJcbiAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogZmFsc2UsIGVycm9yOiBFUlJPUl9BUlJBWSwgcXVlc3Rpb259O1xyXG4gICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHt2YWxpZDogdHJ1ZSwgZXJyb3I6IEVSUk9SX0FSUkFZLCBxdWVzdGlvbn07XHJcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBFeHRyYWN0cyB0aGUgdGV4dCBmcm9tIGEgcGFydGljdWxhciBodG1sIGNvbnRlbnRcclxuICAgKiBAcGFyYW0gcyBodG1sIGNvbnRlbnQgZnJvbSB3aGljaCB0ZXh0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZFxyXG4gICAqL1xyXG4gICAgZXh0cmFjdChzOmFueSkge1xyXG4gICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHNwYW4uaW5uZXJIVE1MID0gcztcclxuICAgIHJldHVybiBzcGFuLnRleHRDb250ZW50IHx8IHNwYW4uaW5uZXJUZXh0O1xyXG4gIH1cclxuICAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRpdGxlIG9mIHR3byBjaG9pY2VzIGlzIHNhbWUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNob2ljZXMgQ2hvaWNlIGZvciB3aGljaCB0aXRsZSBzaG91bGQgYmUgY2hlY2tlZFxyXG4gICAqL1xyXG4gIGNoZWNrRm9yU2FtZVRpdGxlKGNob2ljZXM6YW55KSB7XHJcbiAgICBjb25zdCB0aXRsZSA9IGNob2ljZXMubWFwKChkYXRhOmFueSkgPT4gZGF0YS50aXRsZSk7XHJcbiAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBjaG9pY2VzKSB7XHJcbiAgICAgIGNvbnN0IHNhbWVUaXRsZSA9IGNsb25lRGVlcCh0aXRsZSkuZmlsdGVyKChkYXRhOmFueSkgPT4gZGF0YSA9PT0gY2hvaWNlLnRpdGxlKTtcclxuICAgICAgaWYgKHNhbWVUaXRsZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRpdGxlIG9mIHR3byBjaG9pY2VzIGlzIHNhbWUgb3Igbm90XHJcbiAgICogQHBhcmFtIGNob2ljZXMgQ2hvaWNlIGZvciB3aGljaCB0aXRsZSBzaG91bGQgYmUgY2hlY2tlZFxyXG4gICAqL1xyXG4gIGNoZWNrRm9yU2FtZVRpdGxlV2l0aE90aGVyKHF1ZXN0aW9uRGV0YWlsczogYW55KSB7XHJcbiAgICBjb25zdCB0aXRsZSA9IHF1ZXN0aW9uRGV0YWlscy5jaG9pY2VzLm1hcCgoZGF0YTogeyB0aXRsZTogc3RyaW5nOyB9KSA9PiBkYXRhLnRpdGxlLnRyaW0oKSk7XHJcbiAgICBcclxuICAgIGZvciAoY29uc3QgY2hvaWNlIG9mIHF1ZXN0aW9uRGV0YWlscy5jaG9pY2VzKSB7XHJcbiAgICAgIGNvbnN0IHNhbWVUaXRsZSA9IGNsb25lRGVlcCh0aXRsZSkuZmlsdGVyKChkYXRhOiBzdHJpbmcpID0+IGRhdGEgPT09IGNob2ljZS50aXRsZS50cmltKCkpO1xyXG4gICAgICBpZiAoc2FtZVRpdGxlLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uRGV0YWlscy5oYXNPdGhlciAmJiBjaG9pY2UudGl0bGUudHJpbSgpID09PSBxdWVzdGlvbkRldGFpbHMub3RoZXJWYWx1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|