@junte/ui
Version:
Quality Angular UI components kit
46 lines • 52.4 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 "./app-layout.module";
import * as i2 from "../../elements/icon/icon.component.ngfactory";
import * as i3 from "../stack/stack.component.ngfactory";
import * as i4 from "../../elements/badge/badge.component.ngfactory";
import * as i5 from "../spinner/spinner.component.ngfactory";
import * as i6 from "../../forms/button/button.component.ngfactory";
import * as i7 from "../../forms/button/group/button-group.component.ngfactory";
import * as i8 from "../../../../node_modules/@angular/router/router.ngfactory";
import * as i9 from "../../navigation/link/link.component.ngfactory";
import * as i10 from "../../overlays/popover/popover.component.ngfactory";
import * as i11 from "../../navigation/menu/menu.component.ngfactory";
import * as i12 from "../../navigation/menu/menu-item.component.ngfactory";
import * as i13 from "./app-layout.component.ngfactory";
import * as i14 from "./header/app-header.component.ngfactory";
import * as i15 from "./header/actions/app-header-actions.component.ngfactory";
import * as i16 from "./header/action/app-header-action.component.ngfactory";
import * as i17 from "./content/app-content.component.ngfactory";
import * as i18 from "./busyness/app-busyness.component.ngfactory";
import * as i19 from "@angular/common";
import * as i20 from "@angular/common/http";
import * as i21 from "../responsive/breakpoint.service";
import * as i22 from "../responsive/device.service";
import * as i23 from "@ngx-translate/core";
import * as i24 from "../../elements/icon/icon.module";
import * as i25 from "../stack/stack.module";
import * as i26 from "../../core/pipes/color-pipes.module";
import * as i27 from "../../elements/badge/badge.module";
import * as i28 from "../spinner/spinner.module";
import * as i29 from "../../forms/button/button.module";
import * as i30 from "@angular/router";
import * as i31 from "../../core/pipes/text-pipes.module";
import * as i32 from "../../core/pipes/array-pipes.module";
import * as i33 from "../../navigation/link/link.module";
import * as i34 from "../../overlays/popover/popover.module";
import * as i35 from "../../navigation/menu/menu.module";
import * as i36 from "../responsive/responsive.module";
var AppLayoutModuleNgFactory = i0.ɵcmf(i1.AppLayoutModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.IconComponentNgFactory, i3.StackComponentNgFactory, i4.BadgeComponentNgFactory, i5.SpinnerComponentNgFactory, i6.ButtonComponentNgFactory, i7.ButtonGroupComponentNgFactory, i8.ɵangular_packages_router_router_lNgFactory, i9.LinkComponentNgFactory, i10.PopoverComponentNgFactory, i11.MenuComponentNgFactory, i12.MenuItemComponentNgFactory, i13.AppLayoutComponentNgFactory, i14.AppHeaderComponentNgFactory, i15.AppHeaderActionsComponentNgFactory, i16.AppHeaderActionComponentNgFactory, i17.AppContentComponentNgFactory, i18.AppBusynessComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i19.NgLocalization, i19.NgLocaleLocalization, [i0.LOCALE_ID]), i0.ɵmpd(4608, i20.HttpXsrfTokenExtractor, i20.ɵangular_packages_common_http_http_g, [i19.DOCUMENT, i0.PLATFORM_ID, i20.ɵangular_packages_common_http_http_e]), i0.ɵmpd(4608, i20.ɵangular_packages_common_http_http_h, i20.ɵangular_packages_common_http_http_h, [i20.HttpXsrfTokenExtractor, i20.ɵangular_packages_common_http_http_f]), i0.ɵmpd(5120, i20.HTTP_INTERCEPTORS, function (p0_0) { return [p0_0]; }, [i20.ɵangular_packages_common_http_http_h]), i0.ɵmpd(4608, i20.ɵangular_packages_common_http_http_d, i20.ɵangular_packages_common_http_http_d, []), i0.ɵmpd(6144, i20.XhrFactory, null, [i20.ɵangular_packages_common_http_http_d]), i0.ɵmpd(4608, i20.HttpXhrBackend, i20.HttpXhrBackend, [i20.XhrFactory]), i0.ɵmpd(6144, i20.HttpBackend, null, [i20.HttpXhrBackend]), i0.ɵmpd(4608, i20.HttpHandler, i20.ɵHttpInterceptingHandler, [i20.HttpBackend, i0.Injector]), i0.ɵmpd(4608, i20.HttpClient, i20.HttpClient, [i20.HttpHandler]), i0.ɵmpd(4608, i21.BreakpointService, i21.BreakpointService, [i0.NgZone]), i0.ɵmpd(4608, i22.DeviceService, i22.DeviceService, []), i0.ɵmpd(1073742336, i19.CommonModule, i19.CommonModule, []), i0.ɵmpd(1073742336, i23.TranslateModule, i23.TranslateModule, []), i0.ɵmpd(1073742336, i20.HttpClientXsrfModule, i20.HttpClientXsrfModule, []), i0.ɵmpd(1073742336, i20.HttpClientModule, i20.HttpClientModule, []), i0.ɵmpd(1073742336, i24.IconModule, i24.IconModule, []), i0.ɵmpd(1073742336, i25.StackModule, i25.StackModule, []), i0.ɵmpd(1073742336, i26.ColorPipesModule, i26.ColorPipesModule, []), i0.ɵmpd(1073742336, i27.BadgeModule, i27.BadgeModule, []), i0.ɵmpd(1073742336, i28.SpinnerModule, i28.SpinnerModule, []), i0.ɵmpd(1073742336, i29.ButtonModule, i29.ButtonModule, []), i0.ɵmpd(1073742336, i30.RouterModule, i30.RouterModule, [[2, i30.ɵangular_packages_router_router_a], [2, i30.Router]]), i0.ɵmpd(1073742336, i31.TextPipesModule, i31.TextPipesModule, []), i0.ɵmpd(1073742336, i32.ArrayPipesModule, i32.ArrayPipesModule, []), i0.ɵmpd(1073742336, i33.LinkModule, i33.LinkModule, []), i0.ɵmpd(1073742336, i34.PopoverModule, i34.PopoverModule, []), i0.ɵmpd(1073742336, i35.MenuModule, i35.MenuModule, []), i0.ɵmpd(1073742336, i36.ResponsiveModule, i36.ResponsiveModule, []), i0.ɵmpd(1073742336, i1.AppLayoutModule, i1.AppLayoutModule, []), i0.ɵmpd(256, i20.ɵangular_packages_common_http_http_e, "XSRF-TOKEN", []), i0.ɵmpd(256, i20.ɵangular_packages_common_http_http_f, "X-XSRF-TOKEN", [])]); });
export { AppLayoutModuleNgFactory as AppLayoutModuleNgFactory };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxheW91dC5tb2R1bGUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9hcHAvYXBwLWxheW91dC5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vYXBwLWxheW91dC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCAqIGFzIGkzIGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vLi4vZWxlbWVudHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICcuLi9zdGFjay9zdGFjay5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi4vLi4vZm9ybXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi4vLi4vZm9ybXMvYnV0dG9uL2dyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGk5IGZyb20gJy4uLy4uL25hdmlnYXRpb24vbWVudS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL21lbnUvc3ViLW1lbnUvc3ViLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxMSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL21lbnUvc3ViLW1lbnUvc3ViLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTEyIGZyb20gJy4uL3Jlc3BvbnNpdmUvcmVzcG9uc2l2ZS5kaXJlY3RpdmVzJztcbmltcG9ydCAqIGFzIGkxMyBmcm9tICcuLi9yZXNwb25zaXZlL2RldmljZS5kaXJlY3RpdmVzJztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi8uLi9vdmVybGF5cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICcuLi8uLi9vdmVybGF5cy9wb3BvdmVyL3BvcG92ZXIuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGkxNiBmcm9tICcuLi8uLi9lbGVtZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE3IGZyb20gJy4uL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE4IGZyb20gJy4vYXBwLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTE5IGZyb20gJy4vaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMCBmcm9tICcuL2hlYWRlci9hY3Rpb24vYXBwLWhlYWRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyMSBmcm9tICcuL2hlYWRlci9hY3Rpb25zL2FwcC1oZWFkZXItYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTIyIGZyb20gJy4vaGVhZGVyL3VzZXJiYXIvYXBwLWhlYWRlci11c2VyYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjMgZnJvbSAnLi9hc2lkZS9hcHAtYXNpZGUuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNCBmcm9tICcuL2JvZHkvYXBwLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNSBmcm9tICcuL2NvbnRlbnQvYXBwLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyNiBmcm9tICcuL2Zvb3Rlci9hcHAtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgKiBhcyBpMjcgZnJvbSAnLi9idXN5bmVzcy9hcHAtYnVzeW5lc3MuY29tcG9uZW50JztcbmltcG9ydCAqIGFzIGkyOCBmcm9tICcuL3BhZ2UtaGVhZGVyL2FwcC1wYWdlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgaTI5IGZyb20gJy4uLy4uL2VsZW1lbnRzL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTMwIGZyb20gJy4uL3N0YWNrL3N0YWNrLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzEgZnJvbSAnLi4vLi4vZm9ybXMvYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTMyIGZyb20gJy4uLy4uL25hdmlnYXRpb24vbWVudS9tZW51Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzMgZnJvbSAnLi4vcmVzcG9uc2l2ZS9yZXNwb25zaXZlLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzQgZnJvbSAnLi4vLi4vb3ZlcmxheXMvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMzUgZnJvbSAnLi4vLi4vZWxlbWVudHMvYmFkZ2UvYmFkZ2UubW9kdWxlJztcbmltcG9ydCAqIGFzIGkzNiBmcm9tICcuLi9zcGlubmVyL3NwaW5uZXIubW9kdWxlJztcbmV4cG9ydCBjb25zdCBBcHBMYXlvdXRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLkFwcExheW91dE1vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLlRyYW5zbGF0ZURpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjppNC5JY29uQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzOmk1LlN0YWNrQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0Omk2LkJ1dHRvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTppNy5CdXR0b25Hcm91cENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppOC5NZW51Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5Lk1lbnVJdGVtQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE4OmkxMC5TdWJNZW51Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkxMS5TdWJNZW51SXRlbUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppMTIuRm9yRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmkxMi5Gb3JNaW5EaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTEyLkZvck1heERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMzppMTMuRm9yTW9iaWxlRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI0OmkxMy5Gb3JJT1NQbGF0Zm9ybURpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMTMuRm9yQW5kcm9pZFBsYXRmb3JtRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI2OmkxMy5Gb3JEZXNrdG9wRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI3OmkxNC5Qb3BvdmVyQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4OmkxNS5Qb3BvdmVyRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5OmkxNi5CYWRnZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMDppMTcuU3Bpbm5lckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppMTguQXBwTGF5b3V0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxOS5BcHBIZWFkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzM6aTIwLkFwcEhlYWRlckFjdGlvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNDppMjEuQXBwSGVhZGVyQWN0aW9uc0NvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNTppMjIuQXBwSGVhZGVyVXNlcmJhckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppMjMuQXBwQXNpZGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTI0LkFwcEJvZHlDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTI1LkFwcENvbnRlbnRDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTI2LkFwcEZvb3RlckNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMjcuQXBwQnVzeW5lc3NDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDE6aTI4LkFwcFBhZ2VIZWFkZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDI6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQzOmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDc6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDk6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MDppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTE6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTI6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTM6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU1OmkzLlRyYW5zbGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTIuQ29tbW9uTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU3OmkzLlRyYW5zbGF0ZU1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81ODppMjkuSWNvbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppMzAuU3RhY2tNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTMxLkJ1dHRvbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MTppMzIuTWVudU1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MjppMzMuUmVzcG9uc2l2ZU1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MzppMzQuUG9wb3Zlck1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NDppMzUuQmFkZ2VNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjU6aTM2LlNwaW5uZXJNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjY6aTAuVGVtcGxhdGVSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82NzppMC5FbGVtZW50UmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbmZ1bmN0aW9uIF9WaWV3X0FwcExheW91dENvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzMxLmhvc3Q7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zMS53aXRoSGVhZGVyO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzEucG9zaXRpb247XG4gIGN1cnJWYWxfMjtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcExheW91dENvbXBvbmVudF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF9Ib3N0XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzMyLmhvc3Q7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzQoKTp2b2lkIHtcbiAgaWYgKCEhX2FueSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkudGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9hbnkudmFsdWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfYW55LmNvbG9yO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzMyLnVpLnBvc2l0aW9uLmlubGluZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8yOS5ob3N0O1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzI5Ll9wb3NpdGlvbjtcbiAgICBjdXJyVmFsXzU7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzMoKTp2b2lkIHtcbiAgaWYgKCEhX2FueSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkubG9hZGluZztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9hbnkuaWNvbjtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9hbnkuZGlzYWJsZWQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LnRpdGxlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5saW5rO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2FueS50YXJnZXQ7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfYW55Lm1hdGNoaW5nO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzE3Lm9wZW5lZDtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9hbnkuYmFkZ2VzO1xuICAgIGN1cnJWYWxfODtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQ29tcG9uZW50XzJfMigpOnZvaWQge1xuICBpZiAoISFfYW55KSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9hbnk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTYuaG9zdDtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xNi5fc3R5bGU7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTYuX29yaWVudGF0aW9uO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE2LmNvbGxhcHNlZDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9hbnkuaXRlbXM7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IHBkXzc6YW55ID0gKCg8YW55Pl9kZWNsMF8zMi5oaWRlKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEhX2FueTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQ29tcG9uZW50XzJfNygpOnZvaWQge1xuICBpZiAoX2RlY2wwXzMyLmhlYWRlckxvZ29UZW1wbGF0ZSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJDb21wb25lbnRfMl82KCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMzIuaGVhZGVyTG9nb1RlbXBsYXRlKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzMyLmhlYWRlckxvZ29UZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzgoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzEwKCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMzIuY29udGVudFRlbXBsYXRlKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzkoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8zMi5jb250ZW50VGVtcGxhdGUpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzIuY29udGVudFRlbXBsYXRlO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQ29tcG9uZW50XzJfMTEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzEyKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJDb21wb25lbnRfMl81KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzIuaGVhZGVyTG9nb1RlbXBsYXRlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB7bWVudTpfZGVjbDBfMzIubWVudSxvcmllbnRhdGlvbjpfZGVjbDBfMzIudWkub3JpZW50YXRpb24uaG9yaXpvbnRhbCxcbiAgICAgIHNwYWNpbmc6X2RlY2wwXzMyLnVpLmd1dHRlci5ub3JtYWx9O1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfNjY7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zMi51aS5vcmllbnRhdGlvbi5ob3Jpem9udGFsO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzIudWkuZ3V0dGVyLnNtYWxsO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzIudWkuYWxpZ24uc3RyZXRjaDtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzEzLmhvc3Q7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMy5fb3JpZW50YXRpb247XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMy5fZ3V0dGVyO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfMTMuX3NwYWNpbmc7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfZGVjbDBfMTMuX3BhZGRpbmc7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzEzLl9hbGlnbjtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSBfZGVjbDBfMTMuX2p1c3RpZnk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzEzLl93cmFwO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IF9kZWNsMF8zMi5jb250ZW50VGVtcGxhdGU7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gX2RlY2wwXzMyLmhlYWRlckFjdGlvbnNUZW1wbGF0ZTtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgY3VyclZhbF8xNjphbnkgPSBfZGVjbDBfMzIuaGVhZGVyVXNlcmJhclRlbXBsYXRlO1xuICBjdXJyVmFsXzE2O1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQ29tcG9uZW50XzJfMTUoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8zMi5oZWFkZXJMb2dvVGVtcGxhdGUpIHsgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTsgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQ29tcG9uZW50XzJfMTQoKTp2b2lkIHtcbiAgaWYgKF9kZWNsMF8zMi5oZWFkZXJMb2dvVGVtcGxhdGUpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzIuaGVhZGVyTG9nb1RlbXBsYXRlO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQ29tcG9uZW50XzJfMTYoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzE3KCk6dm9pZCB7XG4gIGlmICgoKCEhX2RlY2wwXzMyLmhlYWRlclVzZXJiYXJUZW1wbGF0ZSB8fCAhIV9kZWNsMF8zMi5jb250ZW50VGVtcGxhdGUpIHx8ICEhX2RlY2wwXzMyLm1lbnUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKCEhX2RlY2wwXzMyLnJlZmVyZW5jZS5wb3BvdmVyPyBfZGVjbDBfMzIudWkuaWNvbnMuY2FuY2VsOiBfZGVjbDBfMzIudWkuaWNvbnMubWVudSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzIudWkub3V0bGluZS50cmFuc3BhcmVudDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xNC5ob3N0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzE0Ll9zY2hlbWU7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTQuX3NpemU7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTQuX291dGxpbmU7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTQuX3dpZHRoO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzE0Ll9zaGFwZTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xNC5sb2FkaW5nO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzE0LndpdGhUZXh0O1xuICAgIGN1cnJWYWxfOTtcbiAgICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8xNC5kaXNhYmxlO1xuICAgIGN1cnJWYWxfMTA7XG4gICAgY29uc3QgY3VyclZhbF8xMTphbnkgPSB7Y29udGVudFRlbXBsYXRlOl9kZWNsMF82Nix0cmlnZ2VyOl9kZWNsMF8zMi51aS50cmlnZ2VyLmNsaWNrLFxuICAgICAgICBwbGFjZW1lbnQ6X2RlY2wwXzMyLnVpLnBsYWNlbWVudC5maXhlZH07XG4gICAgY3VyclZhbF8xMTtcbiAgICBjb25zdCBwZF8xMjphbnkgPSAoKDxhbnk+X2RlY2wwXzI4Lm1vdXNlRW50ZXIoKSkgIT09IGZhbHNlKTtcbiAgICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzI4LmNsaWNrKCkpICE9PSBmYWxzZSk7XG4gICAgX2RlY2wwXzMyLnJlZmVyZW5jZS5wb3BvdmVyID0gX2FueTtcbiAgICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzMyLmNkLmRldGVjdENoYW5nZXMoKSkgIT09IGZhbHNlKTtcbiAgICBfZGVjbDBfMzIucmVmZXJlbmNlLnBvcG92ZXIgPSBudWxsO1xuICAgIGNvbnN0IHBkXzE1OmFueSA9ICgoPGFueT5fZGVjbDBfMzIuY2QuZGV0ZWN0Q2hhbmdlcygpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJDb21wb25lbnRfMl8yMCgpOnZvaWQge1xuICBpZiAoISFfZGVjbDBfMzIuaGVhZGVyVXNlcmJhclRlbXBsYXRlKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzIxKCk6dm9pZCB7XG4gIGlmICgoISFfZGVjbDBfMzIuaGVhZGVyVXNlcmJhclRlbXBsYXRlICYmICghIV9kZWNsMF8zMi5tZW51IHx8ICEhX2RlY2wwXzMyLmNvbnRlbnRUZW1wbGF0ZSkpKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzE5KCk6dm9pZCB7XG4gIGlmICghIV9kZWNsMF8zMi5oZWFkZXJVc2VyYmFyVGVtcGxhdGUpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSB7aGlkZTpfZGVjbDBfMzIuaGlkZS5iaW5kKF9kZWNsMF8zMil9O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzMyLmhlYWRlclVzZXJiYXJUZW1wbGF0ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICghIV9kZWNsMF8zMi5tZW51IHx8ICEhX2RlY2wwXzMyLmNvbnRlbnRUZW1wbGF0ZSk7XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJDb21wb25lbnRfMl8yMigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQ29tcG9uZW50XzJfMjQoKTp2b2lkIHtcbiAgaWYgKCEhX2RlY2wwXzMyLmNvbnRlbnRUZW1wbGF0ZSkgeyB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpOyB9XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJDb21wb25lbnRfMl8yMygpOnZvaWQge1xuICBpZiAoISFfZGVjbDBfMzIuY29udGVudFRlbXBsYXRlKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge2hpZGU6X2RlY2wwXzMyLmhpZGUuYmluZChfZGVjbDBfMzIpfTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zMi5jb250ZW50VGVtcGxhdGU7XG4gICAgY3VyclZhbF8xO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJDb21wb25lbnRfMl8xOCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzMyLnVpLmd1dHRlci5zbWFsbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzMyLnVpLmFsaWduLnN0cmV0Y2g7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMy5ob3N0O1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTMuX29yaWVudGF0aW9uO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTMuX2d1dHRlcjtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEzLl9zcGFjaW5nO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTMuX3BhZGRpbmc7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMy5fYWxpZ247XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMy5fanVzdGlmeTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzEzLl93cmFwO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gISFfZGVjbDBfMzIuaGVhZGVyVXNlcmJhclRlbXBsYXRlO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IHttZW51Ol9kZWNsMF8zMi5tZW51LG9yaWVudGF0aW9uOl9kZWNsMF8zMi51aS5vcmllbnRhdGlvbi52ZXJ0aWNhbCxcbiAgICAgIHNwYWNpbmc6X2RlY2wwXzMyLnVpLmd1dHRlci5zbWFsbH07XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzY2O1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9ICEhX2RlY2wwXzMyLmNvbnRlbnRUZW1wbGF0ZTtcbiAgY3VyclZhbF8xMztcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzEzKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzIuaGVhZGVyTG9nb1RlbXBsYXRlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzIudWkub3JpZW50YXRpb24uaG9yaXpvbnRhbDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzMyLnVpLmd1dHRlci5zbWFsbDtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzMyLnVpLmFsaWduLnN0cmV0Y2g7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMy5ob3N0O1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTMuX29yaWVudGF0aW9uO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTMuX2d1dHRlcjtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzEzLl9zcGFjaW5nO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMTMuX3BhZGRpbmc7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8xMy5fYWxpZ247XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfZGVjbDBfMTMuX2p1c3RpZnk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzEzLl93cmFwO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8zMi5oZWFkZXJBY3Rpb25zVGVtcGxhdGU7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gKCghIV9kZWNsMF8zMi5oZWFkZXJVc2VyYmFyVGVtcGxhdGUgfHwgISFfZGVjbDBfMzIuY29udGVudFRlbXBsYXRlKSB8fCAhIV9kZWNsMF8zMi5tZW51KTtcbiAgY3VyclZhbF8xMztcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zMi51aS5icmVha3BvaW50LmRlc2t0b3A7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zMi51aS5icmVha3BvaW50LnRhYmxldDtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzMuaG9zdDtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uQ29tcG9uZW50XzNfMSgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uQ29tcG9uZW50XzNfMygpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uQ29tcG9uZW50XzNfMigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzMzLmFjdGlvbkNvbnRlbnRUZW1wbGF0ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uQ29tcG9uZW50XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge2NvbnRlbnRUZW1wbGF0ZTpfZGVjbDBfNjYsdHJpZ2dlcjpfZGVjbDBfMzMudWkudHJpZ2dlci5ob3ZlcixcbiAgICAgIHBsYWNlbWVudDpfZGVjbDBfMzMudWkucGxhY2VtZW50LmZpeGVkLG1heEhlaWdodDonNTAwcHgnLG1pbldpZHRoOicyMDBweCd9O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzMuYWN0aW9uTGFiZWxUZW1wbGF0ZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBwZF8yOmFueSA9ICgoPGFueT5fZGVjbDBfMjgubW91c2VFbnRlcigpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMjguY2xpY2soKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckFjdGlvbnNDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNC5ob3N0O1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJBY3Rpb25zQ29tcG9uZW50XzRfMygpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uc0NvbXBvbmVudF80XzIoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9hbnkuYWN0aW9uTGFiZWxUZW1wbGF0ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uc0NvbXBvbmVudF80XzUoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlckFjdGlvbnNDb21wb25lbnRfNF80KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfYW55LmFjdGlvbkNvbnRlbnRUZW1wbGF0ZTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyQWN0aW9uc0NvbXBvbmVudF80XzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zMy5ob3N0O1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJBY3Rpb25zQ29tcG9uZW50XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LnVpLm9yaWVudGF0aW9uLmhvcml6b250YWw7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNC5ndXR0ZXI7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNC51aS5hbGlnbi5jZW50ZXI7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xMy5ob3N0O1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTMuX29yaWVudGF0aW9uO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTMuX2d1dHRlcjtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzEzLl9zcGFjaW5nO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMTMuX3BhZGRpbmc7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xMy5fYWxpZ247XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8xMy5fanVzdGlmeTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8xMy5fd3JhcDtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSBfZGVjbDBfMzQuYWN0aW9ucztcbiAgY3VyclZhbF8xMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlclVzZXJiYXJDb21wb25lbnRfSG9zdF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS5ob3N0O1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJVc2VyYmFyQ29tcG9uZW50XzVfMigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyVXNlcmJhckNvbXBvbmVudF81XzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS51aS5vcmllbnRhdGlvbi5ob3Jpem9udGFsO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzUudWkuYWxpZ24uY2VudGVyO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTMuaG9zdDtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzEzLl9vcmllbnRhdGlvbjtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzEzLl9ndXR0ZXI7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMy5fc3BhY2luZztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzEzLl9wYWRkaW5nO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMTMuX2FsaWduO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMTMuX2p1c3RpZnk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8xMy5fd3JhcDtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IHtvcGVuZWQ6ISFfZGVjbDBfMzUucmVmZXJlbmNlLnBvcG92ZXJ9O1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF8zNS51c2VyYmFyQXZhdGFyVGVtcGxhdGU7XG4gIGN1cnJWYWxfMTE7XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJVc2VyYmFyQ29tcG9uZW50XzVfNCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyVXNlcmJhckNvbXBvbmVudF81XzYoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlclVzZXJiYXJDb21wb25lbnRfNV81KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSB7aGlkZTpfZGVjbDBfMzUuaGlkZS5iaW5kKF9kZWNsMF8zNSl9O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzUudXNlcmJhck1lbnVUZW1wbGF0ZTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyVXNlcmJhckNvbXBvbmVudF81XzMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS51aS5vcmllbnRhdGlvbi5ob3Jpem9udGFsO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzUudWkuYWxpZ24uY2VudGVyO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTMuaG9zdDtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzEzLl9vcmllbnRhdGlvbjtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzEzLl9ndXR0ZXI7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMy5fc3BhY2luZztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzEzLl9wYWRkaW5nO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMTMuX2FsaWduO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMTMuX2p1c3RpZnk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8xMy5fd3JhcDtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IHtjb250ZW50VGVtcGxhdGU6X2RlY2wwXzY2LHRyaWdnZXI6X2RlY2wwXzM1LnVpLnRyaWdnZXIuaG92ZXIsXG4gICAgICBwbGFjZW1lbnQ6X2RlY2wwXzM1LnVpLnBsYWNlbWVudC5maXhlZCxwb3NpdGlvbjpfZGVjbDBfMzUudWkucG9zaXRpb24ucmlnaHRCb3R0b20sXG4gICAgICBwYWRkaW5nOl9kZWNsMF8zNS51aS5ndXR0ZXIuc21hbGwsbWluV2lkdGg6JzIwMHB4Jyxjb250ZXh0OidhcHAtaGVhZGVyLXVzZXJiYXItbWVudSd9O1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF82NjtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgcGRfMTI6YW55ID0gKCg8YW55Pl9kZWNsMF8yOC5tb3VzZUVudGVyKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzEzOmFueSA9ICgoPGFueT5fZGVjbDBfMjguY2xpY2soKSkgIT09IGZhbHNlKTtcbiAgX2RlY2wwXzM1LnJlZmVyZW5jZS5wb3BvdmVyID0gX2FueTtcbiAgY29uc3QgcGRfMTQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5jZC5kZXRlY3RDaGFuZ2VzKCkpICE9PSBmYWxzZSk7XG4gIF9kZWNsMF8zNS5yZWZlcmVuY2UucG9wb3ZlciA9IG51bGw7XG4gIGNvbnN0IHBkXzE1OmFueSA9ICgoPGFueT5fZGVjbDBfMzUuY2QuZGV0ZWN0Q2hhbmdlcygpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyVXNlcmJhckNvbXBvbmVudF81XzgoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEhlYWRlclVzZXJiYXJDb21wb25lbnRfNV85KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BcHBIZWFkZXJVc2VyYmFyQ29tcG9uZW50XzVfNygpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM1LnVpLmFsaWduLnN0cmV0Y2g7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMy5ob3N0O1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTMuX29yaWVudGF0aW9uO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTMuX2d1dHRlcjtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzEzLl9zcGFjaW5nO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTMuX3BhZGRpbmc7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMy5fYWxpZ247XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMy5fanVzdGlmeTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzEzLl93cmFwO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfNjY7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSB7aGlkZTooKF9kZWNsMF8zNS5jb250ZXh0ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfZGVjbDBfMzUuY29udGV4dC5oZWFkZXIuaGlkZSl9O1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF8zNS51c2VyYmFyTWVudVRlbXBsYXRlO1xuICBjdXJyVmFsXzExO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwSGVhZGVyVXNlcmJhckNvbXBvbmVudF81XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS51aS5icmVha3BvaW50LmRlc2t0b3A7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNS51aS5icmVha3BvaW50LnRhYmxldDtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQXNpZGVDb21wb25lbnRfSG9zdF82XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi5ob3N0O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzYub3BlbmVkO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19BcHBBc2lkZUNvbXBvbmVudF82XzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi51aS5pY29ucy5tZW51O1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzYudWkuc2NoZW1lLnNlY29uZGFyeTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE0Lmhvc3Q7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xNC5fc2NoZW1lO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTQuX3NpemU7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xNC5fb3V0bGluZTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzE0Ll93aWR0aDtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzE0Ll9zaGFwZTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzE0LmxvYWRpbmc7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8xNC53aXRoVGV4dDtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8xNC5kaXNhYmxlO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+X2RlY2wwXzM2LnRvZ2dsZSgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQXNpZGVDb21wb25lbnRfNl8yKCk6dm9pZCB7XG4gIGlmICghX2RlY2wwXzM2LmNvbGxhcHNlZCkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF81NS50cmFuc2Zvcm0oJ2FjdGlvbi5oaWRlX3NpZGViYXInKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEFzaWRlQ29tcG9uZW50XzZfNCgpOnZvaWQge1xuICBpZiAoISFfZGVjbDBfMzYuY29udGVudFRlbXBsYXRlKSB7IHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7IH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEFzaWRlQ29tcG9uZW50XzZfMygpOnZvaWQge1xuICBpZiAoISFfZGVjbDBfMzYuY29udGVudFRlbXBsYXRlKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0ge2NvbGxhcHNlZDooX2RlY2wwXzM2LmNvbGxhcHNlZCAmJiAoX2RlY2wwXzM2LmJyZWFrcG9pbnQuY3VycmVudCAhPT0gX2RlY2wwXzM2LnVpLmJyZWFrcG9pbnQubW9iaWxlKSksXG4gICAgICAgIHRvZ2dsZTpfZGVjbDBfMzYudG9nZ2xlLmJpbmQoX2RlY2wwXzM2KX07XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzYuY29udGVudFRlbXBsYXRlO1xuICAgIGN1cnJWYWxfMTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQXNpZGVDb21wb25lbnRfNl83KCk6dm9pZCB7XG4gIGlmICghIV9kZWNsMF8zNi5tZW51KSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueS50ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueS52YWx1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9hbnkuY29sb3I7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzYudWkucG9zaXRpb24uaW5saW5lO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzI5Lmhvc3Q7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMjkuX3Bvc2l0aW9uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQXNpZGVDb21wb25lbnRfNl8xMCgpOnZvaWQge1xuICBpZiAoKCEhX2RlY2wwXzM2Lm1lbnUgJiYgISFfYW55LnN1Ym1lbnUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueS50ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueS52YWx1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9hbnkuY29sb3I7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzYudWkucG9zaXRpb24uaW5saW5lO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzI5Lmhvc3Q7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMjkuX3Bvc2l0aW9uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQXNpZGVDb21wb25lbnRfNl85KCk6dm9pZCB7XG4gIGlmICgoISFfZGVjbDBfMzYubWVudSAmJiAhIV9hbnkuc3VibWVudSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfYW55Lmljb247XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfYW55LmRpc2FibGVkO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2FueS50aXRsZTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9hbnkubGluaztcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xOS5vcGVuZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55LmJhZGdlcztcbiAgICBjdXJyVmFsXzU7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEFzaWRlQ29tcG9uZW50XzZfOCgpOnZvaWQge1xuICBpZiAoKCEhX2RlY2wwXzM2Lm1lbnUgJiYgISFfYW55LnN1Ym1lbnUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfYW55ID09IG51bGwpPyAobnVsbCBhcyBhbnkpOiBfYW55LnN1Ym1lbnUuaXRlbXMpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQXNpZGVDb21wb25lbnRfNl82KCk6dm9pZCB7XG4gIGlmICghIV9kZWNsMF8zNi5tZW51KSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2FueS5pY29uO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2FueS5kaXNhYmxlZDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9hbnkudGl0bGU7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55Lmxpbms7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTcub3BlbmVkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2FueS5iYWRnZXM7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAhIV9hbnkuc3VibWVudTtcbiAgICBjdXJyVmFsXzY7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEFzaWRlQ29tcG9uZW50XzZfNSgpOnZvaWQge1xuICBpZiAoISFfZGVjbDBfMzYubWVudSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzYuY29sbGFwc2VkICYmIChfZGVjbDBfMzYuYnJlYWtwb2ludC5jdXJyZW50ICE9PSBfZGVjbDBfMzYudWkuYnJlYWtwb2ludC5tb2JpbGUpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNi51aS5vcmllbnRhdGlvbi52ZXJ0aWNhbDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNi51aS5wbGFjZW1lbnQuZml4ZWQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzYubWVudS5zcGFjaW5nO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ3BvcG92ZXItYXNpZGUtc3ViLW1lbnUnO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE2Lmhvc3Q7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTYuX3N0eWxlO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzE2Ll9vcmllbnRhdGlvbjtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8xNi5jb2xsYXBzZWQ7XG4gICAgY3VyclZhbF84O1xuICAgIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfMzYubWVudS5pdGVtcztcbiAgICBjdXJyVmFsXzk7XG4gICAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi50b2dnbGUoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQXNpZGVDb21wb25lbnRfNl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzM2LmNvbGxhcHNlZCAmJiAoX2RlY2wwXzM2LmJyZWFrcG9pbnQuY3VycmVudCAhPT0gX2RlY2wwXzM2LnVpLmJyZWFrcG9pbnQubW9iaWxlKSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNi51aS5icmVha3BvaW50Lm1vYmlsZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM2LmRldmljZS5wbGF0Zm9ybS53aW5kb3dzO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzYudWkub3JpZW50YXRpb24uaG9yaXpvbnRhbDtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM2LnVpLmFsaWduLmNlbnRlcjtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEzLmhvc3Q7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMy5fb3JpZW50YXRpb247XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMy5fZ3V0dGVyO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMTMuX3NwYWNpbmc7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8xMy5fcGFkZGluZztcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8xMy5fYWxpZ247XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzEzLl9qdXN0aWZ5O1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IF9kZWNsMF8xMy5fd3JhcDtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSAoX2RlY2wwXzM2LmNvbGxhcHNlZD8gX2RlY2wwXzM2LnVpLmljb25zLmRvdWJsZUNoZXZyb25SaWdodDogX2RlY2wwXzM2LnVpLmljb25zLmRvdWJsZUNoZXZyb25MZWZ0KTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBfZGVjbDBfMTIuaG9zdDtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMTIuX3NpemU7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gX2RlY2wwXzEyLl9pY29uO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IF9kZWNsMF8xMi50eXBlO1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8xMi50YWdzO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9ICFfZGVjbDBfMzYuY29sbGFwc2VkO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IF9kZWNsMF8zNi51aS5hbGlnbi5zdHJldGNoO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9IF9kZWNsMF8xMy5ob3N0O1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9IF9kZWNsMF8xMy5fb3JpZW50YXRpb247XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gX2RlY2wwXzEzLl9ndXR0ZXI7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gX2RlY2wwXzEzLl9zcGFjaW5nO1xuICBjdXJyVmFsXzI0O1xuICBjb25zdCBjdXJyVmFsXzI1OmFueSA9IF9kZWNsMF8xMy5fcGFkZGluZztcbiAgY3VyclZhbF8yNTtcbiAgY29uc3QgY3VyclZhbF8yNjphbnkgPSBfZGVjbDBfMTMuX2FsaWduO1xuICBjdXJyVmFsXzI2O1xuICBjb25zdCBjdXJyVmFsXzI3OmFueSA9IF9kZWNsMF8xMy5fanVzdGlmeTtcbiAgY3VyclZhbF8yNztcbiAgY29uc3QgY3VyclZhbF8yODphbnkgPSBfZGVjbDBfMTMuX3dyYXA7XG4gIGN1cnJWYWxfMjg7XG4gIGNvbnN0IGN1cnJWYWxfMjk6YW55ID0gISFfZGVjbDBfMzYuY29udGVudFRlbXBsYXRlO1xuICBjdXJyVmFsXzI5O1xuICBjb25zdCBjdXJyVmFsXzMwOmFueSA9ICEhX2RlY2wwXzM2Lm1lbnU7XG4gIGN1cnJWYWxfMzA7XG4gIGNvbnN0IHBkXzMxOmFueSA9ICgoPGFueT4oX2RlY2wwXzM2LmNvbGxhcHNlZCA9ICFfZGVjbDBfMzYuY29sbGFwc2VkKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzI6YW55ID0gKCg8YW55PihfZGVjbDBfMzYub3BlbmVkID0gZmFsc2UpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQm9keUNvbXBvbmVudF9Ib3N0XzdfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3Lmhvc3Q7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcEJvZHlDb21wb25lbnRfN18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19BcHBDb250ZW50Q29tcG9uZW50X0hvc3RfOF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzguaG9zdDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM4LndpdGhBc2lkZTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM4LndpdGhGb290ZXI7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zOC53aXRoQnJlYWRjcnVtYnM7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zOC53aW5kb3dzO1xuICBjdXJyVmFsXzQ7XG59XG5mdW5jdGlvbiBfVmlld19BcHBDb250ZW50Q29tcG9uZW50XzhfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwRm9vdGVyQ29tcG9uZW50X0hvc3RfOV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzkuaG9zdDtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwRm9vdGVyQ29tcG9uZW50XzlfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQnVzeW5lc3NDb21wb25lbnRfSG9zdF8xMF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNDAuaG9zdDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzQwLnN0eWxlO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19BcHBCdXN5bmVzc0NvbXBvbmVudF8xMF8xKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNDAudWkuc2l6ZS5sYXJnZTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzMwLmhvc3Q7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zMC5fc2l6ZTtcbiAgY3VyclZhbF8yO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQnVzeW5lc3NDb21wb25lbnRfMTBfMigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwQnVzeW5lc3NDb21wb25lbnRfMTBfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzQwLnVpLmJyZWFrcG9pbnQubW9iaWxlO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNDAudWkuYnJlYWtwb2ludC50YWJsZXQ7XG4gIGN1cnJWYWxfMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcFBhZ2VIZWFkZXJDb21wb25lbnRfSG9zdF8xMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfNDEuaG9zdDtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfQXBwUGFnZUhlYWRlckNvbXBvbmVudF8xMV8xKCk6dm9pZCB7XG4gIGlmICghIV9kZWNsMF80MS5pY29uKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzQxLmljb247XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTIuaG9zdDtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMi5fc2l6ZTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xMi5faWNvbjtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMi50eXBlO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEyLnRhZ3M7XG4gICAgY3VyclZhbF81O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19BcHBQYWdlSGVhZGVyQ29tcG9uZW50XzExXzIoKTp2b2lkIHtcbiAgaWYgKCEhX2RlY2wwXzQxLnRlYXNlcikge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF80MS50ZWFzZXI7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19BcHBQYWdlSGVhZGVyQ29tcG9uZW50XzExXzMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X0FwcFBhZ2VIZWFkZXJDb21wb25lbnRfMTFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzQxLnVpLm9yaWVudGF0aW9uLmhvcml6b250YWw7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF80MS51aS5hbGlnbi5jZW50ZXI7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xMy5ob3N0O1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTMuX29yaWVudGF0aW9uO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTMuX2d1dHRlcjtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE