@junte/ui
Version:
Quality Angular UI components kit
35 lines • 70.6 kB
JavaScript
/**
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
*
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
* tslint:disable
*/
import * as i0 from "@angular/core";
import * as i1 from "./gantt.module";
import * as i2 from "../../elements/icon/icon.component.ngfactory";
import * as i3 from "../../layout/stack/stack.component.ngfactory";
import * as i4 from "../../layout/skeleton/skeleton.component.ngfactory";
import * as i5 from "../../elements/badge/badge.component.ngfactory";
import * as i6 from "../../layout/spinner/spinner.component.ngfactory";
import * as i7 from "../../forms/button/button.component.ngfactory";
import * as i8 from "../../forms/button/group/button-group.component.ngfactory";
import * as i9 from "../../navigation/accordion/section/accordion-section.component.ngfactory";
import * as i10 from "@angular/common";
import * as i11 from "@angular/common/http";
import * as i12 from "../../layout/responsive/breakpoint.service";
import * as i13 from "../../layout/responsive/device.service";
import * as i14 from "./gantt-pipes.module";
import * as i15 from "../../core/pipes/array-pipes.module";
import * as i16 from "../../core/pipes/date-pipes.module";
import * as i17 from "../../elements/icon/icon.module";
import * as i18 from "../../layout/stack/stack.module";
import * as i19 from "../../layout/skeleton/skeleton.module";
import * as i20 from "../../layout/responsive/responsive.module";
import * as i21 from "../../core/pipes/color-pipes.module";
import * as i22 from "../../elements/badge/badge.module";
import * as i23 from "../../layout/spinner/spinner.module";
import * as i24 from "../../forms/button/button.module";
import * as i25 from "../../navigation/accordion/accordion.module";
var GanttModuleNgFactory = i0.ɵcmf(i1.GanttModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.IconComponentNgFactory, i3.StackComponentNgFactory, i4.SkeletonComponentNgFactory, i5.BadgeComponentNgFactory, i6.SpinnerComponentNgFactory, i7.ButtonComponentNgFactory, i8.ButtonGroupComponentNgFactory, i9.AccordionSectionComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i10.NgLocalization, i10.NgLocaleLocalization, [i0.LOCALE_ID]), i0.ɵmpd(4608, i11.HttpXsrfTokenExtractor, i11.ɵangular_packages_common_http_http_g, [i10.DOCUMENT, i0.PLATFORM_ID, i11.ɵangular_packages_common_http_http_e]), i0.ɵmpd(4608, i11.ɵangular_packages_common_http_http_h, i11.ɵangular_packages_common_http_http_h, [i11.HttpXsrfTokenExtractor, i11.ɵangular_packages_common_http_http_f]), i0.ɵmpd(5120, i11.HTTP_INTERCEPTORS, function (p0_0) { return [p0_0]; }, [i11.ɵangular_packages_common_http_http_h]), i0.ɵmpd(4608, i11.ɵangular_packages_common_http_http_d, i11.ɵangular_packages_common_http_http_d, []), i0.ɵmpd(6144, i11.XhrFactory, null, [i11.ɵangular_packages_common_http_http_d]), i0.ɵmpd(4608, i11.HttpXhrBackend, i11.HttpXhrBackend, [i11.XhrFactory]), i0.ɵmpd(6144, i11.HttpBackend, null, [i11.HttpXhrBackend]), i0.ɵmpd(4608, i11.HttpHandler, i11.ɵHttpInterceptingHandler, [i11.HttpBackend, i0.Injector]), i0.ɵmpd(4608, i11.HttpClient, i11.HttpClient, [i11.HttpHandler]), i0.ɵmpd(4608, i12.BreakpointService, i12.BreakpointService, [i0.NgZone]), i0.ɵmpd(4608, i13.DeviceService, i13.DeviceService, []), i0.ɵmpd(1073742336, i10.CommonModule, i10.CommonModule, []), i0.ɵmpd(1073742336, i14.GanttPipesModule, i14.GanttPipesModule, []), i0.ɵmpd(1073742336, i15.ArrayPipesModule, i15.ArrayPipesModule, []), i0.ɵmpd(1073742336, i16.DatePipesModule, i16.DatePipesModule, []), i0.ɵmpd(1073742336, i11.HttpClientXsrfModule, i11.HttpClientXsrfModule, []), i0.ɵmpd(1073742336, i11.HttpClientModule, i11.HttpClientModule, []), i0.ɵmpd(1073742336, i17.IconModule, i17.IconModule, []), i0.ɵmpd(1073742336, i18.StackModule, i18.StackModule, []), i0.ɵmpd(1073742336, i19.SkeletonModule, i19.SkeletonModule, []), i0.ɵmpd(1073742336, i20.ResponsiveModule, i20.ResponsiveModule, []), i0.ɵmpd(1073742336, i21.ColorPipesModule, i21.ColorPipesModule, []), i0.ɵmpd(1073742336, i22.BadgeModule, i22.BadgeModule, []), i0.ɵmpd(1073742336, i23.SpinnerModule, i23.SpinnerModule, []), i0.ɵmpd(1073742336, i24.ButtonModule, i24.ButtonModule, []), i0.ɵmpd(1073742336, i25.AccordionModule, i25.AccordionModule, []), i0.ɵmpd(1073742336, i1.GanttModule, i1.GanttModule, []), i0.ɵmpd(256, i11.ɵangular_packages_common_http_http_e, "XSRF-TOKEN", []), i0.ɵmpd(256, i11.ɵangular_packages_common_http_http_f, "X-XSRF-TOKEN", [])]); });
export { GanttModuleNgFactory as GanttModuleNgFactory };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9jb2xsZWN0aW9ucy9nYW50dC9nYW50dC5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vZ2FudHQubW9kdWxlJztcbmltcG9ydCAqIGFzIGkyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBpMyBmcm9tICcuLi8uLi9lbGVtZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk0IGZyb20gJy4uLy4uL2xheW91dC9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi4vLi4vbGF5b3V0L3Jlc3BvbnNpdmUvcmVzcG9uc2l2ZS5kaXJlY3RpdmVzJztcbmltcG9ydCAqIGFzIGk2IGZyb20gJy4uLy4uL2xheW91dC9yZXNwb25zaXZlL2RldmljZS5kaXJlY3RpdmVzJztcbmltcG9ydCAqIGFzIGk3IGZyb20gJy4uLy4uL2Zvcm1zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk4IGZyb20gJy4uLy4uL2Zvcm1zL2J1dHRvbi9ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk5IGZyb20gJy4uLy4uL25hdmlnYXRpb24vYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEwIGZyb20gJy4uLy4uL25hdmlnYXRpb24vYWNjb3JkaW9uL3NlY3Rpb24vYWNjb3JkaW9uLXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxMSBmcm9tICcuLi8uLi9sYXlvdXQvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTIgZnJvbSAnLi4vLi4vbGF5b3V0L3N0YWNrL3N0YWNrLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi9nYW50dC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE0IGZyb20gJy4vZ2FudHQtbGluZS9nYW50dC1saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi9nYW50dC1saW5lLXBlcmlvZC9nYW50dC1saW5lLXBlcmlvZC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE2IGZyb20gJy4vZ2FudHQtcGlwZXMvbW9udGgtbmFtZS5waXBlJztcbmltcG9ydCAqIGFzIGkxNyBmcm9tICcuL2dhbnR0LXBpcGVzL2Z1bGwtbW9udGgucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTggZnJvbSAnLi9nYW50dC1waXBlcy9kYXRlcy1pbi1tb250aC5waXBlJztcbmltcG9ydCAqIGFzIGkxOSBmcm9tICcuL2dhbnR0LXBpcGVzL2JldHdlZW4tZGF5cy5waXBlJztcbmltcG9ydCAqIGFzIGkyMCBmcm9tICcuL2dhbnR0LXBpcGVzL2JldHdlZW4tbW9udGhzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTIxIGZyb20gJy4vZ2FudHQtcGlwZXMvaXMtd2l0aGluLWludGVydmFsLnBpcGUnO1xuaW1wb3J0ICogYXMgaTIyIGZyb20gJy4vZ2FudHQtcGlwZXMvaXMtc2FtZS1kYXkucGlwZSc7XG5pbXBvcnQgKiBhcyBpMjMgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9hcnJheS9tb2NrLWFycmF5LnBpcGUnO1xuaW1wb3J0ICogYXMgaTI0IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvYXJyYXkvam9pbi5waXBlJztcbmltcG9ydCAqIGFzIGkyNSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2FycmF5L2luY2x1ZGVzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTI2IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvYXJyYXkvcG9wLnBpcGUnO1xuaW1wb3J0ICogYXMgaTI3IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvYXJyYXkvZmlsdGVyLWVtcHR5LnBpcGUnO1xuaW1wb3J0ICogYXMgaTI4IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvZGF0ZS9mb3JtYXQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMjkgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2RpZmZlcmVuY2UtaW4tY2FsZW5kYXItZGF5cy5waXBlJztcbmltcG9ydCAqIGFzIGkzMCBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvc3RhcnQtb2YtZGF5LnBpcGUnO1xuaW1wb3J0ICogYXMgaTMxIGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvZGF0ZS9zdGFydC1vZi1tb250aC5waXBlJztcbmltcG9ydCAqIGFzIGkzMiBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvc3RhcnQtb2YteWVhci5waXBlJztcbmltcG9ydCAqIGFzIGkzMyBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvc3RhcnQtb2Ytd2Vlay5waXBlJztcbmltcG9ydCAqIGFzIGkzNCBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvZW5kLW9mLWRheS5waXBlJztcbmltcG9ydCAqIGFzIGkzNSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvZW5kLW9mLW1vbnRoLnBpcGUnO1xuaW1wb3J0ICogYXMgaTM2IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvZGF0ZS9lbmQtb2YteWVhci5waXBlJztcbmltcG9ydCAqIGFzIGkzNyBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvZW5kLW9mLXdlZWsucGlwZSc7XG5pbXBvcnQgKiBhcyBpMzggZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2dldC1kYXlzLWluLW1vbnRoLnBpcGUnO1xuaW1wb3J0ICogYXMgaTM5IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvZGF0ZS9nZXQtZGF0ZS5waXBlJztcbmltcG9ydCAqIGFzIGk0MCBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvaXMtYWZ0ZXIucGlwZSc7XG5pbXBvcnQgKiBhcyBpNDEgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2lzLWJlZm9yZS5waXBlJztcbmltcG9ydCAqIGFzIGk0MiBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvaXMtZXF1YWwucGlwZSc7XG5pbXBvcnQgKiBhcyBpNDMgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2lzLXNhbWUtbW9udGgucGlwZSc7XG5pbXBvcnQgKiBhcyBpNDQgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2lzLXNhbWUteWVhci5waXBlJztcbmltcG9ydCAqIGFzIGk0NSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvaXMtdG9kYXkucGlwZSc7XG5pbXBvcnQgKiBhcyBpNDYgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2lzLXdlZWtlbmQucGlwZSc7XG5pbXBvcnQgKiBhcyBpNDcgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL21heC5waXBlJztcbmltcG9ydCAqIGFzIGk0OCBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvbWluLnBpcGUnO1xuaW1wb3J0ICogYXMgaTQ5IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvZGF0ZS93ZWVrZGF5LW5hbWUucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTAgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2lzLXRoaXMtbW9udGgucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTEgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2lzLXRoaXMteWVhci5waXBlJztcbmltcG9ydCAqIGFzIGk1MiBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvYWRkLW1vbnRocy5waXBlJztcbmltcG9ydCAqIGFzIGk1MyBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvc3ViLW1vbnRocy5waXBlJztcbmltcG9ydCAqIGFzIGk1NCBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2RhdGUvYWRkLXllYXJzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU1IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvZGF0ZS9zdWIteWVhcnMucGlwZSc7XG5pbXBvcnQgKiBhcyBpNTYgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlL2dldC15ZWFyLnBpcGUnO1xuaW1wb3J0ICogYXMgaTU3IGZyb20gJy4vZ2FudHQtcGlwZXMubW9kdWxlJztcbmltcG9ydCAqIGFzIGk1OCBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL2FycmF5LXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNTkgZnJvbSAnLi4vLi4vY29yZS9waXBlcy9kYXRlLXBpcGVzLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNjAgZnJvbSAnLi4vLi4vZWxlbWVudHMvaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNjEgZnJvbSAnLi4vLi4vbGF5b3V0L3NrZWxldG9uL3NrZWxldG9uLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNjIgZnJvbSAnLi4vLi4vbGF5b3V0L3Jlc3BvbnNpdmUvcmVzcG9uc2l2ZS5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTYzIGZyb20gJy4uLy4uL2Zvcm1zL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2NCBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL2FjY29yZGlvbi9hY2NvcmRpb24ubW9kdWxlJztcbmltcG9ydCAqIGFzIGk2NSBmcm9tICcuLi8uLi9sYXlvdXQvc3Bpbm5lci9zcGlubmVyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpNjYgZnJvbSAnLi4vLi4vbGF5b3V0L3N0YWNrL3N0YWNrLm1vZHVsZSc7XG5leHBvcnQgY29uc3QgR2FudHRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLkdhbnR0TW9kdWxlPiA9IChudWxsIGFzIGFueSk7XG52YXIgX2RlY2wwXzA6aTIuTmdDbGFzcyA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOmkyLk5nQ29tcG9uZW50T3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI6aTIuTmdGb3JPZjxhbnksYW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOmkyLk5nSWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OmkyLk5nVGVtcGxhdGVPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTppMi5OZ1N0eWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY6aTIuTmdTd2l0Y2ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzppMi5OZ1N3aXRjaENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODppMi5OZ1N3aXRjaERlZmF1bHQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTppMi5OZ1BsdXJhbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDppMi5OZ1BsdXJhbENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE6aTMuSWNvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjppNC5Ta2VsZXRvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzppNS5Gb3JEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ6aTUuRm9yTWluRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1Omk1LkZvck1heERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppNi5Gb3JNb2JpbGVEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTYuRm9ySU9TUGxhdGZvcm1EaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTYuRm9yQW5kcm9pZFBsYXRmb3JtRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5Omk2LkZvckRlc2t0b3BEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTcuQnV0dG9uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmk4LkJ1dHRvbkdyb3VwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIyOmk5LkFjY29yZGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMzppMTAuQWNjb3JkaW9uU2VjdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMTEuU3Bpbm5lckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMTIuU3RhY2tDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjY6aTEzLkdhbnR0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI3OmkxNC5HYW50dExpbmVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTE1LkdhbnR0TGluZVBlcmlvZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOTppMi5Bc3luY1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTIuVXBwZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppMi5Mb3dlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkyLkpzb25QaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMzOmkyLlNsaWNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNDppMi5EZWNpbWFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNTppMi5QZXJjZW50UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppMi5UaXRsZUNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM3OmkyLkN1cnJlbmN5UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zODppMi5EYXRlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOTppMi5JMThuUGx1cmFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMi5JMThuU2VsZWN0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MTppMi5LZXlWYWx1ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDI6aTE2Lk1vbnRoTmFtZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDM6aTE3LkZ1bGxNb250aFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTE4LkRhdGVzSW5Nb250aFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDU6aTE5LkJldHdlZW5EYXlzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMjAuQmV0d2Vlbk1vbnRoc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDc6aTIxLklzV2l0aGluSW50ZXJ2YWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ4OmkyMi5Jc1NhbWVEYXlQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ5OmkyMy5Nb2NrQXJyYXlQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUwOmkyNC5Kb2luUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MTppMjUuSW5jbHVkZXNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUyOmkyNi5Qb3BQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmkyNy5GaWx0ZXJFbXB0eVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTI4LkZvcm1hdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTU6aTI5LkRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5c1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTMwLlN0YXJ0T2ZEYXlQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU3OmkzMS5TdGFydE9mTW9udGhQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU4OmkzMi5TdGFydE9mWWVhclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTk6aTMzLlN0YXJ0T2ZXZWVrUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MDppMzQuRW5kT2ZEYXlQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYxOmkzNS5FbmRPZk1vbnRoUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MjppMzYuRW5kT2ZZZWFyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MzppMzcuRW5kT2ZXZWVrUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NDppMzguR2V0RGF5c0luTW9udGhQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY1OmkzOS5HZXREYXRlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NjppNDAuSXNBZnRlclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjc6aTQxLklzQmVmb3JlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82ODppNDIuSXNFcXVhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjk6aTQzLklzU2FtZU1vbnRoUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83MDppNDQuSXNTYW1lWWVhclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzE6aTQ1LklzVG9kYXlQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzcyOmk0Ni5Jc1dlZWtlbmRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzczOmk0Ny5NYXhQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc0Omk0OC5NaW5QaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc1Omk0OS5XZWVrZGF5TmFtZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzY6aTUwLklzVGhpc01vbnRoUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83NzppNTEuSXNUaGlzWWVhclBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzg6aTUyLkFkZE1vbnRoc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzk6aTUzLlN1Yk1vbnRoc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODA6aTU0LkFkZFllYXJzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MTppNTUuU3ViWWVhcnNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzgyOmk1Ni5HZXRZZWFyUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84MzppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODQ6aTU3LkdhbnR0UGlwZXNNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODU6aTU4LkFycmF5UGlwZXNNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODY6aTU5LkRhdGVQaXBlc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84NzppNjAuSWNvbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84ODppNjEuU2tlbGV0b25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODk6aTYyLlJlc3BvbnNpdmVNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTA6aTYzLkJ1dHRvbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85MTppNjQuQWNjb3JkaW9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkyOmk2NS5TcGlubmVyTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzkzOmk2Ni5TdGFja01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85NDppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk1OmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfSG9zdF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8yNi5ob3N0O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMjYud2lkdGg7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgcGRfMjphbnkgPSAoKDxhbnk+X2RlY2wwXzI2Lm9uQmx1cigpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8yKCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMjYubG9hZGluZykge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfNjQudHJhbnNmb3JtKF9kZWNsMF8yNi5jdXJyZW50KSArIDIpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzI2LnVpLnNrZWxldG9uLnR5cGUudGV4dDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IDg7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTIuaG9zdDtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMi5fc2l6ZTtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMi50eXBlO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzEyLmFuaW1hdGVkO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8zKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzY0LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCkgKyAxKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzI2LnVpLmljb25zLm5ldXRyYWw7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMS5ob3N0O1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTEuX3NpemU7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMS5faWNvbjtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzExLnR5cGU7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMS50YWdzO1xuICBjdXJyVmFsXzY7XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8yNi5sb2FkaW5nO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfOTQ7XG4gIGN1cnJWYWxfMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfNCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV81KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfYW55O1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzYoKTp2b2lkIHtcbiAgaWYgKCghIV9kZWNsMF8yNi5saW5lcy5sZW5ndGggJiYgX2RlY2wwXzI2LmxvYWRpbmcpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzI2LnVpLnNpemUubGFyZ2U7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMjQuaG9zdDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8yNC5fc2l6ZTtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMTAoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8yNi50b29sc1RlbXBsYXRlKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfOSgpOnZvaWQge1xuICBpZiAoX2RlY2wwXzI2LnRvb2xzVGVtcGxhdGUpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMjYudG9vbHNUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMTEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMTIoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF80Mi50cmFuc2Zvcm0oX2FueSk7XG4gIGN1cnJWYWxfMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMTYoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzE3KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8xNSgpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge3RpdGxlOl9hbnkudGl0bGV9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9hbnkudGl0bGVUZW1wbGF0ZSB8fCBfZGVjbDBfOTQpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzQ0LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCk7XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzIxKCk6dm9pZCB7XG4gIGlmICgoKCgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSAmJiAoKChfYW55LnBlcmlvZHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9hbnkucGVyaW9kcy5sZW5ndGgpID4gMCkpICYmIChfYW55ID09PSAwKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8yMCgpOnZvaWQge1xuICBpZiAoKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiAoX2FueSA9PT0gMCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueS5wZXJpb2RzLmxlbmd0aDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9hbnkucGVyaW9kcy5sZW5ndGg7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSB7dGl0bGU6X2FueS50aXRsZX07XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2FueS50aXRsZVRlbXBsYXRlIHx8IF9kZWNsMF85NCk7XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzIzKCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApICYmICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8yNSgpOnZvaWQge1xuICBpZiAoKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiAhKF9kZWNsMF82Ny50cmFuc2Zvcm0oX2FueS50byxcbiAgICAgIF9hbnkpIHx8IF9kZWNsMF82Ni50cmFuc2Zvcm0oX2FueS5mcm9tLF9hbnkpKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8yNCgpOnZvaWQge1xuICBpZiAoKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiAhKF9kZWNsMF82Ny50cmFuc2Zvcm0oX2FueS50byxcbiAgICAgIF9hbnkpIHx8IF9kZWNsMF82Ni50cmFuc2Zvcm0oX2FueS5mcm9tLF9hbnkpKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSB7cGVyaW9kOl9hbnksY3VycmVudDpfZGVjbDBfMjYuY3VycmVudCx0b2RheTpfZGVjbDBfMjYudG9kYXl9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueS5pbmRpY2F0b3JZZWFyVGVtcGxhdGU7XG4gICAgY3VyclZhbF8xO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzI2KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApICYmICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8yMigpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSAmJiAoKChfYW55LnBlcmlvZHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9hbnkucGVyaW9kcy5sZW5ndGgpID4gMCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzUyLnRyYW5zZm9ybShfZGVjbDBfNDYudHJhbnNmb3JtKF9hbnksX2FueSkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzQ2LnRyYW5zZm9ybShfYW55LF9hbnkpLmxlbmd0aDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICEoX2RlY2wwXzY3LnRyYW5zZm9ybShfYW55LnRvLF9hbnkpIHx8IF9kZWNsMF82Ni50cmFuc2Zvcm0oX2FueS5mcm9tLFxuICAgICAgICBfYW55KSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF80Ni50cmFuc2Zvcm0oX2FueSxfYW55KSk7XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzI3KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApICYmICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8xOSgpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSAmJiAoKChfYW55LnBlcmlvZHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9hbnkucGVyaW9kcy5sZW5ndGgpID4gMCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9hbnkgPT09IDApO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0ge3N0YXJ0Ol9kZWNsMF81OC50cmFuc2Zvcm0oX2RlY2wwXzI2LmN1cnJlbnQpLGVuZDpfZGVjbDBfNjIudHJhbnNmb3JtKF9kZWNsMF8yNi5jdXJyZW50KSxcbiAgICAgICAgcGVyaW9kOl9hbnksY3VycmVudDpfZGVjbDBfMjYuY3VycmVudCxmcm9tOl9kZWNsMF83NC50cmFuc2Zvcm0oW19kZWNsMF83My50cmFuc2Zvcm0oW19hbnkuZnJvbSxcbiAgICAgICAgICAgIF9kZWNsMF81OC50cmFuc2Zvcm0oX2RlY2wwXzI2LmN1cnJlbnQpXSksX2RlY2wwXzYyLnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCldKSxcbiAgICAgICAgdG86X2RlY2wwXzczLnRyYW5zZm9ybShbX2RlY2wwXzc0LnRyYW5zZm9ybShbX2FueS50byxfZGVjbDBfNjIudHJhbnNmb3JtKF9kZWNsMF8yNi5jdXJyZW50KV0pLFxuICAgICAgICAgICAgX2RlY2wwXzU4LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCldKX07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfOTQ7XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzE4KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApICYmICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfYW55LnBlcmlvZHM7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzE0KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKChfYW55LnBlcmlvZHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9hbnkucGVyaW9kcy5sZW5ndGgpID4gMCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfOTQ7XG4gICAgY3VyclZhbF8xO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzEzKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMjYubGluZXM7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzgoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IDA7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8yNi50b29sc1RlbXBsYXRlO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAxMjtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzI2LnVpLmljb25zLmNoZXZyb25MZWZ0O1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMjYudWkuc2NoZW1lLnNlY29uZGFyeTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzI2LnVpLnNpemUuc21hbGw7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8yNi51aS5vdXRsaW5lLnRyYW5zcGFyZW50O1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMjAuaG9zdDtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzIwLl9zY2hlbWU7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8yMC5fc2l6ZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8yMC5fb3V0bGluZTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSBfZGVjbDBfMjAuX3dpZHRoO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8yMC5fc2hhcGU7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzIwLmxvYWRpbmc7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gX2RlY2wwXzIwLndpdGhUZXh0O1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IF9kZWNsMF8yMC5kaXNhYmxlO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzI2LmN1cnJlbnQsJ3l5eXknKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBfZGVjbDBfMjYudWkuaWNvbnMuY2hldnJvblJpZ2h0O1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8yNi51aS5zY2hlbWUuc2Vjb25kYXJ5O1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IF9kZWNsMF8yNi51aS5zaXplLnNtYWxsO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IF9kZWNsMF8yNi51aS5vdXRsaW5lLnRyYW5zcGFyZW50O1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9IF9kZWNsMF8yMC5ob3N0O1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9IF9kZWNsMF8yMC5fc2NoZW1lO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBjdXJyVmFsXzIzOmFueSA9IF9kZWNsMF8yMC5fc2l6ZTtcbiAgY3VyclZhbF8yMztcbiAgY29uc3QgY3VyclZhbF8yNDphbnkgPSBfZGVjbDBfMjAuX291dGxpbmU7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gX2RlY2wwXzIwLl93aWR0aDtcbiAgY3VyclZhbF8yNTtcbiAgY29uc3QgY3VyclZhbF8yNjphbnkgPSBfZGVjbDBfMjAuX3NoYXBlO1xuICBjdXJyVmFsXzI2O1xuICBjb25zdCBjdXJyVmFsXzI3OmFueSA9IF9kZWNsMF8yMC5sb2FkaW5nO1xuICBjdXJyVmFsXzI3O1xuICBjb25zdCBjdXJyVmFsXzI4OmFueSA9IF9kZWNsMF8yMC53aXRoVGV4dDtcbiAgY3VyclZhbF8yODtcbiAgY29uc3QgY3VyclZhbF8yOTphbnkgPSBfZGVjbDBfMjAuZGlzYWJsZTtcbiAgY3VyclZhbF8yOTtcbiAgY29uc3QgY3VyclZhbF8zMDphbnkgPSBfZGVjbDBfMjY7XG4gIGN1cnJWYWxfMzA7XG4gIGNvbnN0IGN1cnJWYWxfMzE6YW55ID0gKCEhX2RlY2wwXzI2LnRpdGxlVGVtcGxhdGU/IF9kZWNsMF8yNi50aXRsZVRlbXBsYXRlOiBfZGVjbDBfOTQpO1xuICBjdXJyVmFsXzMxO1xuICBjb25zdCBjdXJyVmFsXzMyOmFueSA9IF9kZWNsMF80Ni50cmFuc2Zvcm0oX2RlY2wwXzU4LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCksXG4gICAgICBfZGVjbDBfNjIudHJhbnNmb3JtKF9kZWNsMF8yNi5jdXJyZW50KSk7XG4gIGN1cnJWYWxfMzI7XG4gIGNvbnN0IGN1cnJWYWxfMzM6YW55ID0gKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApO1xuICBjdXJyVmFsXzMzO1xuICBjb25zdCBjdXJyVmFsXzM0OmFueSA9IF9kZWNsMF85NDtcbiAgY3VyclZhbF8zNDtcbiAgY29uc3QgcGRfMzU6YW55ID0gKCg8YW55PihfZGVjbDBfMjYuY3VycmVudCA9IF9kZWNsMF8yNi5zdWJZZWFycyhfZGVjbDBfMjYuY3VycmVudCxcbiAgICAgIDEpKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzY6YW55ID0gKCg8YW55PihfZGVjbDBfMjYuY3VycmVudCA9IF9kZWNsMF8yNi5hZGRZZWFycyhfZGVjbDBfMjYuY3VycmVudCxcbiAgICAgIDEpKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMzAoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8yNi50b29sc1RlbXBsYXRlKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMjkoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8yNi50b29sc1RlbXBsYXRlKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzI2LnRvb2xzVGVtcGxhdGU7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzM0KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzY0LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCkgKyAxKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8yNi51aS5pY29ucy5uZXV0cmFsO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzExLmhvc3Q7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTEuX3NpemU7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTEuX2ljb247XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTEudHlwZTtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMS50YWdzO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8zOSgpOnZvaWQge1xuICBpZiAoKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiAhX2RlY2wwXzQ3LnRyYW5zZm9ybShfYW55LFxuICAgICAgX2RlY2wwXzU3LnRyYW5zZm9ybShfYW55KSxfZGVjbDBfNjEudHJhbnNmb3JtKF9hbnkpKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV80MigpOnZvaWQge1xuICBpZiAoKCgoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApICYmICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKSkgJiYgX2RlY2wwXzY5LnRyYW5zZm9ybShfYW55LFxuICAgICAgX2FueSkpICYmICEoX2RlY2wwXzY3LnRyYW5zZm9ybShfYW55LnRvLF9hbnkpIHx8IF9kZWNsMF82Ni50cmFuc2Zvcm0oX2FueS5mcm9tLFxuICAgICAgX2FueSkpKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzQxKCk6dm9pZCB7XG4gIGlmICgoKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiBfZGVjbDBfNjkudHJhbnNmb3JtKF9hbnksXG4gICAgICBfYW55KSkgJiYgIShfZGVjbDBfNjcudHJhbnNmb3JtKF9hbnkudG8sX2FueSkgfHwgX2RlY2wwXzY2LnRyYW5zZm9ybShfYW55LmZyb20sXG4gICAgICBfYW55KSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge3BlcmlvZDpfYW55LGN1cnJlbnQ6X2RlY2wwXzI2LmN1cnJlbnQsdG9kYXk6X2RlY2wwXzI2LnRvZGF5fTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9hbnkuaW5kaWNhdG9yWWVhclRlbXBsYXRlO1xuICAgIGN1cnJWYWxfMTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV80MCgpOnZvaWQge1xuICBpZiAoKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiBfZGVjbDBfNjkudHJhbnNmb3JtKF9hbnksXG4gICAgICBfYW55KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNDYudHJhbnNmb3JtKF9hbnksX2FueSkubGVuZ3RoO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfNjcudHJhbnNmb3JtKF9hbnkudG8sX2FueSkgfHwgX2RlY2wwXzY2LnRyYW5zZm9ybShfYW55LmZyb20sXG4gICAgICAgIF9hbnkpKTtcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMzgoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICFfZGVjbDBfNDcudHJhbnNmb3JtKF9hbnksX2RlY2wwXzU3LnRyYW5zZm9ybShfYW55KSxfZGVjbDBfNjEudHJhbnNmb3JtKF9hbnkpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF82OS50cmFuc2Zvcm0oX2FueSxfYW55KTtcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfNDMoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzM3KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApICYmICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSB7c3RhcnQ6X2RlY2wwXzU4LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCksZW5kOl9kZWNsMF82Mi50cmFuc2Zvcm0oX2RlY2wwXzI2LmN1cnJlbnQpLFxuICAgICAgICBwZXJpb2Q6X2FueSxjdXJyZW50Ol9kZWNsMF8yNi5jdXJyZW50LGZyb206X2RlY2wwXzc0LnRyYW5zZm9ybShbX2RlY2wwXzczLnRyYW5zZm9ybShbX2FueS5mcm9tLFxuICAgICAgICAgICAgX2RlY2wwXzU4LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCldKSxfZGVjbDBfNjIudHJhbnNmb3JtKF9kZWNsMF8yNi5jdXJyZW50KV0pLFxuICAgICAgICB0bzpfZGVjbDBfNzMudHJhbnNmb3JtKFtfZGVjbDBfNzQudHJhbnNmb3JtKFtfYW55LnRvLF9kZWNsMF82Mi50cmFuc2Zvcm0oX2RlY2wwXzI2LmN1cnJlbnQpXSksXG4gICAgICAgICAgICBfZGVjbDBfNTgudHJhbnNmb3JtKF9kZWNsMF8yNi5jdXJyZW50KV0pfTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF85NDtcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMzYoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNDIudHJhbnNmb3JtKF9hbnkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2FueS5wZXJpb2RzO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8zNSgpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSAmJiAoKChfYW55LnBlcmlvZHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9hbnkucGVyaW9kcy5sZW5ndGgpID4gMCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzI2LnVpLmljb25zLmNoZXZyb25MZWZ0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzI2LnVpLnNpemUuc21hbGw7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMjYudWkub3V0bGluZS50cmFuc3BhcmVudDtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8yMC5ob3N0O1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzIwLl9zY2hlbWU7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMjAuX3NpemU7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMjAuX291dGxpbmU7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMjAuX3dpZHRoO1xuICAgIGN1cnJWYWxfNztcbiAgICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzIwLl9zaGFwZTtcbiAgICBjdXJyVmFsXzg7XG4gICAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8yMC5sb2FkaW5nO1xuICAgIGN1cnJWYWxfOTtcbiAgICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8yMC53aXRoVGV4dDtcbiAgICBjdXJyVmFsXzEwO1xuICAgIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzIwLmRpc2FibGU7XG4gICAgY3VyclZhbF8xMTtcbiAgICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzI2LmN1cnJlbnQsJ3l5eXknKTtcbiAgICBjdXJyVmFsXzEyO1xuICAgIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzI2LnVpLmljb25zLmNoZXZyb25SaWdodDtcbiAgICBjdXJyVmFsXzEzO1xuICAgIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gX2RlY2wwXzI2LnVpLnNpemUuc21hbGw7XG4gICAgY3VyclZhbF8xNDtcbiAgICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IF9kZWNsMF8yNi51aS5vdXRsaW5lLnRyYW5zcGFyZW50O1xuICAgIGN1cnJWYWxfMTU7XG4gICAgY29uc3QgY3VyclZhbF8xNjphbnkgPSBfZGVjbDBfMjAuaG9zdDtcbiAgICBjdXJyVmFsXzE2O1xuICAgIGNvbnN0IGN1cnJWYWxfMTc6YW55ID0gX2RlY2wwXzIwLl9zY2hlbWU7XG4gICAgY3VyclZhbF8xNztcbiAgICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8yMC5fc2l6ZTtcbiAgICBjdXJyVmFsXzE4O1xuICAgIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gX2RlY2wwXzIwLl9vdXRsaW5lO1xuICAgIGN1cnJWYWxfMTk7XG4gICAgY29uc3QgY3VyclZhbF8yMDphbnkgPSBfZGVjbDBfMjAuX3dpZHRoO1xuICAgIGN1cnJWYWxfMjA7XG4gICAgY29uc3QgY3VyclZhbF8yMTphbnkgPSBfZGVjbDBfMjAuX3NoYXBlO1xuICAgIGN1cnJWYWxfMjE7XG4gICAgY29uc3QgY3VyclZhbF8yMjphbnkgPSBfZGVjbDBfMjAubG9hZGluZztcbiAgICBjdXJyVmFsXzIyO1xuICAgIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gX2RlY2wwXzIwLndpdGhUZXh0O1xuICAgIGN1cnJWYWxfMjM7XG4gICAgY29uc3QgY3VyclZhbF8yNDphbnkgPSBfZGVjbDBfMjAuZGlzYWJsZTtcbiAgICBjdXJyVmFsXzI0O1xuICAgIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gX2RlY2wwXzQ2LnRyYW5zZm9ybShfZGVjbDBfNTgudHJhbnNmb3JtKF9kZWNsMF8yNi5jdXJyZW50KSxcbiAgICAgICAgX2RlY2wwXzYyLnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCkpO1xuICAgIGN1cnJWYWxfMjU7XG4gICAgY29uc3QgcGRfMjY6YW55ID0gKCg8YW55PihfZGVjbDBfMjYuY3VycmVudCA9IF9kZWNsMF8yNi5zdWJZZWFycyhfZGVjbDBfMjYuY3VycmVudCxcbiAgICAgICAgMSkpKSAhPT0gZmFsc2UpO1xuICAgIGNvbnN0IHBkXzI3OmFueSA9ICgoPGFueT4oX2RlY2wwXzI2LmN1cnJlbnQgPSBfZGVjbDBfMjYuYWRkWWVhcnMoX2RlY2wwXzI2LmN1cnJlbnQsXG4gICAgICAgIDEpKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV8zMygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gMDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF85NDtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkudGl0bGU7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzMxKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMjIuaG9zdDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8yNi5saW5lcztcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfMjgoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8yNi51aS5hbGlnbi5zdHJldGNoO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMjUuaG9zdDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzI1Ll9vcmllbnRhdGlvbjtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzI1Ll9ndXR0ZXI7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8yNS5fc3BhY2luZztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzI1Ll9wYWRkaW5nO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMjUuX2FsaWduO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMjUuX2p1c3RpZnk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8yNS5fd3JhcDtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzI2LnRvb2xzVGVtcGxhdGU7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCk7XG4gIGN1cnJWYWxfMTA7XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzcoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8yNi51aS5icmVha3BvaW50LnRhYmxldDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzI2LnVpLmJyZWFrcG9pbnQubW9iaWxlO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzQ3KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpICYmIF9kZWNsMF8yNi50b29sc1RlbXBsYXRlKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzQ2KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpICYmIF9kZWNsMF8yNi50b29sc1RlbXBsYXRlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8yNi50b29sc1RlbXBsYXRlO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV80OCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfNDkoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMjYudHlwZSA9PT0gX2RlY2wwXzI2LnR5cGVzLm1vbnRoKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF83MS50cmFuc2Zvcm0oX2FueSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNzIudHJhbnNmb3JtKF9hbnkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzY1LnRyYW5zZm9ybShfYW55KTtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfNTMoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzI2LnR5cGUgPT09IF9kZWNsMF8yNi50eXBlcy5tb250aCkgJiYgKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApKSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzU0KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpICYmICgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV81MigpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMjYudHlwZSA9PT0gX2RlY2wwXzI2LnR5cGVzLm1vbnRoKSAmJiAoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge3RpdGxlOl9hbnkudGl0bGV9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9hbnkudGl0bGVUZW1wbGF0ZSB8fCBfZGVjbDBfOTQpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzQ0LnRyYW5zZm9ybShfZGVjbDBfMjYuY3VycmVudCk7XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzU4KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzI2LnR5cGUgPT09IF9kZWNsMF8yNi50eXBlcy5tb250aCkgJiYgKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApKSAmJiAoKChfYW55LnBlcmlvZHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9hbnkucGVyaW9kcy5sZW5ndGgpID4gMCkpICYmIChfYW55ID09PSAwKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV81NygpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpICYmICgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiAoX2FueSA9PT0gMCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueS5wZXJpb2RzLmxlbmd0aDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9hbnkucGVyaW9kcy5sZW5ndGg7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSB7dGl0bGU6X2FueS50aXRsZX07XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2FueS50aXRsZVRlbXBsYXRlIHx8IF9kZWNsMF85NCk7XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19HYW50dENvbXBvbmVudF8xXzYwKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMjYudHlwZSA9PT0gX2RlY2wwXzI2LnR5cGVzLm1vbnRoKSAmJiAoKChfZGVjbDBfMjYubGluZXMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9kZWNsMF8yNi5saW5lcy5sZW5ndGgpID4gMCkpICYmICgoKF9hbnkucGVyaW9kcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2FueS5wZXJpb2RzLmxlbmd0aCkgPiAwKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV82MigpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpICYmICgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiAhKF9kZWNsMF82Ny50cmFuc2Zvcm0oX2FueS50byxcbiAgICAgIF9hbnkpIHx8IF9kZWNsMF82Ni50cmFuc2Zvcm0oX2FueS5mcm9tLF9hbnkpKSkpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV82MSgpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpICYmICgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSAmJiAhKF9kZWNsMF82Ny50cmFuc2Zvcm0oX2FueS50byxcbiAgICAgIF9hbnkpIHx8IF9kZWNsMF82Ni50cmFuc2Zvcm0oX2FueS5mcm9tLF9hbnkpKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSB7cGVyaW9kOl9hbnksY3VycmVudDpfZGVjbDBfMjYuY3VycmVudCx0b2RheTpfZGVjbDBfMjYudG9kYXl9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueS5pbmRpY2F0b3JNb250aFRlbXBsYXRlO1xuICAgIGN1cnJWYWxfMTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfR2FudHRDb21wb25lbnRfMV82MygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzI2LnR5cGUgPT09IF9kZWNsMF8yNi50eXBlcy5tb250aCkgJiYgKCgoX2RlY2wwXzI2LmxpbmVzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMjYubGluZXMubGVuZ3RoKSA+IDApKSAmJiAoKChfYW55LnBlcmlvZHMgPT0gbnVsbCk/IChudWxsIGFzIGFueSk6IF9hbnkucGVyaW9kcy5sZW5ndGgpID4gMCkpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0dhbnR0Q29tcG9uZW50XzFfNTkoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8yNi50eXBlID09PSBfZGVjbDBfMjYudHlwZXMubW9udGgpICYmICgoKF9kZWNsMF8yNi5saW5lcyA9PSBudWxsKT8gKG51bGwgYXMgYW55KTogX2RlY2wwXzI2LmxpbmVzLmxlbmd0aCkgPiAwKSkgJiYgKCgoX2FueS5wZXJpb2RzID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnBlcmlvZHMubGVuZ3RoKSA+IDApKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzQ1LnRyYW5zZm9ybShfYW55LF9hbnkpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF80NS50cmFuc2Zvcm0oX2FueSxfYW55KS5sZW5ndGg7X