angular2
Version:
Angular 2 - a web framework for modern web apps
106 lines • 21.2 kB
JavaScript
import { Injector, provide, Provider } from "angular2/src/core/di";
import { AnimationBuilder } from 'angular2/src/animate/animation_builder';
import { BrowserDetails } from 'angular2/src/animate/browser_details';
import { Reflector, reflector } from 'angular2/src/core/reflection/reflection';
import { Parser, Lexer } from 'angular2/src/core/change_detection/change_detection';
import { EventManager, EVENT_MANAGER_PLUGINS } from 'angular2/platform/common_dom';
import { ProtoViewFactory } from 'angular2/src/core/linker/proto_view_factory';
import { BrowserDomAdapter } from 'angular2/src/platform/browser/browser_adapter';
import { KeyEventsPlugin } from 'angular2/src/platform/dom/events/key_events';
import { HammerGesturesPlugin } from 'angular2/src/platform/dom/events/hammer_gestures';
import { AppViewPool, APP_VIEW_POOL_CAPACITY } from 'angular2/src/core/linker/view_pool';
import { Renderer } from 'angular2/src/core/render/api';
import { AppRootUrl } from 'angular2/src/compiler/app_root_url';
import { DOCUMENT } from 'angular2/src/platform/dom/dom_tokens';
import { DomRenderer, DomRenderer_ } from 'angular2/src/platform/dom/dom_renderer';
import { DomEventsPlugin } from 'angular2/src/platform/dom/events/dom_events';
import { APP_ID_RANDOM_PROVIDER } from 'angular2/src/core/application_tokens';
import { ElementSchemaRegistry } from 'angular2/src/compiler/schema/element_schema_registry';
import { DomElementSchemaRegistry } from 'angular2/src/compiler/schema/dom_element_schema_registry';
import { SharedStylesHost, DomSharedStylesHost } from 'angular2/src/platform/dom/shared_styles_host';
import { DOM } from 'angular2/src/platform/dom/dom_adapter';
import { NgZone } from 'angular2/src/core/zone/ng_zone';
import { AppViewManager, AppViewManager_ } from 'angular2/src/core/linker/view_manager';
import { AppViewManagerUtils } from 'angular2/src/core/linker/view_manager_utils';
import { AppViewListener } from 'angular2/src/core/linker/view_listener';
import { ViewResolver } from 'angular2/src/core/linker/view_resolver';
import { DirectiveResolver } from 'angular2/src/core/linker/directive_resolver';
import { ExceptionHandler } from 'angular2/src/facade/exceptions';
import { DynamicComponentLoader, DynamicComponentLoader_ } from 'angular2/src/core/linker/dynamic_component_loader';
import { UrlResolver } from 'angular2/src/compiler/url_resolver';
import { Testability } from 'angular2/src/core/testability/testability';
import { XHR } from 'angular2/src/compiler/xhr';
import { XHRImpl } from 'angular2/src/platform/browser/xhr_impl';
import { Serializer } from 'angular2/src/web_workers/shared/serializer';
import { ON_WEB_WORKER } from 'angular2/src/web_workers/shared/api';
import { RenderProtoViewRefStore } from 'angular2/src/web_workers/shared/render_proto_view_ref_store';
import { RenderViewWithFragmentsStore } from 'angular2/src/web_workers/shared/render_view_with_fragments_store';
import { AnchorBasedAppRootUrl } from 'angular2/src/compiler/anchor_based_app_root_url';
import { WebWorkerApplication } from 'angular2/src/web_workers/ui/impl';
import { MessageBus } from 'angular2/src/web_workers/shared/message_bus';
import { MessageBasedRenderer } from 'angular2/src/web_workers/ui/renderer';
import { MessageBasedXHRImpl } from 'angular2/src/web_workers/ui/xhr_impl';
import { WebWorkerSetup } from 'angular2/src/web_workers/ui/setup';
import { ServiceMessageBrokerFactory, ServiceMessageBrokerFactory_ } from 'angular2/src/web_workers/shared/service_message_broker';
import { ClientMessageBrokerFactory, ClientMessageBrokerFactory_ } from 'angular2/src/web_workers/shared/client_message_broker';
import { PLATFORM_DIRECTIVES, PLATFORM_PIPES } from "angular2/src/core/platform_directives_and_pipes";
import { COMMON_DIRECTIVES, COMMON_PIPES } from "angular2/common";
var _rootInjector;
// Contains everything that is safe to share between applications.
var _rootProviders = [provide(Reflector, { useValue: reflector })];
// TODO: This code is nearly identical to core/application. There should be a way to only write it
// once
function _injectorProviders() {
return [
provide(DOCUMENT, { useValue: DOM.defaultDoc() }),
EventManager,
new Provider(EVENT_MANAGER_PLUGINS, { useClass: DomEventsPlugin, multi: true }),
new Provider(EVENT_MANAGER_PLUGINS, { useClass: KeyEventsPlugin, multi: true }),
new Provider(EVENT_MANAGER_PLUGINS, { useClass: HammerGesturesPlugin, multi: true }),
provide(DomRenderer, { useClass: DomRenderer_ }),
provide(Renderer, { useExisting: DomRenderer }),
APP_ID_RANDOM_PROVIDER,
DomSharedStylesHost,
provide(SharedStylesHost, { useExisting: DomSharedStylesHost }),
Serializer,
provide(ON_WEB_WORKER, { useValue: false }),
provide(ElementSchemaRegistry, { useValue: new DomElementSchemaRegistry() }),
RenderViewWithFragmentsStore,
RenderProtoViewRefStore,
AppViewPool,
provide(APP_VIEW_POOL_CAPACITY, { useValue: 10000 }),
provide(AppViewManager, { useClass: AppViewManager_ }),
AppViewManagerUtils,
AppViewListener,
ProtoViewFactory,
ViewResolver,
provide(PLATFORM_PIPES, { useValue: COMMON_PIPES, multi: true }),
provide(PLATFORM_DIRECTIVES, { useValue: COMMON_DIRECTIVES, multi: true }),
DirectiveResolver,
Parser,
Lexer,
provide(ExceptionHandler, { useFactory: () => new ExceptionHandler(DOM), deps: [] }),
provide(XHR, { useValue: new XHRImpl() }),
UrlResolver,
provide(DynamicComponentLoader, { useClass: DynamicComponentLoader_ }),
Testability,
AnchorBasedAppRootUrl,
provide(AppRootUrl, { useExisting: AnchorBasedAppRootUrl }),
WebWorkerApplication,
WebWorkerSetup,
MessageBasedXHRImpl,
MessageBasedRenderer,
provide(ServiceMessageBrokerFactory, { useClass: ServiceMessageBrokerFactory_ }),
provide(ClientMessageBrokerFactory, { useClass: ClientMessageBrokerFactory_ }),
BrowserDetails,
AnimationBuilder
];
}
export function createInjector(zone, bus) {
BrowserDomAdapter.makeCurrent();
_rootProviders.push(provide(NgZone, { useValue: zone }));
_rootProviders.push(provide(MessageBus, { useValue: bus }));
var injector = Injector.resolveAndCreate(_rootProviders);
return injector.resolveAndCreateChild(_injectorProviders());
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlfYmluZGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbmd1bGFyMi9zcmMvd2ViX3dvcmtlcnMvdWkvZGlfYmluZGluZ3MudHMiXSwibmFtZXMiOlsiX2luamVjdG9yUHJvdmlkZXJzIiwiY3JlYXRlSW5qZWN0b3IiXSwibWFwcGluZ3MiOiJPQUVPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxzQkFBc0I7T0FDekQsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QztPQUNoRSxFQUFDLGNBQWMsRUFBQyxNQUFNLHNDQUFzQztPQUM1RCxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSx5Q0FBeUM7T0FDckUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0scURBQXFEO09BQzFFLEVBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sOEJBQThCO09BQ3pFLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2Q0FBNkM7T0FDckUsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtDQUErQztPQUN4RSxFQUFDLGVBQWUsRUFBQyxNQUFNLDZDQUE2QztPQUNwRSxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0RBQWtEO09BQzlFLEVBQUMsV0FBVyxFQUFFLHNCQUFzQixFQUFDLE1BQU0sb0NBQW9DO09BQy9FLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCO09BQzlDLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0NBQW9DO09BQ3RELEVBQUMsUUFBUSxFQUFDLE1BQU0sc0NBQXNDO09BQ3RELEVBQUMsV0FBVyxFQUFFLFlBQVksRUFBQyxNQUFNLHdDQUF3QztPQUN6RSxFQUFDLGVBQWUsRUFBQyxNQUFNLDZDQUE2QztPQUNwRSxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDO09BQ3BFLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzREFBc0Q7T0FDbkYsRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBEQUEwRDtPQUMxRixFQUFDLGdCQUFn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LEVBQUVBLHVCQUF1QkEsRUFBQ0EsQ0FBQ0E7UUFDcEVBLFdBQVdBO1FBQ1hBLHFCQUFxQkE7UUFDckJBLE9BQU9BLENBQUNBLFVBQVVBLEVBQUVBLEVBQUNBLFdBQVdBLEVBQUVBLHFCQUFxQkEsRUFBQ0EsQ0FBQ0E7UUFDekRBLG9CQUFvQkE7UUFDcEJBLGNBQWNBO1FBQ2RBLG1CQUFtQkE7UUFDbkJBLG9CQUFvQkE7UUFDcEJBLE9BQU9BLENBQUNBLDJCQUEyQkEsRUFBRUEsRUFBQ0EsUUFBUUEsRUFBRUEsNEJBQTRCQSxFQUFDQSxDQUFDQTtRQUM5RUEsT0FBT0EsQ0FBQ0EsMEJBQTBCQSxFQUFFQSxFQUFDQSxRQUFRQSxFQUFFQSwyQkFBMkJBLEVBQUNBLENBQUNBO1FBQzVFQSxjQUFjQTtRQUNkQSxnQkFBZ0JBO0tBQ2pCQSxDQUFDQTtBQUNKQSxDQUFDQTtBQUVELCtCQUErQixJQUFZLEVBQUUsR0FBZTtJQUMxREMsaUJBQWlCQSxDQUFDQSxXQUFXQSxFQUFFQSxDQUFDQTtJQUNoQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsRUFBRUEsRUFBQ0EsUUFBUUEsRUFBRUEsSUFBSUEsRUFBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDdkRBLGNBQWNBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLFVBQVVBLEVBQUVBLEVBQUNBLFFBQVFBLEVBQUVBLEdBQUdBLEVBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBQzFEQSxJQUFJQSxRQUFRQSxHQUFhQSxRQUFRQSxDQUFDQSxnQkFBZ0JBLENBQUNBLGNBQWNBLENBQUNBLENBQUNBO0lBQ25FQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxxQkFBcUJBLENBQUNBLGtCQUFrQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0E7QUFDOURBLENBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETyAoanRlcGxpdHo2MDIpOiBUaGlzIHdob2xlIGZpbGUgaXMgbmVhcmx5IGlkZW50aWNhbCB0byBjb3JlL2FwcGxpY2F0aW9uLnRzLlxuLy8gVGhlcmUgc2hvdWxkIGJlIGEgd2F5IHRvIHJlZmFjdG9yIGFwcGxpY2F0aW9uIHNvIHRoYXQgdGhpcyBmaWxlIGlzIHVubmVjZXNzYXJ5LiBTZWUgIzMyNzdcbmltcG9ydCB7SW5qZWN0b3IsIHByb3ZpZGUsIFByb3ZpZGVyfSBmcm9tIFwiYW5ndWxhcjIvc3JjL2NvcmUvZGlcIjtcbmltcG9ydCB7QW5pbWF0aW9uQnVpbGRlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2FuaW1hdGUvYW5pbWF0aW9uX2J1aWxkZXInO1xuaW1wb3J0IHtCcm93c2VyRGV0YWlsc30gZnJvbSAnYW5ndWxhcjIvc3JjL2FuaW1hdGUvYnJvd3Nlcl9kZXRhaWxzJztcbmltcG9ydCB7UmVmbGVjdG9yLCByZWZsZWN0b3J9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL3JlZmxlY3Rpb24vcmVmbGVjdGlvbic7XG5pbXBvcnQge1BhcnNlciwgTGV4ZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL2NoYW5nZV9kZXRlY3Rpb24vY2hhbmdlX2RldGVjdGlvbic7XG5pbXBvcnQge0V2ZW50TWFuYWdlciwgRVZFTlRfTUFOQUdFUl9QTFVHSU5TfSBmcm9tICdhbmd1bGFyMi9wbGF0Zm9ybS9jb21tb25fZG9tJztcbmltcG9ydCB7UHJvdG9WaWV3RmFjdG9yeX0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvbGlua2VyL3Byb3RvX3ZpZXdfZmFjdG9yeSc7XG5pbXBvcnQge0Jyb3dzZXJEb21BZGFwdGVyfSBmcm9tICdhbmd1bGFyMi9zcmMvcGxhdGZvcm0vYnJvd3Nlci9icm93c2VyX2FkYXB0ZXInO1xuaW1wb3J0IHtLZXlFdmVudHNQbHVnaW59IGZyb20gJ2FuZ3VsYXIyL3NyYy9wbGF0Zm9ybS9kb20vZXZlbnRzL2tleV9ldmVudHMnO1xuaW1wb3J0IHtIYW1tZXJHZXN0dXJlc1BsdWdpbn0gZnJvbSAnYW5ndWxhcjIvc3JjL3BsYXRmb3JtL2RvbS9ldmVudHMvaGFtbWVyX2dlc3R1cmVzJztcbmltcG9ydCB7QXBwVmlld1Bvb2wsIEFQUF9WSUVXX1BPT0xfQ0FQQUNJVFl9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL2xpbmtlci92aWV3X3Bvb2wnO1xuaW1wb3J0IHtSZW5kZXJlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvcmVuZGVyL2FwaSc7XG5pbXBvcnQge0FwcFJvb3RVcmx9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb21waWxlci9hcHBfcm9vdF91cmwnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnYW5ndWxhcjIvc3JjL3BsYXRmb3JtL2RvbS9kb21fdG9rZW5zJztcbmltcG9ydCB7RG9tUmVuZGVyZXIsIERvbVJlbmRlcmVyX30gZnJvbSAnYW5ndWxhcjIvc3JjL3BsYXRmb3JtL2RvbS9kb21fcmVuZGVyZXInO1xuaW1wb3J0IHtEb21FdmVudHNQbHVnaW59IGZyb20gJ2FuZ3VsYXIyL3NyYy9wbGF0Zm9ybS9kb20vZXZlbnRzL2RvbV9ldmVudHMnO1xuaW1wb3J0IHtBUFBfSURfUkFORE9NX1BST1ZJREVSfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9hcHBsaWNhdGlvbl90b2tlbnMnO1xuaW1wb3J0IHtFbGVtZW50U2NoZW1hUmVnaXN0cnl9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb21waWxlci9zY2hlbWEvZWxlbWVudF9zY2hlbWFfcmVnaXN0cnknO1xuaW1wb3J0IHtEb21FbGVtZW50U2NoZW1hUmVnaXN0cnl9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb21waWxlci9zY2hlbWEvZG9tX2VsZW1lbnRfc2NoZW1hX3JlZ2lzdHJ5JztcbmltcG9ydCB7U2hhcmVkU3R5bGVzSG9zdCwgRG9tU2hhcmVkU3R5bGVzSG9zdH0gZnJvbSAnYW5ndWxhcjIvc3JjL3BsYXRmb3JtL2RvbS9zaGFyZWRfc3R5bGVzX2hvc3QnO1xuaW1wb3J0IHtET019IGZyb20gJ2FuZ3VsYXIyL3NyYy9wbGF0Zm9ybS9kb20vZG9tX2FkYXB0ZXInO1xuaW1wb3J0IHtOZ1pvbmV9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL3pvbmUvbmdfem9uZSc7XG5pbXBvcnQge0FwcFZpZXdNYW5hZ2VyLCBBcHBWaWV3TWFuYWdlcl99IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL2xpbmtlci92aWV3X21hbmFnZXInO1xuaW1wb3J0IHtBcHBWaWV3TWFuYWdlclV0aWxzfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9saW5rZXIvdmlld19tYW5hZ2VyX3V0aWxzJztcbmltcG9ydCB7QXBwVmlld0xpc3RlbmVyfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9saW5rZXIvdmlld19saXN0ZW5lcic7XG5pbXBvcnQge1ZpZXdSZXNvbHZlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvbGlua2VyL3ZpZXdfcmVzb2x2ZXInO1xuaW1wb3J0IHtEaXJlY3RpdmVSZXNvbHZlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvbGlua2VyL2RpcmVjdGl2ZV9yZXNvbHZlcic7XG5pbXBvcnQge0V4Y2VwdGlvbkhhbmRsZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvZXhjZXB0aW9ucyc7XG5pbXBvcnQge1xuICBEeW5hbWljQ29tcG9uZW50TG9hZGVyLFxuICBEeW5hbWljQ29tcG9uZW50TG9hZGVyX1xufSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9saW5rZXIvZHluYW1pY19jb21wb25lbnRfbG9hZGVyJztcbmltcG9ydCB7VXJsUmVzb2x2ZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb21waWxlci91cmxfcmVzb2x2ZXInO1xuaW1wb3J0IHtUZXN0YWJpbGl0eX0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvdGVzdGFiaWxpdHkvdGVzdGFiaWxpdHknO1xuaW1wb3J0IHtYSFJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb21waWxlci94aHInO1xuaW1wb3J0IHtYSFJJbXBsfSBmcm9tICdhbmd1bGFyMi9zcmMvcGxhdGZvcm0vYnJvd3Nlci94aHJfaW1wbCc7XG5pbXBvcnQge1NlcmlhbGl6ZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy93ZWJfd29ya2Vycy9zaGFyZWQvc2VyaWFsaXplcic7XG5pbXBvcnQge09OX1dFQl9XT1JLRVJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy93ZWJfd29ya2Vycy9zaGFyZWQvYXBpJztcbmltcG9ydCB7UmVuZGVyUHJvdG9WaWV3UmVmU3RvcmV9IGZyb20gJ2FuZ3VsYXIyL3NyYy93ZWJfd29ya2Vycy9zaGFyZWQvcmVuZGVyX3Byb3RvX3ZpZXdfcmVmX3N0b3JlJztcbmltcG9ydCB7XG4gIFJlbmRlclZpZXdXaXRoRnJhZ21lbnRzU3RvcmVcbn0gZnJvbSAnYW5ndWxhcjIvc3JjL3dlYl93b3JrZXJzL3NoYXJlZC9yZW5kZXJfdmlld193aXRoX2ZyYWdtZW50c19zdG9yZSc7XG5pbXBvcnQge0FuY2hvckJhc2VkQXBwUm9vdFVybH0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvbXBpbGVyL2FuY2hvcl9iYXNlZF9hcHBfcm9vdF91cmwnO1xuaW1wb3J0IHtXZWJXb3JrZXJBcHBsaWNhdGlvbn0gZnJvbSAnYW5ndWxhcjIvc3JjL3dlYl93b3JrZXJzL3VpL2ltcGwnO1xuaW1wb3J0IHtNZXNzYWdlQnVzfSBmcm9tICdhbmd1bGFyMi9zcmMvd2ViX3dvcmtlcnMvc2hhcmVkL21lc3NhZ2VfYnVzJztcbmltcG9ydCB7TWVzc2FnZUJhc2VkUmVuZGVyZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy93ZWJfd29ya2Vycy91aS9yZW5kZXJlcic7XG5pbXBvcnQge01lc3NhZ2VCYXNlZFhIUkltcGx9IGZyb20gJ2FuZ3VsYXIyL3NyYy93ZWJfd29ya2Vycy91aS94aHJfaW1wbCc7XG5pbXBvcnQge1dlYldvcmtlclNldHVwfSBmcm9tICdhbmd1bGFyMi9zcmMvd2ViX3dvcmtlcnMvdWkvc2V0dXAnO1xuaW1wb3J0IHtcbiAgU2VydmljZU1lc3NhZ2VCcm9rZXJGYWN0b3J5LFxuICBTZXJ2aWNlTWVzc2FnZUJyb2tlckZhY3RvcnlfXG59IGZyb20gJ2FuZ3VsYXIyL3NyYy93ZWJfd29ya2Vycy9zaGFyZWQvc2VydmljZV9tZXNzYWdlX2Jyb2tlcic7XG5pbXBvcnQge1xuICBDbGllbnRNZXNzYWdlQnJva2VyRmFjdG9yeSxcbiAgQ2xpZW50TWVzc2FnZUJyb2tlckZhY3RvcnlfXG59IGZyb20gJ2FuZ3VsYXIyL3NyYy93ZWJfd29ya2Vycy9zaGFyZWQvY2xpZW50X21lc3NhZ2VfYnJva2VyJztcbmltcG9ydCB7UExBVEZPUk1fRElSRUNUSVZFUywgUExBVEZPUk1fUElQRVN9IGZyb20gXCJhbmd1bGFyMi9zcmMvY29yZS9wbGF0Zm9ybV9kaXJlY3RpdmVzX2FuZF9waXBlc1wiO1xuaW1wb3J0IHtDT01NT05fRElSRUNUSVZFUywgQ09NTU9OX1BJUEVTfSBmcm9tIFwiYW5ndWxhcjIvY29tbW9uXCI7XG5cbnZhciBfcm9vdEluamVjdG9yOiBJbmplY3RvcjtcblxuLy8gQ29udGFpbnMgZXZlcnl0aGluZyB0aGF0IGlzIHNhZmUgdG8gc2hhcmUgYmV0d2VlbiBhcHBsaWNhdGlvbnMuXG52YXIgX3Jvb3RQcm92aWRlcnMgPSBbcHJvdmlkZShSZWZsZWN0b3IsIHt1c2VWYWx1ZTogcmVmbGVjdG9yfSldO1xuXG4vLyBUT0RPOiBUaGlzIGNvZGUgaXMgbmVhcmx5IGlkZW50aWNhbCB0byBjb3JlL2FwcGxpY2F0aW9uLiBUaGVyZSBzaG91bGQgYmUgYSB3YXkgdG8gb25seSB3cml0ZSBpdFxuLy8gb25jZVxuZnVuY3Rpb24gX2luamVjdG9yUHJvdmlkZXJzKCk6IGFueVtdIHtcbiAgcmV0dXJuIFtcbiAgICBwcm92aWRlKERPQ1VNRU5ULCB7dXNlVmFsdWU6IERPTS5kZWZhdWx0RG9jKCl9KSxcbiAgICBFdmVudE1hbmFnZXIsXG4gICAgbmV3IFByb3ZpZGVyKEVWRU5UX01BTkFHRVJfUExVR0lOUywge3VzZUNsYXNzOiBEb21FdmVudHNQbHVnaW4sIG11bHRpOiB0cnVlfSksXG4gICAgbmV3IFByb3ZpZGVyKEVWRU5UX01BTkFHRVJfUExVR0lOUywge3VzZUNsYXNzOiBLZXlFdmVudHNQbHVnaW4sIG11bHRpOiB0cnVlfSksXG4gICAgbmV3IFByb3ZpZGVyKEVWRU5UX01BTkFHRVJfUExVR0lOUywge3VzZUNsYXNzOiBIYW1tZXJHZXN0dXJlc1BsdWdpbiwgbXVsdGk6IHRydWV9KSxcbiAgICBwcm92aWRlKERvbVJlbmRlcmVyLCB7dXNlQ2xhc3M6IERvbVJlbmRlcmVyX30pLFxuICAgIHByb3ZpZGUoUmVuZGVyZXIsIHt1c2VFeGlzdGluZzogRG9tUmVuZGVyZXJ9KSxcbiAgICBBUFBfSURfUkFORE9NX1BST1ZJREVSLFxuICAgIERvbVNoYXJlZFN0eWxlc0hvc3QsXG4gICAgcHJvdmlkZShTaGFyZWRTdHlsZXNIb3N0LCB7dXNlRXhpc3Rpbmc6IERvbVNoYXJlZFN0eWxlc0hvc3R9KSxcbiAgICBTZXJpYWxpemVyLFxuICAgIHByb3ZpZGUoT05fV0VCX1dPUktFUiwge3VzZVZhbHVlOiBmYWxzZX0pLFxuICAgIHByb3ZpZGUoRWxlbWVudFNjaGVtYVJlZ2lzdHJ5LCB7dXNlVmFsdWU6IG5ldyBEb21FbGVtZW50U2NoZW1hUmVnaXN0cnkoKX0pLFxuICAgIFJlbmRlclZpZXdXaXRoRnJhZ21lbnRzU3RvcmUsXG4gICAgUmVuZGVyUHJvdG9WaWV3UmVmU3RvcmUsXG4gICAgQXBwVmlld1Bvb2wsXG4gICAgcHJvdmlkZShBUFBfVklFV19QT09MX0NBUEFDSVRZLCB7dXNlVmFsdWU6IDEwMDAwfSksXG4gICAgcHJvdmlkZShBcHBWaWV3TWFuYWdlciwge3VzZUNsYXNzOiBBcHBWaWV3TWFuYWdlcl99KSxcbiAgICBBcHBWaWV3TWFuYWdlclV0aWxzLFxuICAgIEFwcFZpZXdMaXN0ZW5lcixcbiAgICBQcm90b1ZpZXdGYWN0b3J5LFxuICAgIFZpZXdSZXNvbHZlcixcbiAgICBwcm92aWRlKFBMQVRGT1JNX1BJUEVTLCB7dXNlVmFsdWU6IENPTU1PTl9QSVBFUywgbXVsdGk6IHRydWV9KSxcbiAgICBwcm92aWRlKFBMQVRGT1JNX0RJUkVDVElWRVMsIHt1c2VWYWx1ZTogQ09NTU9OX0RJUkVDVElWRVMsIG11bHRpOiB0cnVlfSksXG4gICAgRGlyZWN0aXZlUmVzb2x2ZXIsXG4gICAgUGFyc2VyLFxuICAgIExleGVyLFxuICAgIHByb3ZpZGUoRXhjZXB0aW9uSGFuZGxlciwge3VzZUZhY3Rvcnk6ICgpID0+IG5ldyBFeGNlcHRpb25IYW5kbGVyKERPTSksIGRlcHM6IFtdfSksXG4gICAgcHJvdmlkZShYSFIsIHt1c2VWYWx1ZTogbmV3IFhIUkltcGwoKX0pLFxuICAgIFVybFJlc29sdmVyLFxuICAgIHByb3ZpZGUoRHluYW1pY0NvbXBvbmVudExvYWRlciwge3VzZUNsYXNzOiBEeW5hbWljQ29tcG9uZW50TG9hZGVyX30pLFxuICAgIFRlc3RhYmlsaXR5LFxuICAgIEFuY2hvckJhc2VkQXBwUm9vdFVybCxcbiAgICBwcm92aWRlKEFwcFJvb3RVcmwsIHt1c2VFeGlzdGluZzogQW5jaG9yQmFzZWRBcHBSb290VXJsfSksXG4gICAgV2ViV29ya2VyQXBwbGljYXRpb24sXG4gICAgV2ViV29ya2VyU2V0dXAsXG4gICAgTWVzc2FnZUJhc2VkWEhSSW1wbCxcbiAgICBNZXNzYWdlQmFzZWRSZW5kZXJlcixcbiAgICBwcm92aWRlKFNlcnZpY2VNZXNzYWdlQnJva2VyRmFjdG9yeSwge3VzZUNsYXNzOiBTZXJ2aWNlTWVzc2FnZUJyb2tlckZhY3RvcnlffSksXG4gICAgcHJvdmlkZShDbGllbnRNZXNzYWdlQnJva2VyRmFjdG9yeSwge3VzZUNsYXNzOiBDbGllbnRNZXNzYWdlQnJva2VyRmFjdG9yeV99KSxcbiAgICBCcm93c2VyRGV0YWlscyxcbiAgICBBbmltYXRpb25CdWlsZGVyXG4gIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbmplY3Rvcih6b25lOiBOZ1pvbmUsIGJ1czogTWVzc2FnZUJ1cyk6IEluamVjdG9yIHtcbiAgQnJvd3NlckRvbUFkYXB0ZXIubWFrZUN1cnJlbnQoKTtcbiAgX3Jvb3RQcm92aWRlcnMucHVzaChwcm92aWRlKE5nWm9uZSwge3VzZVZhbHVlOiB6b25lfSkpO1xuICBfcm9vdFByb3ZpZGVycy5wdXNoKHByb3ZpZGUoTWVzc2FnZUJ1cywge3VzZVZhbHVlOiBidXN9KSk7XG4gIHZhciBpbmplY3RvcjogSW5qZWN0b3IgPSBJbmplY3Rvci5yZXNvbHZlQW5kQ3JlYXRlKF9yb290UHJvdmlkZXJzKTtcbiAgcmV0dXJuIGluamVjdG9yLnJlc29sdmVBbmRDcmVhdGVDaGlsZChfaW5qZWN0b3JQcm92aWRlcnMoKSk7XG59XG4iXX0=