{"version":3,"sources":["../node_modules/promise-polyfill/dist/polyfill.min.js","../node_modules/bluebird/js/browser/bluebird.js","../node_modules/requirejs/require.js","../node_modules/jquery/dist/jquery.js","../node_modules/moment/moment.js","../node_modules/aurelia-binding/dist/commonjs/aurelia-binding.js","../node_modules/aurelia-bootstrapper/src/aurelia-bootstrapper.ts","../node_modules/aurelia-dependency-injection/dist/commonjs/aurelia-dependency-injection.js","../node_modules/aurelia-dialog/dist/umd/aurelia-dialog.js","../node_modules/aurelia-event-aggregator/dist/commonjs/aurelia-event-aggregator.js","../node_modules/aurelia-framework/src/framework-configuration.ts","../node_modules/aurelia-framework/src/aurelia.ts","../node_modules/aurelia-history-browser/src/link-handler.ts","../node_modules/aurelia-history-browser/src/browser-history.ts","../node_modules/aurelia-history-browser/src/aurelia-history-browser.ts","../node_modules/aurelia-history/dist/commonjs/aurelia-history.js","../node_modules/aurelia-http-client/dist/commonjs/aurelia-http-client.js","../node_modules/aurelia-i18n/dist/umd/aurelia-i18n.js","../node_modules/aurelia-loader-default/dist/commonjs/aurelia-loader-default.js","../node_modules/aurelia-loader/dist/commonjs/aurelia-loader.js","../node_modules/aurelia-logging-console/dist/commonjs/aurelia-logging-console.js","../node_modules/aurelia-logging/dist/commonjs/aurelia-logging.js","../node_modules/aurelia-metadata/dist/commonjs/aurelia-metadata.js","../node_modules/aurelia-pal-browser/dist/commonjs/aurelia-pal-browser.js","../node_modules/aurelia-pal/dist/commonjs/aurelia-pal.js","../node_modules/aurelia-path/src/index.ts","../node_modules/aurelia-polyfills/dist/commonjs/aurelia-polyfills.js","../node_modules/aurelia-route-recognizer/dist/commonjs/aurelia-route-recognizer.js","../node_modules/aurelia-router/src/navigation-instruction.ts","../node_modules/aurelia-router/src/nav-model.ts","../node_modules/aurelia-router/src/util.ts","../node_modules/aurelia-router/src/router-configuration.ts","../node_modules/aurelia-router/src/router.ts","../node_modules/aurelia-router/src/next.ts","../node_modules/aurelia-router/src/pipeline.ts","../node_modules/aurelia-router/src/navigation-commands.ts","../node_modules/aurelia-router/src/navigation-plan.ts","../node_modules/aurelia-router/src/step-build-navigation-plan.ts","../node_modules/aurelia-router/src/utilities-route-loading.ts","../node_modules/aurelia-router/src/route-loader.ts","../node_modules/aurelia-router/src/step-load-route.ts","../node_modules/aurelia-router/src/step-commit-changes.ts","../node_modules/aurelia-router/src/activation-strategy.ts","../node_modules/aurelia-router/src/utilities-activation.ts","../node_modules/aurelia-router/src/step-activation.ts","../node_modules/aurelia-router/src/pipeline-provider.ts","../node_modules/aurelia-router/src/app-router.ts","../node_modules/aurelia-router/src/pipeline-status.ts","../node_modules/aurelia-router/src/router-event.ts","../node_modules/aurelia-router/src/pipeline-slot-name.ts","../node_modules/aurelia-task-queue/dist/commonjs/aurelia-task-queue.js","../node_modules/aurelia-templating-binding/node_modules/tslib/tslib.es6.js","../node_modules/aurelia-templating-binding/src/attribute-map.ts","../node_modules/aurelia-templating-binding/src/interpolation-binding-expression.ts","../node_modules/aurelia-templating-binding/src/let-expression.ts","../node_modules/aurelia-templating-binding/src/let-interpolation-expression.ts","../node_modules/aurelia-templating-binding/src/syntax-interpreter.ts","../node_modules/aurelia-templating-binding/src/binding-language.ts","../node_modules/aurelia-templating-binding/src/aurelia-templating-binding.ts","../node_modules/aurelia-templating-resources/node_modules/tslib/tslib.es6.js","../node_modules/aurelia-templating-resources/src/compose.ts","../node_modules/aurelia-templating-resources/src/if-core.ts","../node_modules/aurelia-templating-resources/src/if.ts","../node_modules/aurelia-templating-resources/src/else.ts","../node_modules/aurelia-templating-resources/src/with.ts","../node_modules/aurelia-templating-resources/src/repeat-utilities.ts","../node_modules/aurelia-templating-resources/src/array-repeat-strategy.ts","../node_modules/aurelia-templating-resources/src/map-repeat-strategy.ts","../node_modules/aurelia-templating-resources/src/null-repeat-strategy.ts","../node_modules/aurelia-templating-resources/src/number-repeat-strategy.ts","../node_modules/aurelia-templating-resources/src/set-repeat-strategy.ts","../node_modules/aurelia-templating-resources/src/repeat-strategy-locator.ts","../node_modules/aurelia-templating-resources/src/analyze-view-factory.ts","../node_modules/aurelia-templating-resources/src/abstract-repeater.ts","../node_modules/aurelia-templating-resources/src/repeat.ts","../node_modules/aurelia-templating-resources/src/aurelia-hide-style.ts","../node_modules/aurelia-templating-resources/src/show.ts","../node_modules/aurelia-templating-resources/src/hide.ts","../node_modules/aurelia-templating-resources/src/html-sanitizer.ts","../node_modules/aurelia-templating-resources/src/sanitize-html.ts","../node_modules/aurelia-templating-resources/src/replaceable.ts","../node_modules/aurelia-templating-resources/src/focus.ts","../node_modules/aurelia-templating-resources/src/css-resource.ts","../node_modules/aurelia-templating-resources/src/attr-binding-behavior.ts","../node_modules/aurelia-templating-resources/src/binding-mode-behaviors.ts","../node_modules/aurelia-templating-resources/src/throttle-binding-behavior.ts","../node_modules/aurelia-templating-resources/src/debounce-binding-behavior.ts","../node_modules/aurelia-templating-resources/src/self-binding-behavior.ts","../node_modules/aurelia-templating-resources/src/binding-signaler.ts","../node_modules/aurelia-templating-resources/src/signal-binding-behavior.ts","../node_modules/aurelia-templating-resources/src/update-trigger-binding-behavior.ts","../node_modules/aurelia-templating-resources/src/dynamic-element.ts","../node_modules/aurelia-templating-resources/src/html-resource-plugin.ts","../node_modules/aurelia-templating-resources/src/aurelia-templating-resources.ts","../node_modules/aurelia-templating-router/node_modules/tslib/tslib.es6.js","../node_modules/aurelia-templating-router/src/router-view.ts","../node_modules/aurelia-templating-router/src/route-loader.ts","../node_modules/aurelia-templating-router/src/route-href.ts","../node_modules/aurelia-templating-router/src/aurelia-templating-router.ts","../node_modules/aurelia-templating/src/element-events.ts","../node_modules/aurelia-templating/src/instructions.ts","../node_modules/aurelia-templating/node_modules/tslib/tslib.es6.js","../node_modules/aurelia-templating/src/util.ts","../node_modules/aurelia-templating/src/behavior-property-observer.ts","../node_modules/aurelia-templating/src/bindable-property.ts","../node_modules/aurelia-templating/src/view-locator.ts","../node_modules/aurelia-templating/src/binding-language.ts","../node_modules/aurelia-templating/src/shadow-dom.ts","../node_modules/aurelia-templating/src/composition-transaction.ts","../node_modules/aurelia-templating/src/view.ts","../node_modules/aurelia-templating/src/animator.ts","../node_modules/aurelia-templating/src/view-slot.ts","../node_modules/aurelia-templating/src/view-factory.ts","../node_modules/aurelia-templating/src/view-compiler.ts","../node_modules/aurelia-templating/src/view-engine-hooks-resource.ts","../node_modules/aurelia-templating/src/module-analyzer.ts","../node_modules/aurelia-templating/src/view-engine.ts","../node_modules/aurelia-templating/src/controller.ts","../node_modules/aurelia-templating/src/html-behavior.ts","../node_modules/aurelia-templating/src/view-resources.ts","../node_modules/aurelia-templating/src/view-strategy.ts","../node_modules/aurelia-templating/src/swap-strategies.ts","../node_modules/aurelia-templating/src/composition-engine.ts","../node_modules/aurelia-templating/src/animation-event.ts","../node_modules/aurelia-templating/src/child-observation.ts","../node_modules/aurelia-templating/src/element-config.ts","../node_modules/aurelia-templating/src/decorators.ts","../node_modules/aurelia-templating/src/templating-engine.ts","../node_modules/aurelia-testing/dist/commonjs/aurelia-testing.js","../node_modules/aurelia-testing/dist/commonjs/compile-spy.js","../node_modules/aurelia-testing/dist/commonjs/component-tester.js","../node_modules/aurelia-testing/dist/commonjs/view-spy.js","../node_modules/aurelia-testing/dist/commonjs/wait.js","../node_modules/i18next-xhr-backend/dist/commonjs/index.js","../node_modules/i18next-xhr-backend/dist/commonjs/utils.js","../node_modules/i18next-xhr-backend/index.js","../node_modules/i18next/dist/es/BackendConnector.js","../node_modules/i18next/dist/es/EventEmitter.js","../node_modules/i18next/dist/es/Interpolator.js","../node_modules/i18next/dist/es/LanguageUtils.js","../node_modules/i18next/dist/es/PluralResolver.js","../node_modules/i18next/dist/es/ResourceStore.js","../node_modules/i18next/dist/es/Translator.js","../node_modules/i18next/dist/es/defaults.js","../node_modules/i18next/dist/es/i18next.js","../node_modules/i18next/dist/es/index.js","../node_modules/i18next/dist/es/logger.js","../node_modules/i18next/dist/es/postProcessor.js","../node_modules/i18next/dist/es/utils.js","../node_modules/text/text.js"],"names":["PLATFORM","isInitialized","TheLogManager","ViewEngine","join","HtmlBehaviorResource","DOM","Container","ViewResources","Loader","BindingLanguage","TemplatingEngine","CompositionTransaction","relativeToFile","ViewSlot","tslib_1.__extends","History","RouteRecognizer","LogManager.getLogger","EventAggregator","PipelineStatus","RouterEvent","PipelineSlotName","camelCase","SVGAnalyzer","LogManager","bindingMode","enqueueBindingConnect","connectable","sourceContext","BehaviorInstruction","BindingExpression","ListenerExpression","delegationStrategy","CallExpression","Parser","ObserverLocator","EventManager","NameExpression","LiteralString","CompositionEngine","TaskQueue","bindable","noView","customElement","customAttribute","templateController","inject","BoundViewFactory","createOverrideContext","BindingBehavior","ValueConverter","mergeSplice","TargetInstruction","FEATURE","Animator","Optional","valueConverter","resource","DataAttributeObserver","bindingBehavior","mixin","targetContext","EventSubscriber","useView","useShadowDOM","getLogger","configure","configureHtmlResourcePlugin","Router","ViewLocator","Origin","SwapStrategies","ShadowDOM","inlineView","RouteLoader","AppRouter","subscriberCollection","metadata","resolver","TemplateRegistryEntry","ValueConverterResource","BindingBehaviorResource","protocol"],"mappings":"AAAA;AACA;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5nUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzhLA,IAAI,iBAAiB,GAAG,EAAE,CAAC;AAC3B,IAAI,YAA2E,CAAC;AAEhF,IAAM,YAAY,GAAG,IAAI,OAAO,CAAmB,UAAA,OAAO,EAAI,EAAA,OAAA,YAAY,GAAG,OAAO,CAAtB,EAAsB,CAAC,CAAC;AACtF,IAAM,IAAI,GAAGA,mBAAQ,CAAC,MAAM,CAAC;AAC7B,IAAM,UAAU,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,CAAE,OAA0B,CAAC,OAAO,CAAC;AAE1F,SAAS,KAAK,GAAA;AACZ,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;AAC7D,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC1B,KAAA;AAED,IAAA,OAAO,IAAI,OAAO,CAAO,UAAA,OAAO,EAAA;QAC9B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAA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AO,CAAC,CAAC;AAC9C,QAAA,IAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAlB,EAAkB,CAAC,CAAC;QAClE,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACjC,KAAC,CAAC,CAAC;AACP,CAAC;AASK,SAAU,SAAS,CAAC,SAAmB,EAAA;AAC3C,IAAA,IAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,SAAS,CAAC,OAAO,EAAE,CAAC,CAApB,EAAoB,CAAC,CAAC;AAC7D,IAAA,IAAI,iBAAiB;AAAE,QAAA,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,IAAA,OAAO,CAAC,CAAC;AACX,CAAC;AAMY,IAAA,QAAQ,GAAG,GAAG;;;;;;;;ACnM3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9qBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9IA,IAAM,MAAM,GAAGE,wBAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAClD,IAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,SAAS,QAAQ,CAAC,MAA8B,EAAE,KAAK,EAAA;AACrD,IAAA,IAAI,OAAO,CAAC;AACZ,IAAA,IAAI,IAAI,GAAG,YAAA;AACT,QAAA,OAAO,GAAG,KAAK,CAAC,KAAK,EAA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC50BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AM,IAAI,CAAC,EAAE;YACpB,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACvD,IAAI,aAAa,EAAE;gBACjB,iBAAiB,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aAC7C;iBAAM;gBACL,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACtB,WAAW,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;aAChE;SACF;aAAM;YACL,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACzB;KACF;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,GAAG,KAAK,WAAW,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;AACH;;;;;;;;;;ACzRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACl1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;;;;;;;;;;;;;;;;;;;;;;AC9BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;AACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;AA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A;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AnIpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AoIjpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjCA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"vendor-bundle.js","sourcesContent":[null,null,null,null,null,null,null,null,null,null,"/* eslint-disable @typescript-eslint/ban-types */\r\nimport * as TheLogManager from 'aurelia-logging';\r\nimport { ViewEngine, HtmlBehaviorResource } from 'aurelia-templating';\r\nimport { join } from 'aurelia-path';\r\nimport type { Container } from 'aurelia-dependency-injection';\r\nimport type { Aurelia } from './aurelia';\r\nimport type { Loader } from 'aurelia-loader';\r\n\r\nconst logger = TheLogManager.getLogger('aurelia');\r\nconst extPattern = /\\.[^/.]+$/;\r\n\r\nfunction runTasks(config: FrameworkConfiguration, tasks) {\r\n let current;\r\n let next = () => {\r\n current = tasks.shift();\r\n if (current) {\r\n return Promise.resolve(current(config)).then(next);\r\n }\r\n\r\n return Promise.resolve();\r\n };\r\n\r\n return next();\r\n}\r\n\r\nexport interface FrameworkPluginInfo {\r\n moduleId?: string;\r\n resourcesRelativeTo?: string[];\r\n configure?: (config: FrameworkConfiguration, pluginConfig?: any) => any;\r\n config?: any;\r\n}\r\n\r\nfunction loadPlugin(fwConfig: FrameworkConfiguration, loader: Loader, info: FrameworkPluginInfo) {\r\n logger.debug(`Loading plugin ${info.moduleId}.`);\r\n if (typeof info.moduleId === 'string') {\r\n fwConfig.resourcesRelativeTo = info.resourcesRelativeTo;\r\n\r\n let id = info.moduleId; // General plugins installed/configured by the end user.\r\n\r\n if (info.resourcesRelativeTo.length > 1 ) { // In case of bootstrapper installed plugins like `aurelia-templating-resources` or `aurelia-history-browser`.\r\n return loader.normalize(info.moduleId, info.resourcesRelativeTo[1])\r\n .then(normalizedId => _loadPlugin(normalizedId));\r\n }\r\n\r\n return _loadPlugin(id);\r\n } else if (typeof info.configure === 'function') {\r\n if (fwConfig.configuredPlugins.indexOf(info.configure) !== -1) {\r\n return Promise.resolve();\r\n }\r\n fwConfig.configuredPlugins.push(info.configure);\r\n // use info.config || {} to keep behavior consistent with loading from string\r\n return Promise.resolve(info.configure.call(null, fwConfig, info.config || {}));\r\n }\r\n throw new Error(invalidConfigMsg(info.moduleId || info.configure, 'plugin'));\r\n\r\n function _loadPlugin(moduleId) {\r\n return loader.loadModule(moduleId).then(m => { // eslint-disable-line consistent-return\r\n if ('configure' in m) {\r\n if (fwConfig.configuredPlugins.indexOf(m.configure) !== -1) {\r\n return Promise.resolve();\r\n }\r\n return Promise.resolve(m.configure(fwConfig, info.config || {})).then(() => {\r\n fwConfig.configuredPlugins.push(m.configure);\r\n fwConfig.resourcesRelativeTo = null;\r\n logger.debug(`Configured plugin ${info.moduleId}.`);\r\n });\r\n }\r\n\r\n fwConfig.resourcesRelativeTo = null;\r\n logger.debug(`Loaded plugin ${info.moduleId}.`);\r\n });\r\n }\r\n}\r\n\r\nfunction loadResources(aurelia, resourcesToLoad, appResources) {\r\n // if devs want to go all in static, and remove loader\r\n // the code after this fucntion shouldn't run\r\n // add a check to make sure it only runs when there is something to do so\r\n if (Object.keys(resourcesToLoad).length === 0) {\r\n return Promise.resolve();\r\n }\r\n let viewEngine = aurelia.container.get(ViewEngine);\r\n\r\n return Promise.all(Object.keys(resourcesToLoad).map(n => _normalize(resourcesToLoad[n])))\r\n .then(loads => {\r\n let names = [];\r\n let importIds = [];\r\n\r\n loads.forEach(l => {\r\n names.push(undefined);\r\n importIds.push(l.importId);\r\n });\r\n\r\n return viewEngine.importViewResources(importIds, names, appResources);\r\n });\r\n\r\n function _normalize(load) {\r\n let moduleId = load.moduleId;\r\n let ext = getExt(moduleId);\r\n\r\n if (isOtherResource(moduleId)) {\r\n moduleId = removeExt(moduleId);\r\n }\r\n\r\n return aurelia.loader.normalize(moduleId, load.relativeTo)\r\n .then(normalized => {\r\n return {\r\n name: load.moduleId,\r\n importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized\r\n };\r\n });\r\n }\r\n\r\n function isOtherResource(name) {\r\n let ext = getExt(name);\r\n if (!ext) return false;\r\n if (ext === '') return false;\r\n if (ext === '.js' || ext === '.ts') return false;\r\n return true;\r\n }\r\n\r\n function removeExt(name) {\r\n return name.replace(extPattern, '');\r\n }\r\n\r\n function addOriginalExt(normalized, ext) {\r\n return removeExt(normalized) + '.' + ext;\r\n }\r\n}\r\n\r\nfunction getExt(name: string) { // eslint-disable-line consistent-return\r\n let match = name.match(extPattern);\r\n if (match && match.length > 0) {\r\n return (match[0].split('.'))[1];\r\n }\r\n}\r\n\r\nfunction loadBehaviors(config: FrameworkConfiguration) {\r\n return Promise.all(config.behaviorsToLoad.map(m => m.load(config.container, m.target))).then(() => {\r\n config.behaviorsToLoad = null;\r\n });\r\n}\r\n\r\nfunction assertProcessed(plugins: FrameworkConfiguration) {\r\n if (plugins.processed) {\r\n throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');\r\n }\r\n}\r\n\r\nfunction invalidConfigMsg(cfg: any, type: string) {\r\n return `Invalid ${type} [${cfg}], ${type} must be specified as functions or relative module IDs.`;\r\n}\r\n\r\n/**\r\n * Manages configuring the aurelia framework instance.\r\n */\r\nexport class FrameworkConfiguration {\r\n /**\r\n * The root DI container used by the application.\r\n */\r\n container: Container;\r\n\r\n /**\r\n * The aurelia instance.\r\n */\r\n aurelia: Aurelia;\r\n\r\n /**\r\n * Plugin / feature loading instruction\r\n * @type {FrameworkPluginInfo[]}\r\n *\r\n * @internal\r\n */\r\n info: FrameworkPluginInfo[];\r\n\r\n /** @internal */\r\n processed: boolean;\r\n\r\n /** @internal */\r\n preTasks: any[];\r\n\r\n /** @internal */\r\n postTasks: any[];\r\n\r\n /** @internal */\r\n behaviorsToLoad: any[];\r\n\r\n /** @internal */\r\n configuredPlugins: any[];\r\n\r\n /** @internal */\r\n resourcesToLoad: Record;\r\n\r\n /** @internal */\r\n bootstrapperName: string;\r\n\r\n /** @internal */\r\n resourcesRelativeTo: string[];\r\n\r\n /**\r\n * Creates an instance of FrameworkConfiguration.\r\n * @param aurelia An instance of Aurelia.\r\n */\r\n constructor(aurelia: Aurelia) {\r\n this.aurelia = aurelia;\r\n this.container = aurelia.container;\r\n this.info = [];\r\n this.processed = false;\r\n this.preTasks = [];\r\n this.postTasks = [];\r\n /**\r\n * Custom element's metadata queue for loading view factory\r\n * @type {HtmlBehaviorResource[]}\r\n */\r\n this.behaviorsToLoad = [];\r\n /**\r\n * Plugin configure functions temporary cache for avoid duplicate calls\r\n * @type {Function[]}\r\n */\r\n this.configuredPlugins = [];\r\n this.resourcesToLoad = {};\r\n this.preTask(() => aurelia.loader.normalize('aurelia-bootstrapper', undefined)\r\n .then(name => this.bootstrapperName = name));\r\n this.postTask(() => loadResources(aurelia, this.resourcesToLoad, aurelia.resources));\r\n }\r\n\r\n /**\r\n * Adds an existing object to the framework's dependency injection container.\r\n * @param type The object type of the dependency that the framework will inject.\r\n * @param instance The existing instance of the dependency that the framework will inject.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n instance(type: any, instance: any): FrameworkConfiguration {\r\n this.container.registerInstance(type, instance);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds a singleton to the framework's dependency injection container.\r\n * @param type The object type of the dependency that the framework will inject.\r\n * @param implementation The constructor function of the dependency that the framework will inject.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n singleton(type: any, implementation?: Function): FrameworkConfiguration {\r\n this.container.registerSingleton(type, implementation as any);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds a transient to the framework's dependency injection container.\r\n * @param type The object type of the dependency that the framework will inject.\r\n * @param implementation The constructor function of the dependency that the framework will inject.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n transient(type: any, implementation?: Function): FrameworkConfiguration {\r\n this.container.registerTransient(type, implementation as any);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds an async function that runs before the plugins are run.\r\n * @param task The function to run before start.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n preTask(task: Function): FrameworkConfiguration {\r\n assertProcessed(this);\r\n this.preTasks.push(task);\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds an async function that runs after the plugins are run.\r\n * @param task The function to run after start.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n postTask(task: Function): FrameworkConfiguration {\r\n assertProcessed(this);\r\n this.postTasks.push(task);\r\n return this;\r\n }\r\n\r\n /**\r\n * Configures an internal feature plugin before Aurelia starts.\r\n * @param plugin The folder for the internal plugin to configure (expects an index.js in that folder).\r\n * @param config The configuration for the specified plugin.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n feature(plugin: string | ((config: FrameworkConfiguration, pluginConfig?: any) => any), config: any = {}): FrameworkConfiguration {\r\n switch (typeof plugin) {\r\n case 'string':\r\n let hasIndex = /\\/index$/i.test(plugin);\r\n let moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';\r\n let root = hasIndex ? plugin.slice(0, -6) : plugin;\r\n this.info.push({ moduleId, resourcesRelativeTo: [root, ''], config });\r\n break;\r\n // return this.plugin({ moduleId, resourcesRelativeTo: [root, ''], config });\r\n case 'function':\r\n this.info.push({ configure: plugin, config: config || {} });\r\n break;\r\n default:\r\n throw new Error(invalidConfigMsg(plugin, 'feature'));\r\n }\r\n return this;\r\n // return this.plugin(plugin, config);\r\n }\r\n\r\n /**\r\n * Adds globally available view resources to be imported into the Aurelia framework.\r\n * @param resources The relative module id to the resource. (Relative to the plugin's installer.)\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n globalResources(resources: string | Function | Array): FrameworkConfiguration {\r\n assertProcessed(this);\r\n\r\n // eslint-disable-next-line prefer-rest-params\r\n let toAdd = Array.isArray(resources) ? resources : arguments;\r\n let resource;\r\n let resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];\r\n\r\n for (let i = 0, ii = toAdd.length; i < ii; ++i) {\r\n resource = toAdd[i];\r\n switch (typeof resource) {\r\n case 'string':\r\n let parent = resourcesRelativeTo[0];\r\n let grandParent = resourcesRelativeTo[1];\r\n let name = resource;\r\n\r\n if ((resource.startsWith('./') || resource.startsWith('../')) && parent !== '') {\r\n name = join(parent, resource);\r\n }\r\n\r\n this.resourcesToLoad[name] = { moduleId: name, relativeTo: grandParent };\r\n break;\r\n case 'function':\r\n let meta = this.aurelia.resources.autoRegister(this.container, resource);\r\n if (meta instanceof HtmlBehaviorResource && meta.elementName !== null) {\r\n if (this.behaviorsToLoad.push(meta) === 1) {\r\n this.postTask(() => loadBehaviors(this));\r\n }\r\n }\r\n break;\r\n default:\r\n throw new Error(invalidConfigMsg(resource, 'resource'));\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Renames a global resource that was imported.\r\n * @param resourcePath The path to the resource.\r\n * @param newName The new name.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n globalName(resourcePath: string, newName: string): FrameworkConfiguration {\r\n assertProcessed(this);\r\n this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };\r\n return this;\r\n }\r\n\r\n /**\r\n * Configures an external, 3rd party plugin before Aurelia starts.\r\n * @param plugin The ID of the 3rd party plugin to configure.\r\n * @param pluginConfig The configuration for the specified plugin.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n plugin(\r\n plugin: string | ((frameworkConfig: FrameworkConfiguration) => any) | FrameworkPluginInfo,\r\n pluginConfig?: any\r\n ): FrameworkConfiguration {\r\n assertProcessed(this);\r\n\r\n let info: FrameworkPluginInfo;\r\n switch (typeof plugin) {\r\n case 'string':\r\n info = { moduleId: plugin, resourcesRelativeTo: [plugin, ''], config: pluginConfig || {} };\r\n break;\r\n case 'function':\r\n info = { configure: plugin, config: pluginConfig || {} };\r\n break;\r\n default:\r\n throw new Error(invalidConfigMsg(plugin, 'plugin'));\r\n }\r\n this.info.push(info);\r\n return this;\r\n }\r\n\r\n /** @internal */\r\n _addNormalizedPlugin(name, config?) {\r\n let plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };\r\n this.info.push(plugin);\r\n\r\n this.preTask(() => {\r\n let relativeTo = [name, this.bootstrapperName];\r\n plugin.moduleId = name;\r\n plugin.resourcesRelativeTo = relativeTo;\r\n return Promise.resolve();\r\n });\r\n\r\n return this;\r\n }\r\n\r\n // Default configuration helpers\r\n // Note: Please do NOT add PLATFORM.moduleName() around those module names.\r\n // Those functions are not guaranteed to be called, they are here to faciliate\r\n // common configurations. If they are not called, we don't want to include a\r\n // static dependency on those modules.\r\n // Including those modules in the bundle or not is a decision that must be\r\n // taken by the bundling tool, at build time.\r\n\r\n /**\r\n * Plugs in the default binding language from aurelia-templating-binding.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n defaultBindingLanguage(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-templating-binding');\r\n }\r\n\r\n /**\r\n * Plugs in the router from aurelia-templating-router.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n router(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-templating-router');\r\n }\r\n\r\n /**\r\n * Plugs in the default history implementation from aurelia-history-browser.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n history(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-history-browser');\r\n }\r\n\r\n /**\r\n * Plugs in the default templating resources (if, repeat, show, compose, etc.) from aurelia-templating-resources.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n defaultResources(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-templating-resources');\r\n }\r\n\r\n /**\r\n * Plugs in the event aggregator from aurelia-event-aggregator.\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n eventAggregator(): FrameworkConfiguration {\r\n return this._addNormalizedPlugin('aurelia-event-aggregator');\r\n }\r\n\r\n /**\r\n * Sets up a basic Aurelia configuration. This is equivalent to calling `.defaultBindingLanguage().defaultResources().eventAggregator();`\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n basicConfiguration(): FrameworkConfiguration {\r\n return this.defaultBindingLanguage().defaultResources().eventAggregator();\r\n }\r\n\r\n /**\r\n * Sets up the standard Aurelia configuration. This is equivalent to calling `.defaultBindingLanguage().defaultResources().eventAggregator().history().router();`\r\n * @return Returns the current FrameworkConfiguration instance.\r\n */\r\n standardConfiguration(): FrameworkConfiguration {\r\n return this.basicConfiguration().history().router();\r\n }\r\n\r\n /**\r\n * Plugs in the ConsoleAppender and sets the log level to debug.\r\n * @param level The log level (none/error/warn/info/debug), default to 'debug'.\r\n * @return {FrameworkConfiguration} Returns the current FrameworkConfiguration instance.\r\n */\r\n developmentLogging(level?: string): FrameworkConfiguration {\r\n let logLevel = level ? TheLogManager.logLevel[level] : undefined;\r\n\r\n if (logLevel === undefined) {\r\n logLevel = TheLogManager.logLevel.debug;\r\n }\r\n\r\n this.preTask(() => {\r\n return this.aurelia.loader.normalize('aurelia-logging-console', this.bootstrapperName).then(name => {\r\n return this.aurelia.loader.loadModule(name).then(m => {\r\n TheLogManager.addAppender(new m.ConsoleAppender());\r\n TheLogManager.setLevel(logLevel);\r\n });\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Loads and configures the plugins registered with this instance.\r\n * @return Returns a promise which resolves when all plugins are loaded and configured.\r\n */\r\n apply(): Promise {\r\n if (this.processed) {\r\n return Promise.resolve();\r\n }\r\n\r\n return runTasks(this, this.preTasks).then(() => {\r\n let loader = this.aurelia.loader;\r\n let info = this.info;\r\n let current;\r\n\r\n let next = () => {\r\n current = info.shift();\r\n if (current) {\r\n return loadPlugin(this, loader, current).then(next);\r\n }\r\n\r\n this.processed = true;\r\n this.configuredPlugins = null;\r\n return Promise.resolve();\r\n };\r\n\r\n return next().then(() => runTasks(this, this.postTasks));\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\ndeclare module 'aurelia-templating' {\r\n interface HtmlBehaviorResource {\r\n elementName: string | null;\r\n }\r\n}\r\n","import * as TheLogManager from 'aurelia-logging';\r\nimport {Container} from 'aurelia-dependency-injection';\r\nimport {Loader} from 'aurelia-loader';\r\nimport {BindingLanguage, ViewSlot, ViewResources, TemplatingEngine, CompositionTransaction, View, CompositionContext} from 'aurelia-templating';\r\nimport {DOM, PLATFORM} from 'aurelia-pal';\r\nimport {relativeToFile} from 'aurelia-path';\r\nimport {FrameworkConfiguration} from './framework-configuration';\r\n\r\nfunction preventActionlessFormSubmit() {\r\n DOM.addEventListener('submit', evt => {\r\n const target = evt.target as HTMLFormElement;\r\n const action = target.action;\r\n\r\n if (target.tagName.toLowerCase() === 'form' && !action) {\r\n evt.preventDefault();\r\n }\r\n }, false);\r\n}\r\n\r\n/**\r\n * The framework core that provides the main Aurelia object.\r\n */\r\nexport class Aurelia {\r\n /**\r\n * The DOM Element that Aurelia will attach to.\r\n */\r\n host: Element;\r\n /**\r\n /**\r\n * The loader used by the application.\r\n */\r\n loader: Loader;\r\n /**\r\n * The root DI container used by the application.\r\n */\r\n container: Container;\r\n /**\r\n * The global view resources used by the application.\r\n */\r\n resources: ViewResources;\r\n\r\n /**\r\n * The configuration used during application startup.\r\n */\r\n use: FrameworkConfiguration;\r\n\r\n /** @internal */\r\n private logger: TheLogManager.Logger;\r\n\r\n /** @internal */\r\n _started: Promise;\r\n\r\n /** @internal */\r\n private hostConfigured: boolean;\r\n\r\n /** @internal */\r\n private root: View;\r\n\r\n /** @internal */\r\n private configModuleId: string;\r\n\r\n /** @internal */\r\n private hostSlot: ViewSlot;\r\n\r\n /**\r\n * Creates an instance of Aurelia.\r\n * @param loader The loader for this Aurelia instance to use. If a loader is not specified, Aurelia will use the loader type specified by PLATFORM.Loader.\r\n * @param container The dependency injection container for this Aurelia instance to use. If a container is not specified, Aurelia will create an empty, global container.\r\n * @param resources The resource registry for this Aurelia instance to use. If a resource registry is not specified, Aurelia will create an empty registry.\r\n */\r\n constructor(loader?: Loader, container?: Container, resources?: ViewResources) {\r\n this.loader = loader || new PLATFORM.Loader();\r\n this.container = container || (new Container()).makeGlobal();\r\n this.resources = resources || new ViewResources();\r\n this.use = new FrameworkConfiguration(this);\r\n this.logger = TheLogManager.getLogger('aurelia');\r\n this.hostConfigured = false;\r\n this.host = null;\r\n\r\n this.use.instance(Aurelia, this);\r\n this.use.instance(Loader, this.loader);\r\n this.use.instance(ViewResources, this.resources);\r\n }\r\n\r\n /**\r\n * Loads plugins, then resources, and then starts the Aurelia instance.\r\n * @return Returns a Promise with the started Aurelia instance.\r\n */\r\n start(): Promise {\r\n if (this._started) {\r\n return this._started;\r\n }\r\n\r\n this.logger.info('Aurelia Starting');\r\n return this._started = this.use.apply().then(() => {\r\n preventActionlessFormSubmit();\r\n\r\n if (!this.container.hasResolver(BindingLanguage)) {\r\n let message = 'You must configure Aurelia with a BindingLanguage implementation.';\r\n this.logger.error(message);\r\n throw new Error(message);\r\n }\r\n\r\n this.logger.info('Aurelia Started');\r\n let evt = DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });\r\n DOM.dispatchEvent(evt);\r\n return this;\r\n });\r\n }\r\n\r\n /**\r\n * Enhances the host's existing elements with behaviors and bindings.\r\n * @param bindingContext A binding context for the enhanced elements.\r\n * @param applicationHost The DOM object that Aurelia will enhance.\r\n * @return Returns a Promise for the current Aurelia instance.\r\n */\r\n enhance(bindingContext: object = {}, applicationHost: string | Element = null): Promise {\r\n this._configureHost(applicationHost || DOM.querySelectorAll('body')[0]);\r\n\r\n return new Promise(resolve => {\r\n let engine = this.container.get(TemplatingEngine) as TemplatingEngine;\r\n this.root = engine.enhance({container: this.container, element: this.host, resources: this.resources, bindingContext: bindingContext});\r\n this.root.attached();\r\n this._onAureliaComposed();\r\n resolve(this);\r\n });\r\n }\r\n\r\n /**\r\n * Instantiates the root component and adds it to the DOM.\r\n * @param root The root component to load upon bootstrap.\r\n * @param applicationHost The DOM object that Aurelia will attach to.\r\n * @return Returns a Promise of the current Aurelia instance.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n setRoot(root: string | Function = null, applicationHost: string | Element = null): Promise {\r\n let instruction = {} as CompositionContext;\r\n\r\n if (this.root && this.root.viewModel && this.root.viewModel.router) {\r\n this.root.viewModel.router.deactivate();\r\n this.root.viewModel.router.reset();\r\n }\r\n\r\n this._configureHost(applicationHost);\r\n\r\n let engine = this.container.get(TemplatingEngine) as TemplatingEngine;\r\n let transaction = this.container.get(CompositionTransaction);\r\n delete (transaction as any).initialComposition;\r\n\r\n if (!root) {\r\n if (this.configModuleId) {\r\n root = relativeToFile('./app', this.configModuleId);\r\n } else {\r\n root = 'app';\r\n }\r\n }\r\n\r\n instruction.viewModel = root;\r\n instruction.container = instruction.childContainer = this.container;\r\n instruction.viewSlot = this.hostSlot;\r\n instruction.host = this.host;\r\n\r\n return engine.compose(instruction).then((r: View) => {\r\n this.root = r;\r\n instruction.viewSlot.attached();\r\n this._onAureliaComposed();\r\n return this;\r\n });\r\n }\r\n\r\n /** @internal */\r\n _configureHost(applicationHost) {\r\n if (this.hostConfigured) {\r\n return;\r\n }\r\n applicationHost = applicationHost || this.host;\r\n\r\n if (!applicationHost || typeof applicationHost === 'string') {\r\n this.host = DOM.getElementById(applicationHost || 'applicationHost');\r\n } else {\r\n this.host = applicationHost;\r\n }\r\n\r\n if (!this.host) {\r\n throw new Error('No applicationHost was specified.');\r\n }\r\n\r\n this.hostConfigured = true;\r\n (this.host as any).aurelia = this;\r\n this.hostSlot = new ViewSlot(this.host, true);\r\n this.hostSlot.transformChildNodesIntoView();\r\n this.container.registerInstance(DOM.boundary, this.host);\r\n }\r\n\r\n /** @internal */\r\n _onAureliaComposed() {\r\n let evt = DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });\r\n setTimeout(() => DOM.dispatchEvent(evt), 1);\r\n }\r\n}\r\n\r\n/** @internal */\r\ndeclare module 'aurelia-templating' {\r\n interface View {\r\n viewModel: any;\r\n }\r\n}\r\n","import { DOM, PLATFORM } from 'aurelia-pal';\nimport { BrowserHistory } from './browser-history';\nimport { AnchorEventInfo } from './interfaces';\n\n/**\n * Class responsible for handling interactions that should trigger browser history navigations.\n */\nexport class LinkHandler {\n /**\n * Activate the instance.\n *\n * @param history The BrowserHistory instance that navigations should be dispatched to.\n */\n activate(history: BrowserHistory): void {/**/}\n\n /**\n * Deactivate the instance. Event handlers and other resources should be cleaned up here.\n */\n deactivate(): void {/**/}\n}\n\n/**\n * The default LinkHandler implementation. Navigations are triggered by click events on\n * anchor elements with relative hrefs when the history instance is using pushstate.\n */\nexport class DefaultLinkHandler extends LinkHandler {\n\n /**@internal */\n handler: (e: Event) => void;\n\n /**@internal */\n history: BrowserHistory;\n /**\n * Creates an instance of DefaultLinkHandler.\n */\n constructor() {\n super();\n\n this.handler = (e) => {\n let { shouldHandleEvent, href } = DefaultLinkHandler.getEventInfo(e);\n\n if (shouldHandleEvent) {\n e.preventDefault();\n this.history.navigate(href);\n }\n };\n }\n\n /**\n * Activate the instance.\n *\n * @param history The BrowserHistory instance that navigations should be dispatched to.\n */\n activate(history: BrowserHistory): void {\n if (history._hasPushState) {\n this.history = history;\n DOM.addEventListener('click', this.handler, true);\n }\n }\n\n /**\n * Deactivate the instance. Event handlers and other resources should be cleaned up here.\n */\n deactivate(): void {\n DOM.removeEventListener('click', this.handler, true);\n }\n\n /**\n * Gets the href and a \"should handle\" recommendation, given an Event.\n *\n * @param event The Event to inspect for target anchor and href.\n */\n static getEventInfo(event: Event): AnchorEventInfo {\n let $event = event as MouseEvent;\n let info = {\n shouldHandleEvent: false,\n href: null,\n anchor: null\n };\n\n let target = DefaultLinkHandler.findClosestAnchor($event.target as Element);\n if (!target || !DefaultLinkHandler.targetIsThisWindow(target)) {\n return info;\n }\n\n if (hasAttribute(target, 'download')\n || hasAttribute(target, 'router-ignore')\n || hasAttribute(target, 'data-router-ignore')\n ) {\n return info;\n }\n\n if ($event.altKey || $event.ctrlKey || $event.metaKey || $event.shiftKey) {\n return info;\n }\n\n let href = target.getAttribute('href');\n info.anchor = target;\n info.href = href;\n\n let leftButtonClicked = $event.which === 1;\n let isRelative = href && !(href.charAt(0) === '#' || (/^[a-z]+:/i).test(href));\n\n info.shouldHandleEvent = leftButtonClicked && isRelative;\n return info;\n }\n\n /**\n * Finds the closest ancestor that's an anchor element.\n *\n * @param el The element to search upward from.\n * @returns The link element that is the closest ancestor.\n */\n static findClosestAnchor(el: Element): Element {\n while (el) {\n if (el.tagName === 'A') {\n return el;\n }\n\n el = el.parentNode as Element;\n }\n }\n\n /**\n * Gets a value indicating whether or not an anchor targets the current window.\n *\n * @param target The anchor element whose target should be inspected.\n * @returns True if the target of the link element is this window; false otherwise.\n */\n static targetIsThisWindow(target: Element): boolean {\n let targetWindow = target.getAttribute('target');\n let win = PLATFORM.global;\n\n return !targetWindow ||\n targetWindow === win.name ||\n targetWindow === '_self';\n }\n}\n\nconst hasAttribute = (el: Element, attr: string) => el.hasAttribute(attr);\n","import { DOM, PLATFORM } from 'aurelia-pal';\nimport { LinkHandler } from './link-handler';\nimport { History } from 'aurelia-history';\n\n/**\n * An implementation of the basic history API.\n */\nexport class BrowserHistory extends History {\n /**@internal */\n static inject = [LinkHandler];\n\n /**@internal */\n _isActive: boolean;\n\n /**@internal*/\n _checkUrlCallback: any;\n /**@internal*/\n location: Location;\n /**@internal*/\n history: typeof PLATFORM['history'];\n /**@internal*/\n linkHandler: LinkHandler;\n /**@internal*/\n options: any;\n /**@internal*/\n root: string;\n /**@internal*/\n _wantsHashChange: boolean;\n /**@internal*/\n _hasPushState: boolean;\n /**@internal*/\n fragment: string;\n\n /**\n * Creates an instance of BrowserHistory\n * @param linkHandler An instance of LinkHandler.\n */\n constructor(linkHandler: LinkHandler) {\n super();\n\n this._isActive = false;\n this._checkUrlCallback = this._checkUrl.bind(this);\n\n this.location = PLATFORM.location;\n this.history = PLATFORM.history;\n this.linkHandler = linkHandler;\n }\n\n /**\n * Activates the history object.\n * @param options The set of options to activate history with.\n * @returns Whether or not activation occurred.\n */\n activate(options?: Object): boolean {\n if (this._isActive) {\n throw new Error('History has already been activated.');\n }\n\n let $history = this.history;\n let wantsPushState = !!(options as any).pushState;\n\n this._isActive = true;\n let normalizedOptions = this.options = Object.assign({}, { root: '/' }, this.options, options);\n\n // Normalize root to always include a leading and trailing slash.\n let rootUrl = this.root = ('/' + normalizedOptions.root + '/').replace(rootStripper, '/');\n\n let wantsHashChange = this._wantsHashChange = normalizedOptions.hashChange !== false;\n let hasPushState = this._hasPushState = !!(normalizedOptions.pushState && $history && $history.pushState);\n\n // Determine how we check the URL state.\n let eventName: string;\n if (hasPushState) {\n eventName = 'popstate';\n } else if (wantsHashChange) {\n eventName = 'hashchange';\n }\n\n PLATFORM.addEventListener(eventName, this._checkUrlCallback);\n\n // Determine if we need to change the base url, for a pushState link\n // opened by a non-pushState browser.\n if (wantsHashChange && wantsPushState) {\n // Transition from hashChange to pushState or vice versa if both are requested.\n let $location = this.location;\n let atRoot = $location.pathname.replace(/[^\\/]$/, '$&/') === rootUrl;\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!hasPushState && !atRoot) {\n let fragment = this.fragment = this._getFragment(null, true);\n $location.replace(rootUrl + $location.search + '#' + fragment);\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (hasPushState && atRoot && $location.hash) {\n let fragment = this.fragment = this._getHash().replace(routeStripper, '');\n $history.replaceState({}, DOM.title, rootUrl + fragment + $location.search);\n }\n }\n\n if (!this.fragment) {\n this.fragment = this._getFragment('');\n }\n\n this.linkHandler.activate(this);\n\n if (!normalizedOptions.silent) {\n return this._loadUrl('');\n }\n }\n\n /**\n * Deactivates the history object.\n */\n deactivate(): void {\n const handler = this._checkUrlCallback;\n PLATFORM.removeEventListener('popstate', handler);\n PLATFORM.removeEventListener('hashchange', handler);\n this._isActive = false;\n this.linkHandler.deactivate();\n }\n\n /**\n * Returns the fully-qualified root of the current history object.\n * @returns The absolute root of the application.\n */\n getAbsoluteRoot(): string {\n let $location = this.location;\n let origin = createOrigin($location.protocol, $location.hostname, $location.port);\n return `${origin}${this.root}`;\n }\n\n /**\n * Causes a history navigation to occur.\n *\n * @param fragment The history fragment to navigate to.\n * @param options The set of options that specify how the navigation should occur.\n * @return Promise if triggering navigation, otherwise true/false indicating if navigation occurred.\n */\n navigate(fragment?: string, {trigger = true, replace = false} = {}): boolean {\n let location = this.location;\n if (fragment && absoluteUrl.test(fragment)) {\n location.href = fragment;\n return true;\n }\n\n if (!this._isActive) {\n return false;\n }\n\n fragment = this._getFragment(fragment || '');\n\n if (this.fragment === fragment && !replace) {\n return false;\n }\n\n this.fragment = fragment;\n\n let url = this.root + fragment;\n\n // Don't include a trailing slash on the root.\n if (fragment === '' && url !== '/') {\n url = url.slice(0, -1);\n }\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._hasPushState) {\n url = url.replace('//', '/');\n this.history[replace ? 'replaceState' : 'pushState']({}, DOM.title, url);\n } else if (this._wantsHashChange) {\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n updateHash(location, fragment, replace);\n } else {\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n location.assign(url);\n }\n\n if (trigger) {\n return this._loadUrl(fragment);\n }\n\n return true;\n }\n\n /**\n * Causes the history state to navigate back.\n */\n navigateBack(): void {\n this.history.back();\n }\n\n /**\n * Sets the document title.\n */\n setTitle(title: string): void {\n DOM.title = title;\n }\n\n /**\n * Sets a key in the history page state.\n * @param key The key for the value.\n * @param value The value to set.\n */\n setState(key: string, value: any): void {\n let $history = this.history;\n let state = Object.assign({}, $history.state);\n let { pathname, search, hash } = this.location;\n state[key] = value;\n $history.replaceState(state, null, `${pathname}${search}${hash}`);\n }\n\n /**\n * Gets a key in the history page state.\n * @param key The key for the value.\n * @return The value for the key.\n */\n getState(key: string): any {\n let state = Object.assign({}, this.history.state);\n return state[key];\n }\n\n /**\n * Returns the current index in the navigation history.\n * @returns The current index.\n */\n getHistoryIndex(): number {\n let historyIndex = this.getState('HistoryIndex');\n if (historyIndex === undefined) {\n historyIndex = this.history.length - 1;\n this.setState('HistoryIndex', historyIndex);\n }\n return historyIndex;\n }\n\n /**\n * Move to a specific position in the navigation history.\n * @param movement The amount of steps, positive or negative, to move.\n */\n go(movement: number): void {\n this.history.go(movement);\n }\n\n /**\n * @internal\n */\n _getHash(): string {\n return this.location.hash.substr(1);\n }\n\n /**\n * @internal\n */\n _getFragment(fragment: string, forcePushState?: boolean): string {\n let rootUrl: string;\n\n if (!fragment) {\n if (this._hasPushState || !this._wantsHashChange || forcePushState) {\n let location = this.location;\n fragment = location.pathname + location.search;\n rootUrl = this.root.replace(trailingSlash, '');\n if (!fragment.indexOf(rootUrl)) {\n fragment = fragment.substr(rootUrl.length);\n }\n } else {\n fragment = this._getHash();\n }\n }\n\n return '/' + fragment.replace(routeStripper, '');\n }\n\n /**\n * Url change handler.\n * Invoked when current fragment is different with previous fragment\n * @internal\n */\n _checkUrl(): void {\n let current = this._getFragment('');\n if (current !== this.fragment) {\n this._loadUrl('');\n }\n }\n\n /**\n * invoke routeHandler\n * @internal\n */\n _loadUrl(fragmentOverride: string): boolean {\n let fragment = this.fragment = this._getFragment(fragmentOverride);\n\n return this.options.routeHandler ?\n this.options.routeHandler(fragment) :\n false;\n }\n}\n\n// Cached regex for stripping a leading hash/slash and trailing space.\nconst routeStripper = /^#?\\/*|\\s+$/g;\n\n// Cached regex for stripping leading and trailing slashes.\nconst rootStripper = /^\\/+|\\/+$/g;\n\n// Cached regex for removing a trailing slash.\nconst trailingSlash = /\\/$/;\n\n// Cached regex for detecting if a URL is absolute,\n// i.e., starts with a scheme or is scheme-relative.\n// See http://www.ietf.org/rfc/rfc2396.txt section 3.1 for valid scheme format\nconst absoluteUrl = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\n\n// Update the hash location, either replacing the current entry, or adding\n// a new one to the browser history.\nfunction updateHash($location: Location, fragment: string, replace: boolean) {\n if (replace) {\n let href = $location.href.replace(/(javascript:|#).*$/, '');\n $location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n $location.hash = '#' + fragment;\n }\n}\n\nfunction createOrigin(protocol: string, hostname: string, port: string) {\n return `${protocol}//${hostname}${port ? ':' + port : ''}`;\n}\n","import {History} from 'aurelia-history';\nimport {LinkHandler, DefaultLinkHandler} from './link-handler';\nimport { BrowserHistory } from './browser-history';\n\n/**\n * Configures the plugin by registering BrowserHistory as the implementation of History in the DI container.\n * @param config The FrameworkConfiguration object provided by Aurelia.\n */\nexport function configure(config: Object): void {\n // work around for converting to TS without breaking compat\n const $config = config as any;\n $config.singleton(History, BrowserHistory);\n $config.transient(LinkHandler, DefaultLinkHandler);\n}\n\nexport {\n LinkHandler,\n DefaultLinkHandler,\n BrowserHistory\n};\n",null,null,null,null,null,null,null,null,null,null,null,null,null,"import { ViewPortInstruction, RouteConfig, ViewPort, LifecycleArguments, ViewPortComponent } from './interfaces';\nimport { Router } from './router';\nimport { ActivationStrategyType, InternalActivationStrategy } from './activation-strategy';\n\n/**\n * Initialization options for a navigation instruction\n */\nexport interface NavigationInstructionInit {\n fragment: string;\n queryString?: string;\n params?: Record;\n queryParams?: Record;\n config: RouteConfig;\n parentInstruction?: NavigationInstruction;\n previousInstruction?: NavigationInstruction;\n router: Router;\n options?: Object;\n plan?: Record;\n}\n\nexport interface ViewPortInstructionInit {\n name: string;\n strategy: ActivationStrategyType;\n moduleId: string;\n component: ViewPortComponent;\n}\n\n/**\n * Class used to represent an instruction during a navigation.\n */\nexport class NavigationInstruction {\n /**\n * The URL fragment.\n */\n fragment: string;\n\n /**\n * The query string.\n */\n queryString: string;\n\n /**\n * Parameters extracted from the route pattern.\n */\n params: any;\n\n /**\n * Parameters extracted from the query string.\n */\n queryParams: any;\n\n /**\n * The route config for the route matching this instruction.\n */\n config: RouteConfig;\n\n /**\n * The parent instruction, if this instruction was created by a child router.\n */\n parentInstruction: NavigationInstruction;\n\n parentCatchHandler: any;\n\n /**\n * The instruction being replaced by this instruction in the current router.\n */\n previousInstruction: NavigationInstruction;\n\n /**\n * viewPort instructions to used activation.\n */\n viewPortInstructions: Record;\n\n /**\n * The router instance.\n */\n router: Router;\n\n /**\n * Current built viewport plan of this nav instruction\n */\n plan: Record = null;\n\n options: Record = {};\n\n /**@internal */\n lifecycleArgs: LifecycleArguments;\n /**@internal */\n resolve?: (val?: any) => void;\n\n constructor(init: NavigationInstructionInit) {\n Object.assign(this, init);\n\n this.params = this.params || {};\n this.viewPortInstructions = {};\n\n let ancestorParams = [];\n let current: NavigationInstruction = this;\n do {\n let currentParams = Object.assign({}, current.params);\n if (current.config && current.config.hasChildRouter) {\n // remove the param for the injected child route segment\n delete currentParams[current.getWildCardName()];\n }\n\n ancestorParams.unshift(currentParams);\n current = current.parentInstruction;\n } while (current);\n\n let allParams = Object.assign({}, this.queryParams, ...ancestorParams);\n this.lifecycleArgs = [allParams, this.config, this];\n }\n\n /**\n * Gets an array containing this instruction and all child instructions for the current navigation.\n */\n getAllInstructions(): Array {\n let instructions: NavigationInstruction[] = [this];\n let viewPortInstructions: Record = this.viewPortInstructions;\n\n for (let key in viewPortInstructions) {\n let childInstruction = viewPortInstructions[key].childNavigationInstruction;\n if (childInstruction) {\n instructions.push(...childInstruction.getAllInstructions());\n }\n }\n\n return instructions;\n }\n\n /**\n * Gets an array containing the instruction and all child instructions for the previous navigation.\n * Previous instructions are no longer available after navigation completes.\n */\n getAllPreviousInstructions(): Array {\n return this.getAllInstructions().map(c => c.previousInstruction).filter(c => c);\n }\n\n /**\n * Adds a viewPort instruction. Returns the newly created instruction based on parameters\n */\n addViewPortInstruction(initOptions: ViewPortInstructionInit): /*ViewPortInstruction*/ any;\n addViewPortInstruction(viewPortName: string, strategy: ActivationStrategyType, moduleId: string, component: any): /*ViewPortInstruction*/ any;\n addViewPortInstruction(\n nameOrInitOptions: string | ViewPortInstructionInit,\n strategy?: ActivationStrategyType,\n moduleId?: string,\n component?: any\n ): /*ViewPortInstruction*/ any {\n\n let viewPortInstruction: ViewPortInstruction;\n let viewPortName = typeof nameOrInitOptions === 'string' ? nameOrInitOptions : nameOrInitOptions.name;\n const lifecycleArgs = this.lifecycleArgs;\n const config: RouteConfig = Object.assign({}, lifecycleArgs[1], { currentViewPort: viewPortName });\n\n if (typeof nameOrInitOptions === 'string') {\n viewPortInstruction = {\n name: nameOrInitOptions,\n strategy: strategy,\n moduleId: moduleId,\n component: component,\n childRouter: component.childRouter,\n lifecycleArgs: [lifecycleArgs[0], config, lifecycleArgs[2]] as LifecycleArguments\n };\n } else {\n viewPortInstruction = {\n name: viewPortName,\n strategy: nameOrInitOptions.strategy,\n component: nameOrInitOptions.component,\n moduleId: nameOrInitOptions.moduleId,\n childRouter: nameOrInitOptions.component.childRouter,\n lifecycleArgs: [lifecycleArgs[0], config, lifecycleArgs[2]] as LifecycleArguments\n };\n }\n\n return this.viewPortInstructions[viewPortName] = viewPortInstruction;\n }\n\n /**\n * Gets the name of the route pattern's wildcard parameter, if applicable.\n */\n getWildCardName(): string {\n // todo: potential issue, or at least unsafe typings\n let configRoute = this.config.route as string;\n let wildcardIndex = configRoute.lastIndexOf('*');\n return configRoute.substr(wildcardIndex + 1);\n }\n\n /**\n * Gets the path and query string created by filling the route\n * pattern's wildcard parameter with the matching param.\n */\n getWildcardPath(): string {\n let wildcardName = this.getWildCardName();\n let path = this.params[wildcardName] || '';\n let queryString = this.queryString;\n\n if (queryString) {\n path += '?' + queryString;\n }\n\n return path;\n }\n\n /**\n * Gets the instruction's base URL, accounting for wildcard route parameters.\n */\n getBaseUrl(): string {\n let $encodeURI = encodeURI;\n let fragment = decodeURI(this.fragment);\n\n if (fragment === '') {\n let nonEmptyRoute = this.router.routes.find(route => {\n return route.name === this.config.name &&\n route.route !== '';\n });\n if (nonEmptyRoute) {\n fragment = nonEmptyRoute.route as any;\n }\n }\n\n if (!this.params) {\n return $encodeURI(fragment);\n }\n\n let wildcardName = this.getWildCardName();\n let path = this.params[wildcardName] || '';\n\n if (!path) {\n return $encodeURI(fragment);\n }\n\n return $encodeURI(fragment.substr(0, fragment.lastIndexOf(path)));\n }\n\n /**\n * Finalize a viewport instruction\n * @internal\n */\n _commitChanges(waitToSwap: boolean): Promise {\n let router = this.router;\n router.currentInstruction = this;\n\n const previousInstruction = this.previousInstruction;\n if (previousInstruction) {\n previousInstruction.config.navModel.isActive = false;\n }\n\n this.config.navModel.isActive = true;\n\n router.refreshNavigation();\n\n let loads: Promise[] = [];\n let delaySwaps: ISwapPlan[] = [];\n let viewPortInstructions: Record = this.viewPortInstructions;\n\n for (let viewPortName in viewPortInstructions) {\n let viewPortInstruction = viewPortInstructions[viewPortName];\n let viewPort = router.viewPorts[viewPortName];\n\n if (!viewPort) {\n throw new Error(`There was no router-view found in the view for ${viewPortInstruction.moduleId}.`);\n }\n\n let childNavInstruction = viewPortInstruction.childNavigationInstruction;\n if (viewPortInstruction.strategy === InternalActivationStrategy.Replace) {\n if (childNavInstruction && childNavInstruction.parentCatchHandler) {\n loads.push(childNavInstruction._commitChanges(waitToSwap));\n } else {\n if (waitToSwap) {\n delaySwaps.push({ viewPort, viewPortInstruction });\n }\n loads.push(\n viewPort\n .process(viewPortInstruction, waitToSwap)\n .then(() => childNavInstruction\n ? childNavInstruction._commitChanges(waitToSwap)\n : Promise.resolve()\n )\n );\n }\n } else {\n if (childNavInstruction) {\n loads.push(childNavInstruction._commitChanges(waitToSwap));\n }\n }\n }\n\n return Promise\n .all(loads)\n .then(() => {\n delaySwaps.forEach(x => x.viewPort.swap(x.viewPortInstruction));\n return null;\n })\n .then(() => prune(this));\n }\n\n /**@internal */\n _updateTitle(): void {\n let router = this.router;\n let title = this._buildTitle(router.titleSeparator);\n if (title) {\n router.history.setTitle(title);\n }\n }\n\n /**@internal */\n _buildTitle(separator: string = ' | '): string {\n let title = '';\n let childTitles = [];\n let navModelTitle = this.config.navModel.title;\n let instructionRouter = this.router;\n let viewPortInstructions: Record = this.viewPortInstructions;\n\n if (navModelTitle) {\n title = instructionRouter.transformTitle(navModelTitle);\n }\n\n for (let viewPortName in viewPortInstructions) {\n let viewPortInstruction = viewPortInstructions[viewPortName];\n let child_nav_instruction = viewPortInstruction.childNavigationInstruction;\n\n if (child_nav_instruction) {\n let childTitle = child_nav_instruction._buildTitle(separator);\n if (childTitle) {\n childTitles.push(childTitle);\n }\n }\n }\n\n if (childTitles.length) {\n title = childTitles.join(separator) + (title ? separator : '') + title;\n }\n\n if (instructionRouter.title) {\n title += (title ? separator : '') + instructionRouter.transformTitle(instructionRouter.title);\n }\n\n return title;\n }\n}\n\nconst prune = (instruction: NavigationInstruction): void => {\n instruction.previousInstruction = null;\n instruction.plan = null;\n};\n\ninterface ISwapPlan {\n viewPort: ViewPort;\n viewPortInstruction: ViewPortInstruction;\n}\n","import { Router } from './router';\nimport { RouteConfig } from './interfaces';\n\n/**\n* Class for storing and interacting with a route's navigation settings.\n*/\nexport class NavModel {\n\n /**\n * True if this nav item is currently active.\n */\n isActive: boolean = false;\n\n /**\n * The title.\n */\n title: string = null;\n\n /**\n * This nav item's absolute href.\n */\n href: string = null;\n\n /**\n * This nav item's relative href.\n */\n relativeHref: string = null;\n\n /**\n * Data attached to the route at configuration time.\n */\n settings: any = {};\n\n /**\n * The route config.\n */\n config: RouteConfig = null;\n\n /**\n * The router associated with this navigation model.\n */\n router: Router;\n\n order: number | boolean;\n\n constructor(router: Router, relativeHref: string) {\n this.router = router;\n this.relativeHref = relativeHref;\n }\n\n /**\n * Sets the route's title and updates document.title.\n * If the a navigation is in progress, the change will be applied\n * to document.title when the navigation completes.\n *\n * @param title The new title.\n */\n setTitle(title: string): void {\n this.title = title;\n\n if (this.isActive) {\n this.router.updateTitle();\n }\n }\n}\n","import { RouteConfig } from './interfaces';\n\nexport function _normalizeAbsolutePath(path: string, hasPushState: boolean, absolute: boolean = false) {\n if (!hasPushState && path[0] !== '#') {\n path = '#' + path;\n }\n\n if (hasPushState && absolute) {\n path = path.substring(1, path.length);\n }\n\n return path;\n}\n\nexport function _createRootedPath(fragment: string, baseUrl: string, hasPushState: boolean, absolute?: boolean) {\n if (isAbsoluteUrl.test(fragment)) {\n return fragment;\n }\n\n let path = '';\n\n if (baseUrl.length && baseUrl[0] !== '/') {\n path += '/';\n }\n\n path += baseUrl;\n\n if ((!path.length || path[path.length - 1] !== '/') && fragment[0] !== '/') {\n path += '/';\n }\n\n if (path.length && path[path.length - 1] === '/' && fragment[0] === '/') {\n path = path.substring(0, path.length - 1);\n }\n\n return _normalizeAbsolutePath(path + fragment, hasPushState, absolute);\n}\n\nexport function _resolveUrl(fragment: string, baseUrl: string, hasPushState?: boolean) {\n if (isRootedPath.test(fragment)) {\n return _normalizeAbsolutePath(fragment, hasPushState);\n }\n\n return _createRootedPath(fragment, baseUrl, hasPushState);\n}\n\nexport function _ensureArrayWithSingleRoutePerConfig(config: RouteConfig) {\n let routeConfigs = [];\n\n if (Array.isArray(config.route)) {\n for (let i = 0, ii = config.route.length; i < ii; ++i) {\n let current = Object.assign({}, config);\n current.route = config.route[i];\n routeConfigs.push(current);\n }\n } else {\n routeConfigs.push(Object.assign({}, config));\n }\n\n return routeConfigs;\n}\n\nconst isRootedPath = /^#?\\//;\nconst isAbsoluteUrl = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\n","import { RouteConfig, PipelineStep, RouteConfigSpecifier } from './interfaces';\nimport { _ensureArrayWithSingleRoutePerConfig } from './util';\nimport { Router } from './router';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { PipelineSlotName } from './pipeline-slot-name';\n\n/**\n * Class used to configure a [[Router]] instance.\n *\n * @constructor\n */\nexport class RouterConfiguration {\n instructions: Array<(router: Router) => void> = [];\n options: {\n [key: string]: any;\n compareQueryParams?: boolean;\n root?: string;\n pushState?: boolean;\n hashChange?: boolean;\n silent?: boolean;\n } = {};\n pipelineSteps: Array<{ name: string, step: Function | PipelineStep }> = [];\n title: string;\n titleSeparator: string;\n unknownRouteConfig: RouteConfigSpecifier;\n viewPortDefaults: Record;\n\n /**@internal */\n _fallbackRoute: string;\n\n /**\n * Adds a step to be run during the [[Router]]'s navigation pipeline.\n *\n * @param name The name of the pipeline slot to insert the step into.\n * @param step The pipeline step.\n * @chainable\n */\n addPipelineStep(name: string, step: Function | PipelineStep): RouterConfiguration {\n if (step === null || step === undefined) {\n throw new Error('Pipeline step cannot be null or undefined.');\n }\n this.pipelineSteps.push({ name, step });\n return this;\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s authorize pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addAuthorizeStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.Authorize, step);\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s preActivate pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addPreActivateStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.PreActivate, step);\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s preRender pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addPreRenderStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.PreRender, step);\n }\n\n /**\n * Adds a step to be run during the [[Router]]'s postRender pipeline slot.\n *\n * @param step The pipeline step.\n * @chainable\n */\n addPostRenderStep(step: Function | PipelineStep): RouterConfiguration {\n return this.addPipelineStep(PipelineSlotName.PostRender, step);\n }\n\n /**\n * Configures a route that will be used if there is no previous location available on navigation cancellation.\n *\n * @param fragment The URL fragment to use as the navigation destination.\n * @chainable\n */\n fallbackRoute(fragment: string): RouterConfiguration {\n this._fallbackRoute = fragment;\n return this;\n }\n\n /**\n * Maps one or more routes to be registered with the router.\n *\n * @param route The [[RouteConfig]] to map, or an array of [[RouteConfig]] to map.\n * @chainable\n */\n map(route: RouteConfig | RouteConfig[]): RouterConfiguration {\n if (Array.isArray(route)) {\n route.forEach(r => this.map(r));\n return this;\n }\n\n return this.mapRoute(route);\n }\n\n /**\n * Configures defaults to use for any view ports.\n *\n * @param viewPortConfig a view port configuration object to use as a\n * default, of the form { viewPortName: { moduleId } }.\n * @chainable\n */\n useViewPortDefaults(viewPortConfig: Record): RouterConfiguration {\n this.viewPortDefaults = viewPortConfig;\n return this;\n }\n\n /**\n * Maps a single route to be registered with the router.\n *\n * @param route The [[RouteConfig]] to map.\n * @chainable\n */\n mapRoute(config: RouteConfig): RouterConfiguration {\n this.instructions.push(router => {\n let routeConfigs = _ensureArrayWithSingleRoutePerConfig(config);\n\n let navModel;\n for (let i = 0, ii = routeConfigs.length; i < ii; ++i) {\n let routeConfig = routeConfigs[i];\n routeConfig.settings = routeConfig.settings || {};\n if (!navModel) {\n navModel = router.createNavModel(routeConfig);\n }\n\n router.addRoute(routeConfig, navModel);\n }\n });\n\n return this;\n }\n\n /**\n * Registers an unknown route handler to be run when the URL fragment doesn't match any registered routes.\n *\n * @param config A string containing a moduleId to load, or a [[RouteConfig]], or a function that takes the\n * [[NavigationInstruction]] and selects a moduleId to load.\n * @chainable\n */\n mapUnknownRoutes(config: RouteConfigSpecifier): RouterConfiguration {\n this.unknownRouteConfig = config;\n return this;\n }\n\n /**\n * Applies the current configuration to the specified [[Router]].\n *\n * @param router The [[Router]] to apply the configuration to.\n */\n exportToRouter(router: Router): void {\n let instructions = this.instructions;\n for (let i = 0, ii = instructions.length; i < ii; ++i) {\n instructions[i](router);\n }\n\n let { title, titleSeparator, unknownRouteConfig, _fallbackRoute, viewPortDefaults } = this;\n\n if (title) {\n router.title = title;\n }\n\n if (titleSeparator) {\n router.titleSeparator = titleSeparator;\n }\n\n if (unknownRouteConfig) {\n router.handleUnknownRoutes(unknownRouteConfig);\n }\n\n if (_fallbackRoute) {\n router.fallbackRoute = _fallbackRoute;\n }\n\n if (viewPortDefaults) {\n router.useViewPortDefaults(viewPortDefaults);\n }\n\n Object.assign(router.options, this.options);\n\n let pipelineSteps = this.pipelineSteps;\n let pipelineStepCount = pipelineSteps.length;\n if (pipelineStepCount) {\n if (!router.isRoot) {\n throw new Error('Pipeline steps can only be added to the root router');\n }\n\n let pipelineProvider = router.pipelineProvider;\n for (let i = 0, ii = pipelineStepCount; i < ii; ++i) {\n let { name, step } = pipelineSteps[i];\n pipelineProvider.addStep(name, step);\n }\n }\n }\n}\n","import { RouteRecognizer, RouteHandler, ConfigurableRoute, State, RecognizedRoute } from 'aurelia-route-recognizer';\nimport { Container } from 'aurelia-dependency-injection';\nimport { History, NavigationOptions } from 'aurelia-history';\nimport { NavigationInstruction, NavigationInstructionInit } from './navigation-instruction';\nimport { NavModel } from './nav-model';\nimport { RouterConfiguration } from './router-configuration';\nimport {\n _ensureArrayWithSingleRoutePerConfig,\n _normalizeAbsolutePath,\n _createRootedPath,\n _resolveUrl\n} from './util';\nimport { RouteConfig, RouteConfigSpecifier, ViewPortInstruction } from './interfaces';\nimport { PipelineProvider } from './pipeline-provider';\n\n/**@internal */\ndeclare module 'aurelia-history' {\n interface History {\n // This is wrong, as it's an implementation detail from aurelia-history-browser\n // but we are poking it in here so probably will need to make it official in `aurelia-history`\n /**\n * A private flag of Aurelia History implementation to indicate if push state should be used\n */\n _hasPushState: boolean;\n\n previousLocation: string;\n }\n}\n\n/**@internal */\ndeclare module 'aurelia-route-recognizer' {\n interface State {\n types: {\n dynamics: DynamicSegment;\n stars: StarSegment;\n };\n }\n\n interface RouteHandler {\n navigationStrategy?: (instruction: NavigationInstruction) => any;\n }\n\n interface RecognizedRoute {\n config?: RouteConfig;\n queryParams?: Record;\n }\n}\n\ntype RouterConfigurationResolution = RouterConfiguration | ((cfg: RouterConfiguration) => void | RouterConfiguration | Promise);\n\n/**\n * The primary class responsible for handling routing and navigation.\n */\nexport class Router {\n\n /**\n * Container associated with this router. Also used to create child container for creating child router.\n */\n container: Container;\n\n /**\n * History instance of Aurelia abstract class for wrapping platform history global object\n */\n history: History;\n\n /**\n * A registry of registered viewport. Will be used to handle process navigation instruction route loading\n * and dom swapping\n */\n viewPorts: Record;\n\n /**\n * List of route configs registered with this router\n */\n routes: RouteConfig[];\n\n /**\n * The [[Router]]'s current base URL, typically based on the [[Router.currentInstruction]].\n */\n baseUrl: string;\n\n /**\n * If defined, used in generation of document title for [[Router]]'s routes.\n */\n title: string | undefined;\n\n /**\n * The separator used in the document title between [[Router]]'s routes.\n */\n titleSeparator: string | undefined;\n\n /**\n * True if the [[Router]] has been configured.\n */\n isConfigured: boolean;\n\n /**\n * True if the [[Router]] is currently processing a navigation.\n */\n isNavigating: boolean;\n\n /**\n * True if the [[Router]] is navigating due to explicit call to navigate function(s).\n */\n isExplicitNavigation: boolean;\n\n /**\n * True if the [[Router]] is navigating due to explicit call to navigateBack function.\n */\n isExplicitNavigationBack: boolean;\n\n /**\n * True if the [[Router]] is navigating into the app for the first time in the browser session.\n */\n isNavigatingFirst: boolean;\n\n /**\n * True if the [[Router]] is navigating to a page instance not in the browser session history.\n */\n isNavigatingNew: boolean;\n\n /**\n * True if the [[Router]] is navigating forward in the browser session history.\n */\n isNavigatingForward: boolean;\n\n /**\n * True if the [[Router]] is navigating back in the browser session history.\n */\n isNavigatingBack: boolean;\n\n /**\n * True if the [[Router]] is navigating due to a browser refresh.\n */\n isNavigatingRefresh: boolean;\n\n /**\n * True if the previous instruction successfully completed the CanDeactivatePreviousStep in the current navigation.\n */\n couldDeactivate: boolean;\n\n /**\n * The currently active navigation tracker.\n */\n currentNavigationTracker: number;\n\n /**\n * The navigation models for routes that specified [[RouteConfig.nav]].\n */\n navigation: NavModel[];\n\n /**\n * The currently active navigation instruction.\n */\n currentInstruction: NavigationInstruction;\n\n /**\n * The parent router, or null if this instance is not a child router.\n */\n parent: Router = null;\n\n options: any = {};\n\n /**\n * The defaults used when a viewport lacks specified content\n */\n viewPortDefaults: Record = {};\n\n /**@internal */\n catchAllHandler: (instruction: NavigationInstruction) => NavigationInstruction | Promise;\n /**@internal */\n fallbackRoute: string;\n /**@internal */\n pipelineProvider: PipelineProvider;\n /**@internal */\n _fallbackOrder: number;\n /**@internal */\n _recognizer: RouteRecognizer;\n /**@internal */\n _childRecognizer: RouteRecognizer;\n /**@internal */\n _configuredPromise: Promise;\n /**@internal */\n _resolveConfiguredPromise: (value?: any) => void;\n\n /**\n * Extension point to transform the document title before it is built and displayed.\n * By default, child routers delegate to the parent router, and the app router\n * returns the title unchanged.\n */\n transformTitle: (title: string) => string = (title: string) => {\n if (this.parent) {\n return this.parent.transformTitle(title);\n }\n return title;\n }\n\n /**\n * @param container The [[Container]] to use when child routers.\n * @param history The [[History]] implementation to delegate navigation requests to.\n */\n constructor(container: Container, history: History) {\n this.container = container;\n this.history = history;\n this.reset();\n }\n\n /**\n * Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\n * Use with caution (actually, avoid using this). Do not use this to simply change your navigation model.\n */\n reset() {\n this.viewPorts = {};\n this.routes = [];\n this.baseUrl = '';\n this.isConfigured = false;\n this.isNavigating = false;\n this.isExplicitNavigation = false;\n this.isExplicitNavigationBack = false;\n this.isNavigatingFirst = false;\n this.isNavigatingNew = false;\n this.isNavigatingRefresh = false;\n this.isNavigatingForward = false;\n this.isNavigatingBack = false;\n this.couldDeactivate = false;\n this.navigation = [];\n this.currentInstruction = null;\n this.viewPortDefaults = {};\n this._fallbackOrder = 100;\n this._recognizer = new RouteRecognizer();\n this._childRecognizer = new RouteRecognizer();\n this._configuredPromise = new Promise(resolve => {\n this._resolveConfiguredPromise = resolve;\n });\n }\n\n /**\n * Gets a value indicating whether or not this [[Router]] is the root in the router tree. I.e., it has no parent.\n */\n get isRoot(): boolean {\n return !this.parent;\n }\n\n /**\n * Registers a viewPort to be used as a rendering target for activated routes.\n *\n * @param viewPort The viewPort.\n * @param name The name of the viewPort. 'default' if unspecified.\n */\n registerViewPort(viewPort: /*ViewPort*/any, name?: string): void {\n name = name || 'default';\n this.viewPorts[name] = viewPort;\n }\n\n /**\n * Returns a Promise that resolves when the router is configured.\n */\n ensureConfigured(): Promise {\n return this._configuredPromise;\n }\n\n /**\n * Configures the router.\n *\n * @param callbackOrConfig The [[RouterConfiguration]] or a callback that takes a [[RouterConfiguration]].\n */\n configure(callbackOrConfig: RouterConfiguration | ((config: RouterConfiguration) => RouterConfiguration)): Promise {\n this.isConfigured = true;\n\n let result: RouterConfigurationResolution = callbackOrConfig as RouterConfiguration;\n let config: RouterConfiguration;\n if (typeof callbackOrConfig === 'function') {\n config = new RouterConfiguration();\n result = callbackOrConfig(config);\n }\n\n return Promise\n .resolve(result)\n .then((c) => {\n if (c && (c as RouterConfiguration).exportToRouter) {\n config = c;\n }\n\n config.exportToRouter(this);\n this.isConfigured = true;\n this._resolveConfiguredPromise();\n });\n }\n\n /**\n * Navigates to a new location.\n *\n * @param fragment The URL fragment to use as the navigation destination.\n * @param options The navigation options.\n */\n navigate(fragment: string, options?: NavigationOptions): boolean {\n if (!this.isConfigured && this.parent) {\n return this.parent.navigate(fragment, options);\n }\n\n this.isExplicitNavigation = true;\n return this.history.navigate(_resolveUrl(fragment, this.baseUrl, this.history._hasPushState), options);\n }\n\n /**\n * Navigates to a new location corresponding to the route and params specified. Equivallent to [[Router.generate]] followed\n * by [[Router.navigate]].\n *\n * @param route The name of the route to use when generating the navigation location.\n * @param params The route parameters to be used when populating the route pattern.\n * @param options The navigation options.\n */\n navigateToRoute(route: string, params?: any, options?: NavigationOptions): boolean {\n let path = this.generate(route, params);\n return this.navigate(path, options);\n }\n\n /**\n * Navigates back to the most recent location in history.\n */\n navigateBack(): void {\n this.isExplicitNavigationBack = true;\n this.history.navigateBack();\n }\n\n /**\n * Creates a child router of the current router.\n *\n * @param container The [[Container]] to provide to the child router. Uses the current [[Router]]'s [[Container]] if unspecified.\n * @returns {Router} The new child Router.\n */\n createChild(container?: Container): Router {\n let childRouter = new Router(container || this.container.createChild(), this.history);\n childRouter.parent = this;\n return childRouter;\n }\n\n /**\n * Generates a URL fragment matching the specified route pattern.\n *\n * @param name The name of the route whose pattern should be used to generate the fragment.\n * @param params The route params to be used to populate the route pattern.\n * @param options If options.absolute = true, then absolute url will be generated; otherwise, it will be relative url.\n * @returns {string} A string containing the generated URL fragment.\n */\n generate(nameOrRoute: string | RouteConfig, params: any = {}, options: any = {}): string {\n // A child recognizer generates routes for potential child routes. Any potential child route is added\n // to the childRoute property of params for the childRouter to recognize. When generating routes, we\n // use the childRecognizer when childRoute params are available to generate a child router enabled route.\n let recognizer = 'childRoute' in params ? this._childRecognizer : this._recognizer;\n let hasRoute = recognizer.hasRoute(nameOrRoute as string | RouteHandler);\n if (!hasRoute) {\n if (this.parent) {\n return this.parent.generate(nameOrRoute, params, options);\n }\n throw new Error(`A route with name '${nameOrRoute}' could not be found. Check that \\`name: '${nameOrRoute}'\\` was specified in the route's config.`);\n }\n let path = recognizer.generate(nameOrRoute as string | RouteHandler, params);\n let rootedPath = _createRootedPath(path, this.baseUrl, this.history._hasPushState, options.absolute);\n return options.absolute ? `${this.history.getAbsoluteRoot()}${rootedPath}` : rootedPath;\n }\n\n /**\n * Creates a [[NavModel]] for the specified route config.\n *\n * @param config The route config.\n */\n createNavModel(config: RouteConfig): NavModel {\n let navModel = new NavModel(\n this,\n 'href' in config\n ? config.href\n // potential error when config.route is a string[] ?\n : config.route as string);\n navModel.title = config.title;\n navModel.order = config.nav;\n navModel.href = config.href;\n navModel.settings = config.settings;\n navModel.config = config;\n\n return navModel;\n }\n\n /**\n * Registers a new route with the router.\n *\n * @param config The [[RouteConfig]].\n * @param navModel The [[NavModel]] to use for the route. May be omitted for single-pattern routes.\n */\n addRoute(config: RouteConfig, navModel?: NavModel): void {\n if (Array.isArray(config.route)) {\n let routeConfigs = _ensureArrayWithSingleRoutePerConfig(config);\n // the following is wrong. todo: fix this after TS refactoring release\n routeConfigs.forEach(this.addRoute.bind(this));\n return;\n }\n\n validateRouteConfig(config);\n\n if (!('viewPorts' in config) && !config.navigationStrategy) {\n config.viewPorts = {\n 'default': {\n moduleId: config.moduleId,\n view: config.view\n }\n };\n }\n\n if (!navModel) {\n navModel = this.createNavModel(config);\n }\n\n this.routes.push(config);\n\n let path = config.route;\n if (path.charAt(0) === '/') {\n path = path.substr(1);\n }\n let caseSensitive = config.caseSensitive === true;\n let state: State = this._recognizer.add({\n path: path,\n handler: config as RouteHandler,\n caseSensitive: caseSensitive\n } as ConfigurableRoute);\n\n if (path) {\n let settings = config.settings;\n delete config.settings;\n let withChild = JSON.parse(JSON.stringify(config));\n config.settings = settings;\n withChild.route = `${path}/*childRoute`;\n withChild.hasChildRouter = true;\n this._childRecognizer.add({\n path: withChild.route,\n handler: withChild,\n caseSensitive: caseSensitive\n });\n\n withChild.navModel = navModel;\n withChild.settings = config.settings;\n withChild.navigationStrategy = config.navigationStrategy;\n }\n\n config.navModel = navModel;\n\n let navigation = this.navigation;\n\n if ((navModel.order || navModel.order === 0) && navigation.indexOf(navModel) === -1) {\n if ((!navModel.href && navModel.href !== '') && (state.types.dynamics || state.types.stars)) {\n throw new Error('Invalid route config for \"' + config.route + '\" : dynamic routes must specify an \"href:\" to be included in the navigation model.');\n }\n\n if (typeof navModel.order !== 'number') {\n navModel.order = ++this._fallbackOrder;\n }\n\n navigation.push(navModel);\n // this is a potential error / inconsistency between browsers\n //\n // MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort\n // If compareFunction(a, b) returns 0, leave a and b unchanged with respect to each other,\n // but sorted with respect to all different elements.\n // Note: the ECMAscript standard does not guarantee this behaviour,\n // and thus not all browsers (e.g. Mozilla versions dating back to at least 2003) respect this.\n navigation.sort((a, b) => a.order - b.order);\n }\n }\n\n /**\n * Gets a value indicating whether or not this [[Router]] or one of its ancestors has a route registered with the specified name.\n *\n * @param name The name of the route to check.\n */\n hasRoute(name: string): boolean {\n return !!(this._recognizer.hasRoute(name) || this.parent && this.parent.hasRoute(name));\n }\n\n /**\n * Gets a value indicating whether or not this [[Router]] has a route registered with the specified name.\n *\n * @param name The name of the route to check.\n */\n hasOwnRoute(name: string): boolean {\n return this._recognizer.hasRoute(name);\n }\n\n /**\n * Register a handler to use when the incoming URL fragment doesn't match any registered routes.\n *\n * @param config The moduleId, or a function that selects the moduleId, or a [[RouteConfig]].\n */\n handleUnknownRoutes(config?: RouteConfigSpecifier): void {\n if (!config) {\n throw new Error('Invalid unknown route handler');\n }\n\n this.catchAllHandler = instruction => {\n return this\n ._createRouteConfig(config, instruction)\n .then(c => {\n instruction.config = c;\n return instruction;\n });\n };\n }\n\n /**\n * Updates the document title using the current navigation instruction.\n */\n updateTitle(): void {\n let parentRouter = this.parent;\n if (parentRouter) {\n return parentRouter.updateTitle();\n }\n\n let currentInstruction = this.currentInstruction;\n if (currentInstruction) {\n currentInstruction._updateTitle();\n }\n return undefined;\n }\n\n /**\n * Updates the navigation routes with hrefs relative to the current location.\n * Note: This method will likely move to a plugin in a future release.\n */\n refreshNavigation(): void {\n let nav = this.navigation;\n\n for (let i = 0, length = nav.length; i < length; i++) {\n let current = nav[i];\n if (!current.config.href) {\n current.href = _createRootedPath(current.relativeHref, this.baseUrl, this.history._hasPushState);\n } else {\n current.href = _normalizeAbsolutePath(current.config.href, this.history._hasPushState);\n }\n }\n }\n\n /**\n * Sets the default configuration for the view ports. This specifies how to\n * populate a view port for which no module is specified. The default is\n * an empty view/view-model pair.\n */\n useViewPortDefaults($viewPortDefaults: Record): void {\n // a workaround to have strong typings while not requiring to expose interface ViewPortInstruction\n let viewPortDefaults: Record = $viewPortDefaults;\n for (let viewPortName in viewPortDefaults) {\n let viewPortConfig = viewPortDefaults[viewPortName];\n this.viewPortDefaults[viewPortName] = {\n moduleId: viewPortConfig.moduleId\n };\n }\n }\n\n /**@internal */\n _refreshBaseUrl(): void {\n let parentRouter = this.parent;\n if (parentRouter) {\n this.baseUrl = generateBaseUrl(parentRouter, parentRouter.currentInstruction);\n }\n }\n\n /**@internal */\n _createNavigationInstruction(url: string = '', parentInstruction: NavigationInstruction = null): Promise {\n let fragment = url;\n let queryString = '';\n\n let queryIndex = url.indexOf('?');\n if (queryIndex !== -1) {\n fragment = url.substr(0, queryIndex);\n queryString = url.substr(queryIndex + 1);\n }\n\n let urlRecognizationResults = this._recognizer.recognize(url) as IRouteRecognizationResults;\n if (!urlRecognizationResults || !urlRecognizationResults.length) {\n urlRecognizationResults = this._childRecognizer.recognize(url) as IRouteRecognizationResults;\n }\n\n let instructionInit: NavigationInstructionInit = {\n fragment,\n queryString,\n config: null,\n parentInstruction,\n previousInstruction: this.currentInstruction,\n router: this,\n options: {\n compareQueryParams: this.options.compareQueryParams\n }\n };\n\n let result: Promise;\n\n if (urlRecognizationResults && urlRecognizationResults.length) {\n let first = urlRecognizationResults[0];\n let instruction = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: first.params,\n queryParams: first.queryParams || urlRecognizationResults.queryParams,\n config: first.config || first.handler\n }));\n\n if (typeof first.handler === 'function') {\n result = evaluateNavigationStrategy(instruction, first.handler, first);\n } else if (first.handler && typeof first.handler.navigationStrategy === 'function') {\n result = evaluateNavigationStrategy(instruction, first.handler.navigationStrategy, first.handler);\n } else {\n result = Promise.resolve(instruction);\n }\n } else if (this.catchAllHandler) {\n let instruction = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: { path: fragment },\n queryParams: urlRecognizationResults ? urlRecognizationResults.queryParams : {},\n config: null // config will be created by the catchAllHandler\n }));\n\n result = evaluateNavigationStrategy(instruction, this.catchAllHandler);\n } else if (this.parent) {\n let router = this._parentCatchAllHandler(this.parent);\n\n if (router) {\n let newParentInstruction = this._findParentInstructionFromRouter(router, parentInstruction);\n\n let instruction = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: { path: fragment },\n queryParams: urlRecognizationResults ? urlRecognizationResults.queryParams : {},\n router: router,\n parentInstruction: newParentInstruction,\n parentCatchHandler: true,\n config: null // config will be created by the chained parent catchAllHandler\n }));\n\n result = evaluateNavigationStrategy(instruction, router.catchAllHandler);\n }\n }\n\n if (result && parentInstruction) {\n this.baseUrl = generateBaseUrl(this.parent, parentInstruction);\n }\n\n return result || Promise.reject(new Error(`Route not found: ${url}`));\n }\n\n /**@internal */\n _findParentInstructionFromRouter(router: Router, instruction: NavigationInstruction): NavigationInstruction {\n if (instruction.router === router) {\n instruction.fragment = router.baseUrl; // need to change the fragment in case of a redirect instead of moduleId\n return instruction;\n } else if (instruction.parentInstruction) {\n return this._findParentInstructionFromRouter(router, instruction.parentInstruction);\n }\n return undefined;\n }\n\n /**@internal */\n _parentCatchAllHandler(router: Router): Router | false {\n if (router.catchAllHandler) {\n return router;\n } else if (router.parent) {\n return this._parentCatchAllHandler(router.parent);\n }\n return false;\n }\n\n /**\n * @internal\n */\n _createRouteConfig(config: RouteConfigSpecifier, instruction: NavigationInstruction): Promise {\n return Promise\n .resolve(config)\n .then((c: any) => {\n if (typeof c === 'string') {\n return { moduleId: c } as RouteConfig;\n } else if (typeof c === 'function') {\n return c(instruction);\n }\n\n return c;\n })\n // typing here could be either RouteConfig or RedirectConfig\n // but temporarily treat both as RouteConfig\n // todo: improve typings precision\n .then((c: string | RouteConfig) => typeof c === 'string' ? { moduleId: c } as RouteConfig : c)\n .then((c: RouteConfig) => {\n c.route = instruction.params.path;\n validateRouteConfig(c);\n\n if (!c.navModel) {\n c.navModel = this.createNavModel(c);\n }\n\n return c;\n });\n }\n}\n\n/* @internal exported for unit testing */\nexport const generateBaseUrl = (router: Router, instruction: NavigationInstruction): string => {\n return `${router.baseUrl || ''}${instruction.getBaseUrl() || ''}`;\n};\n\n/* @internal exported for unit testing */\nexport const validateRouteConfig = (config: RouteConfig): void => {\n if (typeof config !== 'object') {\n throw new Error('Invalid Route Config');\n }\n\n if (typeof config.route !== 'string') {\n let name = config.name || '(no name)';\n throw new Error('Invalid Route Config for \"' + name + '\": You must specify a \"route:\" pattern.');\n }\n\n if (!('redirect' in config || config.moduleId || config.navigationStrategy || config.viewPorts)) {\n throw new Error('Invalid Route Config for \"' + config.route + '\": You must specify a \"moduleId:\", \"redirect:\", \"navigationStrategy:\", or \"viewPorts:\".');\n }\n};\n\n/* @internal exported for unit testing */\nexport const evaluateNavigationStrategy = (\n instruction: NavigationInstruction,\n evaluator: Function,\n context?: any\n): Promise => {\n return Promise\n .resolve(evaluator.call(context, instruction))\n .then(() => {\n if (!('viewPorts' in instruction.config)) {\n instruction.config.viewPorts = {\n 'default': {\n moduleId: instruction.config.moduleId\n }\n };\n }\n\n return instruction;\n });\n};\n\ninterface IRouteRecognizationResults extends Array {\n queryParams: Record;\n}\n","import { PipelineStatus } from './pipeline-status';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { Next, StepRunnerFunction, NextCompletionHandler } from './interfaces';\n\n/**@internal exported for unit testing */\nexport const createNextFn = (instruction: NavigationInstruction, steps: StepRunnerFunction[]): Next => {\n let index = -1;\n const next: Next = function() {\n index++;\n\n if (index < steps.length) {\n let currentStep = steps[index];\n\n try {\n return currentStep(instruction, next);\n } catch (e) {\n return next.reject(e);\n }\n } else {\n return next.complete();\n }\n } as Next;\n\n next.complete = createCompletionHandler(next, PipelineStatus.Completed);\n next.cancel = createCompletionHandler(next, PipelineStatus.Canceled);\n next.reject = createCompletionHandler(next, PipelineStatus.Rejected);\n\n return next;\n};\n\n/**@internal exported for unit testing */\nexport const createCompletionHandler = (next: Next, status: PipelineStatus): NextCompletionHandler => {\n return (output: any) => Promise\n .resolve({\n status,\n output,\n completed: status === PipelineStatus.Completed\n });\n};\n","import { PipelineStep, PipelineResult, Next, StepRunnerFunction, IPipelineSlot } from './interfaces';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { createNextFn } from './next';\n\n/**\n * The class responsible for managing and processing the navigation pipeline.\n */\nexport class Pipeline {\n /**\n * The pipeline steps. And steps added via addStep will be converted to a function\n * The actualy running functions with correct step contexts of this pipeline\n */\n steps: StepRunnerFunction[] = [];\n\n /**\n * Adds a step to the pipeline.\n *\n * @param step The pipeline step.\n */\n addStep(step: StepRunnerFunction | PipelineStep | IPipelineSlot): Pipeline {\n let run;\n\n if (typeof step === 'function') {\n run = step;\n } else if (typeof step.getSteps === 'function') {\n // getSteps is to enable support open slots\n // where devs can add multiple steps into the same slot name\n let steps = step.getSteps();\n for (let i = 0, l = steps.length; i < l; i++) {\n this.addStep(steps[i]);\n }\n\n return this;\n } else {\n run = (step as PipelineStep).run.bind(step);\n }\n\n this.steps.push(run);\n\n return this;\n }\n\n /**\n * Runs the pipeline.\n *\n * @param instruction The navigation instruction to process.\n */\n run(instruction: NavigationInstruction): Promise {\n const nextFn = createNextFn(instruction, this.steps);\n return nextFn();\n }\n}\n","import { NavigationOptions } from 'aurelia-history';\nimport { Router } from './router';\n\n/**@internal */\ndeclare module 'aurelia-history' {\n interface NavigationOptions {\n useAppRouter?: boolean;\n }\n}\n\n/**\n* When a navigation command is encountered, the current navigation\n* will be cancelled and control will be passed to the navigation\n* command so it can determine the correct action.\n*/\nexport interface NavigationCommand {\n navigate: (router: Router) => void;\n /**@internal */\n shouldContinueProcessing?: boolean;\n /**@internal */\n setRouter?: (router: Router) => void;\n}\n\n/**\n* Determines if the provided object is a navigation command.\n* A navigation command is anything with a navigate method.\n*\n* @param obj The object to check.\n*/\nexport function isNavigationCommand(obj: any): obj is NavigationCommand {\n return obj && typeof obj.navigate === 'function';\n}\n\n/**\n* Used during the activation lifecycle to cause a redirect.\n*/\nexport class Redirect implements NavigationCommand {\n\n url: string;\n /**@internal */\n options: NavigationOptions;\n /**@internal */\n shouldContinueProcessing: boolean;\n\n private router: Router;\n\n /**\n * @param url The URL fragment to use as the navigation destination.\n * @param options The navigation options.\n */\n constructor(url: string, options: NavigationOptions = {}) {\n this.url = url;\n this.options = Object.assign({ trigger: true, replace: true }, options);\n this.shouldContinueProcessing = false;\n }\n\n /**\n * Called by the activation system to set the child router.\n *\n * @param router The router.\n */\n setRouter(router: Router): void {\n this.router = router;\n }\n\n /**\n * Called by the navigation pipeline to navigate.\n *\n * @param appRouter The router to be redirected.\n */\n navigate(appRouter: Router): void {\n let navigatingRouter = this.options.useAppRouter ? appRouter : (this.router || appRouter);\n navigatingRouter.navigate(this.url, this.options);\n }\n}\n\n/**\n * Used during the activation lifecycle to cause a redirect to a named route.\n */\nexport class RedirectToRoute implements NavigationCommand {\n\n route: string;\n params: any;\n /**@internal */\n options: NavigationOptions;\n\n /**@internal */\n shouldContinueProcessing: boolean;\n\n /**@internal */\n router: Router;\n\n /**\n * @param route The name of the route.\n * @param params The parameters to be sent to the activation method.\n * @param options The options to use for navigation.\n */\n constructor(route: string, params: any = {}, options: NavigationOptions = {}) {\n this.route = route;\n this.params = params;\n this.options = Object.assign({ trigger: true, replace: true }, options);\n this.shouldContinueProcessing = false;\n }\n\n /**\n * Called by the activation system to set the child router.\n *\n * @param router The router.\n */\n setRouter(router: Router): void {\n this.router = router;\n }\n\n /**\n * Called by the navigation pipeline to navigate.\n *\n * @param appRouter The router to be redirected.\n */\n navigate(appRouter: Router): void {\n let navigatingRouter = this.options.useAppRouter ? appRouter : (this.router || appRouter);\n navigatingRouter.navigateToRoute(this.route, this.params, this.options);\n }\n}\n","import { ViewPortPlan, ViewPortInstruction, RouteConfig, ViewPort } from './interfaces';\nimport { Redirect } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { InternalActivationStrategy, ActivationStrategyType } from './activation-strategy';\n\ntype ViewPortPlansRecord = Record;\n\n/**\n * @internal exported for unit testing\n */\nexport function _buildNavigationPlan(\n instruction: NavigationInstruction,\n forceLifecycleMinimum?: boolean\n): Promise {\n let config = instruction.config;\n\n if ('redirect' in config) {\n return buildRedirectPlan(instruction);\n }\n\n const prevInstruction = instruction.previousInstruction;\n const defaultViewPortConfigs = instruction.router.viewPortDefaults;\n\n if (prevInstruction) {\n return buildTransitionPlans(instruction, prevInstruction, defaultViewPortConfigs, forceLifecycleMinimum);\n }\n\n // first navigation, only need to prepare a few information for each viewport plan\n const viewPortPlans: ViewPortPlansRecord = {};\n let viewPortConfigs = config.viewPorts;\n for (let viewPortName in viewPortConfigs) {\n let viewPortConfig = viewPortConfigs[viewPortName];\n if (viewPortConfig.moduleId === null && viewPortName in defaultViewPortConfigs) {\n viewPortConfig = defaultViewPortConfigs[viewPortName];\n }\n viewPortPlans[viewPortName] = {\n name: viewPortName,\n strategy: InternalActivationStrategy.Replace,\n config: viewPortConfig\n };\n }\n\n return Promise.resolve(viewPortPlans);\n}\n\n/**\n * Build redirect plan based on config of a navigation instruction\n * @internal exported for unit testing\n */\nexport const buildRedirectPlan = (instruction: NavigationInstruction) => {\n const config = instruction.config;\n const router = instruction.router;\n return router\n ._createNavigationInstruction(config.redirect)\n .then(redirectInstruction => {\n\n const params: Record = {};\n const originalInstructionParams = instruction.params;\n const redirectInstructionParams = redirectInstruction.params;\n\n for (let key in redirectInstructionParams) {\n // If the param on the redirect points to another param, e.g. { route: first/:this, redirect: second/:this }\n let val = redirectInstructionParams[key];\n if (typeof val === 'string' && val[0] === ':') {\n val = val.slice(1);\n // And if that param is found on the original instruction then use it\n if (val in originalInstructionParams) {\n params[key] = originalInstructionParams[val];\n }\n } else {\n params[key] = redirectInstructionParams[key];\n }\n }\n let redirectLocation = router.generate(redirectInstruction.config, params, instruction.options);\n\n // Special handling for child routes\n for (let key in originalInstructionParams) {\n redirectLocation = redirectLocation.replace(`:${key}`, originalInstructionParams[key]);\n }\n\n let queryString = instruction.queryString;\n if (queryString) {\n redirectLocation += '?' + queryString;\n }\n\n return Promise.resolve(new Redirect(redirectLocation));\n });\n};\n\n/**\n * @param viewPortPlans the Plan record that holds information about built plans\n * @internal exported for unit testing\n */\nexport const buildTransitionPlans = (\n currentInstruction: NavigationInstruction,\n previousInstruction: NavigationInstruction,\n defaultViewPortConfigs: Record,\n forceLifecycleMinimum?: boolean\n): Promise => {\n\n let viewPortPlans: ViewPortPlansRecord = {};\n let newInstructionConfig = currentInstruction.config;\n let hasNewParams = hasDifferentParameterValues(previousInstruction, currentInstruction);\n let pending: Promise[] = [];\n let previousViewPortInstructions = previousInstruction.viewPortInstructions as Record;\n\n for (let viewPortName in previousViewPortInstructions) {\n\n const prevViewPortInstruction = previousViewPortInstructions[viewPortName];\n const prevViewPortComponent = prevViewPortInstruction.component;\n const newInstructionViewPortConfigs = newInstructionConfig.viewPorts as Record;\n\n // if this is invoked on a viewport without any changes, based on new url,\n // newViewPortConfig will be the existing viewport instruction\n let nextViewPortConfig = viewPortName in newInstructionViewPortConfigs\n ? newInstructionViewPortConfigs[viewPortName]\n : prevViewPortInstruction;\n\n if (nextViewPortConfig.moduleId === null && viewPortName in defaultViewPortConfigs) {\n nextViewPortConfig = defaultViewPortConfigs[viewPortName];\n }\n\n const viewPortActivationStrategy = determineActivationStrategy(\n currentInstruction,\n prevViewPortInstruction,\n nextViewPortConfig,\n hasNewParams,\n forceLifecycleMinimum\n );\n const viewPortPlan = viewPortPlans[viewPortName] = {\n name: viewPortName,\n // ViewPortInstruction can quack like a RouteConfig\n config: nextViewPortConfig as RouteConfig,\n prevComponent: prevViewPortComponent,\n prevModuleId: prevViewPortInstruction.moduleId,\n strategy: viewPortActivationStrategy\n } as ViewPortPlan;\n\n // recursively build nav plans for all existing child routers/viewports of this viewport\n // this is possible because existing child viewports and routers already have necessary information\n // to process the wildcard path from parent instruction\n if (viewPortActivationStrategy !== InternalActivationStrategy.Replace && prevViewPortInstruction.childRouter) {\n const path = currentInstruction.getWildcardPath();\n const task: Promise = prevViewPortInstruction\n .childRouter\n ._createNavigationInstruction(path, currentInstruction)\n .then((childInstruction: NavigationInstruction) => {\n viewPortPlan.childNavigationInstruction = childInstruction;\n\n return _buildNavigationPlan(\n childInstruction,\n // is it safe to assume viewPortPlan has not been changed from previous assignment?\n // if so, can just use local variable viewPortPlanStrategy\n // there could be user code modifying viewport plan during _createNavigationInstruction?\n viewPortPlan.strategy === InternalActivationStrategy.InvokeLifecycle\n )\n .then(childPlan => {\n if (childPlan instanceof Redirect) {\n return Promise.reject(childPlan);\n }\n childInstruction.plan = childPlan;\n // for bluebird ?\n return null;\n });\n });\n\n pending.push(task);\n }\n }\n\n return Promise.all(pending).then(() => viewPortPlans);\n};\n\n/**\n * @param newViewPortConfig if this is invoked on a viewport without any changes, based on new url, newViewPortConfig will be the existing viewport instruction\n * @internal exported for unit testing\n */\nexport const determineActivationStrategy = (\n currentNavInstruction: NavigationInstruction,\n prevViewPortInstruction: ViewPortInstruction,\n newViewPortConfig: RouteConfig | ViewPortInstruction,\n // indicates whether there is difference between old and new url params\n hasNewParams: boolean,\n forceLifecycleMinimum?: boolean\n): ActivationStrategyType => {\n\n let newInstructionConfig = currentNavInstruction.config;\n let prevViewPortViewModel = prevViewPortInstruction.component.viewModel;\n let viewPortPlanStrategy: ActivationStrategyType;\n\n if (prevViewPortInstruction.moduleId !== newViewPortConfig.moduleId) {\n viewPortPlanStrategy = InternalActivationStrategy.Replace;\n } else if ('determineActivationStrategy' in prevViewPortViewModel) {\n viewPortPlanStrategy = prevViewPortViewModel.determineActivationStrategy(...currentNavInstruction.lifecycleArgs);\n } else if (newInstructionConfig.activationStrategy) {\n viewPortPlanStrategy = newInstructionConfig.activationStrategy;\n } else if (hasNewParams || forceLifecycleMinimum) {\n viewPortPlanStrategy = InternalActivationStrategy.InvokeLifecycle;\n } else {\n viewPortPlanStrategy = InternalActivationStrategy.NoChange;\n }\n return viewPortPlanStrategy;\n};\n\n/**@internal exported for unit testing */\nexport const hasDifferentParameterValues = (prev: NavigationInstruction, next: NavigationInstruction): boolean => {\n let prevParams = prev.params;\n let nextParams = next.params;\n let nextWildCardName = next.config.hasChildRouter ? next.getWildCardName() : null;\n\n for (let key in nextParams) {\n if (key === nextWildCardName) {\n continue;\n }\n\n if (prevParams[key] !== nextParams[key]) {\n return true;\n }\n }\n\n for (let key in prevParams) {\n if (key === nextWildCardName) {\n continue;\n }\n\n if (prevParams[key] !== nextParams[key]) {\n return true;\n }\n }\n\n if (!next.options.compareQueryParams) {\n return false;\n }\n\n let prevQueryParams = prev.queryParams;\n let nextQueryParams = next.queryParams;\n for (let key in nextQueryParams) {\n if (prevQueryParams[key] !== nextQueryParams[key]) {\n return true;\n }\n }\n\n for (let key in prevQueryParams) {\n if (prevQueryParams[key] !== nextQueryParams[key]) {\n return true;\n }\n }\n\n return false;\n};\n","import { Next } from './interfaces';\nimport { Redirect } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { _buildNavigationPlan } from './navigation-plan';\n\n/**\n * Transform a navigation instruction into viewport plan record object,\n * or a redirect request if user viewmodel demands\n */\nexport class BuildNavigationPlanStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return _buildNavigationPlan(navigationInstruction)\n .then(plan => {\n if (plan instanceof Redirect) {\n return next.cancel(plan);\n }\n navigationInstruction.plan = plan;\n return next();\n })\n .catch(next.cancel);\n }\n}\n","import { RouteConfig, ViewPortComponent, ViewPortPlan, ViewPortInstruction } from './interfaces';\nimport { Redirect } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { _buildNavigationPlan } from './navigation-plan';\nimport { InternalActivationStrategy } from './activation-strategy';\nimport { RouteLoader } from './route-loader';\n\n/**\n * Loading plan calculated based on a navigration-instruction and a viewport plan\n */\ninterface ILoadingPlan {\n viewPortPlan: ViewPortPlan;\n navigationInstruction: NavigationInstruction;\n}\n\n/**\n * @internal Exported for unit testing\n */\nexport const loadNewRoute = (\n routeLoader: RouteLoader,\n navigationInstruction: NavigationInstruction\n): Promise => {\n let loadingPlans = determineLoadingPlans(navigationInstruction);\n let loadPromises = loadingPlans.map((loadingPlan: ILoadingPlan) => loadRoute(\n routeLoader,\n loadingPlan.navigationInstruction,\n loadingPlan.viewPortPlan\n ));\n\n return Promise.all(loadPromises);\n};\n\n/**\n * @internal Exported for unit testing\n */\nexport const determineLoadingPlans = (\n navigationInstruction: NavigationInstruction,\n loadingPlans: ILoadingPlan[] = []\n): ILoadingPlan[] => {\n let viewPortPlans: Record = navigationInstruction.plan;\n\n for (let viewPortName in viewPortPlans) {\n let viewPortPlan = viewPortPlans[viewPortName];\n let childNavInstruction = viewPortPlan.childNavigationInstruction;\n\n if (viewPortPlan.strategy === InternalActivationStrategy.Replace) {\n loadingPlans.push({ viewPortPlan, navigationInstruction } as ILoadingPlan);\n\n if (childNavInstruction) {\n determineLoadingPlans(childNavInstruction, loadingPlans);\n }\n } else {\n let viewPortInstruction = navigationInstruction.addViewPortInstruction({\n name: viewPortName,\n strategy: viewPortPlan.strategy,\n moduleId: viewPortPlan.prevModuleId,\n component: viewPortPlan.prevComponent\n }) as ViewPortInstruction;\n\n if (childNavInstruction) {\n viewPortInstruction.childNavigationInstruction = childNavInstruction;\n determineLoadingPlans(childNavInstruction, loadingPlans);\n }\n }\n }\n\n return loadingPlans;\n};\n\n/**\n * @internal Exported for unit testing\n */\nexport const loadRoute = (\n routeLoader: RouteLoader,\n navigationInstruction: NavigationInstruction,\n viewPortPlan: ViewPortPlan\n): Promise => {\n let planConfig = viewPortPlan.config;\n let moduleId = planConfig ? planConfig.moduleId : null;\n\n return loadComponent(routeLoader, navigationInstruction, planConfig)\n .then((component) => {\n let viewPortInstruction = navigationInstruction.addViewPortInstruction({\n name: viewPortPlan.name,\n strategy: viewPortPlan.strategy,\n moduleId: moduleId,\n component: component\n }) as ViewPortInstruction;\n\n let childRouter = component.childRouter;\n if (childRouter) {\n let path = navigationInstruction.getWildcardPath();\n\n return childRouter\n ._createNavigationInstruction(path, navigationInstruction)\n .then((childInstruction) => {\n viewPortPlan.childNavigationInstruction = childInstruction;\n\n return _buildNavigationPlan(childInstruction)\n .then((childPlan) => {\n if (childPlan instanceof Redirect) {\n return Promise.reject(childPlan);\n }\n childInstruction.plan = childPlan;\n viewPortInstruction.childNavigationInstruction = childInstruction;\n\n return loadNewRoute(routeLoader, childInstruction);\n });\n });\n }\n // ts complains without this, though they are same\n return void 0;\n });\n};\n\n/**\n * Load a routed-component based on navigation instruction and route config\n * @internal exported for unit testing only\n */\nexport const loadComponent = (\n routeLoader: RouteLoader,\n navigationInstruction: NavigationInstruction,\n config: RouteConfig\n): Promise => {\n let router = navigationInstruction.router;\n let lifecycleArgs = navigationInstruction.lifecycleArgs;\n\n return Promise.resolve()\n .then(() => routeLoader.loadRoute(router, config, navigationInstruction))\n .then(\n /**\n * @param component an object carrying information about loaded route\n * typically contains information about view model, childContainer, view and router\n */\n (component: ViewPortComponent) => {\n let { viewModel, childContainer } = component;\n component.router = router;\n component.config = config;\n\n if ('configureRouter' in viewModel) {\n let childRouter = childContainer.getChildRouter();\n component.childRouter = childRouter;\n\n return childRouter\n .configure(c => viewModel.configureRouter(c, childRouter, lifecycleArgs[0], lifecycleArgs[1], lifecycleArgs[2]))\n .then(() => component);\n }\n\n return component;\n }\n );\n};\n","import { RouteConfig } from './interfaces';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { Router } from './router';\n\n/**\n * Abstract class that is responsible for loading view / view model from a route config\n * The default implementation can be found in `aurelia-templating-router`\n */\nexport class RouteLoader {\n /**\n * Load a route config based on its viewmodel / view configuration\n */\n // return typing: return typings used to be never\n // as it was a throw. Changing it to Promise should not cause any issues\n loadRoute(router: Router, config: RouteConfig, navigationInstruction: NavigationInstruction): Promise {\n throw new Error('Route loaders must implement \"loadRoute(router, config, navigationInstruction)\".');\n }\n}\n","import { Next } from './interfaces';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { loadNewRoute } from './utilities-route-loading';\nimport { RouteLoader } from './route-loader';\n/**\n * A pipeline step responsible for loading a route config of a navigation instruction\n */\nexport class LoadRouteStep {\n /**@internal */\n static inject() { return [RouteLoader]; }\n /**\n * Route loader isntance that will handle loading route config\n * @internal\n */\n routeLoader: RouteLoader;\n constructor(routeLoader: RouteLoader) {\n this.routeLoader = routeLoader;\n }\n /**\n * Run the internal to load route config of a navigation instruction to prepare for next steps in the pipeline\n */\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return loadNewRoute(this.routeLoader, navigationInstruction)\n .then(next, next.cancel);\n }\n}\n","import { NavigationInstruction } from './navigation-instruction';\n\n/**\n * A pipeline step for instructing a piepline to commit changes on a navigation instruction\n */\nexport class CommitChangesStep {\n run(navigationInstruction: NavigationInstruction, next: Function): Promise {\n return navigationInstruction\n ._commitChanges(/*wait to swap?*/ true)\n .then(() => {\n navigationInstruction._updateTitle();\n return next();\n });\n }\n}\n","/**\n * An optional interface describing the available activation strategies.\n * @internal Used internally.\n */\nexport const enum InternalActivationStrategy {\n /**\n * Reuse the existing view model, without invoking Router lifecycle hooks.\n */\n NoChange = 'no-change',\n /**\n * Reuse the existing view model, invoking Router lifecycle hooks.\n */\n InvokeLifecycle = 'invoke-lifecycle',\n /**\n * Replace the existing view model, invoking Router lifecycle hooks.\n */\n Replace = 'replace'\n}\n\n/**\n * The strategy to use when activating modules during navigation.\n */\n// kept for compat reason\nexport const activationStrategy: ActivationStrategy = {\n noChange: InternalActivationStrategy.NoChange,\n invokeLifecycle: InternalActivationStrategy.InvokeLifecycle,\n replace: InternalActivationStrategy.Replace\n};\n\n/**\n * An optional interface describing the available activation strategies.\n */\nexport interface ActivationStrategy {\n /**\n * Reuse the existing view model, without invoking Router lifecycle hooks.\n */\n noChange: 'no-change';\n /**\n * Reuse the existing view model, invoking Router lifecycle hooks.\n */\n invokeLifecycle: 'invoke-lifecycle';\n /**\n * Replace the existing view model, invoking Router lifecycle hooks.\n */\n replace: 'replace';\n}\n\n/**\n * Enum like type for activation strategy built-in values\n */\nexport type ActivationStrategyType = ActivationStrategy[keyof ActivationStrategy];\n","import { Next, ViewPortComponent, ViewPortPlan, ViewPortInstruction, LifecycleArguments } from './interfaces';\nimport { isNavigationCommand } from './navigation-commands';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { activationStrategy } from './activation-strategy';\nimport { Router } from './router';\n\n/**\n * Recursively find list of deactivate-able view models\n * and invoke the either 'canDeactivate' or 'deactivate' on each\n * @internal exported for unit testing\n */\nexport const processDeactivatable = (\n navigationInstruction: NavigationInstruction,\n callbackName: 'canDeactivate' | 'deactivate',\n next: Next,\n ignoreResult?: boolean\n): Promise => {\n let plan: Record = navigationInstruction.plan;\n let infos = findDeactivatable(plan, callbackName);\n let i = infos.length; // query from inside out\n\n function inspect(val: any): Promise {\n if (ignoreResult || shouldContinue(val)) {\n return iterate();\n }\n\n return next.cancel(val);\n }\n\n function iterate(): Promise {\n if (i--) {\n try {\n let viewModel = infos[i];\n let result = viewModel[callbackName](navigationInstruction);\n return processPotential(result, inspect, next.cancel);\n } catch (error) {\n return next.cancel(error);\n }\n }\n\n navigationInstruction.router.couldDeactivate = true;\n\n return next();\n }\n\n return iterate();\n};\n\n/**\n * Recursively find and returns a list of deactivate-able view models\n * @internal exported for unit testing\n */\nexport const findDeactivatable = (\n plan: Record,\n callbackName: string,\n list: IActivatableInfo[] = []\n): any[] => {\n for (let viewPortName in plan) {\n let viewPortPlan = plan[viewPortName];\n let prevComponent = viewPortPlan.prevComponent;\n\n if ((viewPortPlan.strategy === activationStrategy.invokeLifecycle || viewPortPlan.strategy === activationStrategy.replace)\n && prevComponent\n ) {\n let viewModel = prevComponent.viewModel;\n\n if (callbackName in viewModel) {\n list.push(viewModel);\n }\n }\n\n if (viewPortPlan.strategy === activationStrategy.replace && prevComponent) {\n addPreviousDeactivatable(prevComponent, callbackName, list);\n } else if (viewPortPlan.childNavigationInstruction) {\n findDeactivatable(viewPortPlan.childNavigationInstruction.plan, callbackName, list);\n }\n }\n\n return list;\n};\n\n/**\n * @internal exported for unit testing\n */\nexport const addPreviousDeactivatable = (\n component: ViewPortComponent,\n callbackName: string,\n list: IActivatableInfo[]\n): void => {\n let childRouter = component.childRouter;\n\n if (childRouter && childRouter.currentInstruction) {\n let viewPortInstructions = childRouter.currentInstruction.viewPortInstructions;\n\n for (let viewPortName in viewPortInstructions) {\n let viewPortInstruction = viewPortInstructions[viewPortName];\n let prevComponent = viewPortInstruction.component;\n let prevViewModel = prevComponent.viewModel;\n\n if (callbackName in prevViewModel) {\n list.push(prevViewModel);\n }\n\n addPreviousDeactivatable(prevComponent, callbackName, list);\n }\n }\n};\n\n/**\n * @internal exported for unit testing\n */\nexport const processActivatable = (\n navigationInstruction: NavigationInstruction,\n callbackName: 'canActivate' | 'activate',\n next: Next,\n ignoreResult?: boolean\n): Promise => {\n let infos = findActivatable(navigationInstruction, callbackName);\n let length = infos.length;\n let i = -1; // query from top down\n\n function inspect(val: any, router: Router): Promise {\n if (ignoreResult || shouldContinue(val, router)) {\n return iterate();\n }\n\n return next.cancel(val);\n }\n\n function iterate(): Promise {\n i++;\n\n if (i < length) {\n try {\n let current = infos[i];\n let result = current.viewModel[callbackName](...current.lifecycleArgs);\n return processPotential(result, (val: any) => inspect(val, current.router), next.cancel);\n } catch (error) {\n return next.cancel(error);\n }\n }\n\n return next();\n }\n\n return iterate();\n};\n\ninterface IActivatableInfo {\n viewModel: any;\n lifecycleArgs: LifecycleArguments;\n router: Router;\n}\n\n/**\n * Find list of activatable view model and add to list (3rd parameter)\n * @internal exported for unit testing\n */\nexport const findActivatable = (\n navigationInstruction: NavigationInstruction,\n callbackName: 'canActivate' | 'activate',\n list: IActivatableInfo[] = [],\n router?: Router\n): IActivatableInfo[] => {\n let plan: Record = navigationInstruction.plan;\n\n Object\n .keys(plan)\n .forEach((viewPortName) => {\n let viewPortPlan = plan[viewPortName];\n let viewPortInstruction = navigationInstruction.viewPortInstructions[viewPortName] as ViewPortInstruction;\n let viewPortComponent = viewPortInstruction.component;\n let viewModel = viewPortComponent.viewModel;\n\n if (\n (viewPortPlan.strategy === activationStrategy.invokeLifecycle\n || viewPortPlan.strategy === activationStrategy.replace\n )\n && callbackName in viewModel\n ) {\n list.push({\n viewModel,\n lifecycleArgs: viewPortInstruction.lifecycleArgs,\n router\n });\n }\n\n let childNavInstruction = viewPortPlan.childNavigationInstruction;\n\n if (childNavInstruction) {\n findActivatable(\n childNavInstruction,\n callbackName,\n list,\n viewPortComponent.childRouter || router\n );\n }\n });\n\n return list;\n};\n\nconst shouldContinue = (output: T, router?: Router): boolean | T => {\n if (output instanceof Error) {\n return false;\n }\n\n if (isNavigationCommand(output)) {\n if (typeof output.setRouter === 'function') {\n output.setRouter(router);\n }\n\n return !!output.shouldContinueProcessing;\n }\n\n if (output === undefined) {\n return true;\n }\n\n return output;\n};\n\n/**\n * A basic interface for an Observable type\n */\nexport interface IObservable {\n subscribe(sub?: IObservableConfig): ISubscription;\n}\n\nexport interface IObservableConfig {\n next(): void;\n error(err?: any): void;\n complete(): void;\n}\n\n/**\n * A basic interface for a Subscription to an Observable\n */\ninterface ISubscription {\n unsubscribe(): void;\n}\n\ntype SafeSubscriptionFunc = (sub: SafeSubscription) => ISubscription;\n\n/**\n * wraps a subscription, allowing unsubscribe calls even if\n * the first value comes synchronously\n */\nclass SafeSubscription {\n\n private _subscribed: boolean;\n private _subscription: ISubscription;\n\n constructor(subscriptionFunc: SafeSubscriptionFunc) {\n this._subscribed = true;\n this._subscription = subscriptionFunc(this);\n\n if (!this._subscribed) {\n this.unsubscribe();\n }\n }\n\n get subscribed(): boolean {\n return this._subscribed;\n }\n\n unsubscribe(): void {\n if (this._subscribed && this._subscription) {\n this._subscription.unsubscribe();\n }\n\n this._subscribed = false;\n }\n}\n\n/**\n * A function to process return value from `activate`/`canActivate` steps\n * Supports observable/promise\n *\n * For observable, resolve at first next() or on complete()\n */\nconst processPotential = (obj: any, resolve: (val?: any) => any, reject: (err?: any) => any): any => {\n // if promise like\n if (obj && typeof obj.then === 'function') {\n return Promise.resolve(obj).then(resolve).catch(reject);\n }\n\n // if observable\n if (obj && typeof obj.subscribe === 'function') {\n let obs: IObservable = obj;\n return new SafeSubscription(sub => obs.subscribe({\n next() {\n if (sub.subscribed) {\n sub.unsubscribe();\n resolve(obj);\n }\n },\n error(error) {\n if (sub.subscribed) {\n sub.unsubscribe();\n reject(error);\n }\n },\n complete() {\n if (sub.subscribed) {\n sub.unsubscribe();\n resolve(obj);\n }\n }\n }));\n }\n\n // else just resolve\n try {\n return resolve(obj);\n } catch (error) {\n return reject(error);\n }\n};\n","import { Next } from './interfaces';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { processDeactivatable, processActivatable } from './utilities-activation';\n\n/**\n * A pipeline step responsible for finding and activating method `canDeactivate` on a view model of a route\n */\nexport class CanDeactivatePreviousStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processDeactivatable(navigationInstruction, 'canDeactivate', next);\n }\n}\n\n/**\n * A pipeline step responsible for finding and activating method `canActivate` on a view model of a route\n */\nexport class CanActivateNextStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processActivatable(navigationInstruction, 'canActivate', next);\n }\n}\n\n/**\n * A pipeline step responsible for finding and activating method `deactivate` on a view model of a route\n */\nexport class DeactivatePreviousStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processDeactivatable(navigationInstruction, 'deactivate', next, true);\n }\n}\n\n/**\n * A pipeline step responsible for finding and activating method `activate` on a view model of a route\n */\nexport class ActivateNextStep {\n run(navigationInstruction: NavigationInstruction, next: Next): Promise {\n return processActivatable(navigationInstruction, 'activate', next, true);\n }\n}\n","import { Container } from 'aurelia-dependency-injection';\nimport { Pipeline } from './pipeline';\nimport { BuildNavigationPlanStep } from './step-build-navigation-plan';\nimport { LoadRouteStep } from './step-load-route';\nimport { CommitChangesStep } from './step-commit-changes';\nimport { CanDeactivatePreviousStep, CanActivateNextStep, DeactivatePreviousStep, ActivateNextStep } from './step-activation';\nimport { PipelineStep, StepRunnerFunction, IPipelineSlot } from './interfaces';\nimport { PipelineSlotName } from './pipeline-slot-name';\n\n/**\n * A multi-slots Pipeline Placeholder Step for hooking into a pipeline execution\n */\nclass PipelineSlot implements IPipelineSlot {\n\n /**@internal */\n container: Container;\n /**@internal */\n slotName: string;\n /**@internal */\n slotAlias?: string;\n\n steps: (Function | PipelineStep)[] = [];\n\n constructor(container: Container, name: string, alias?: string) {\n this.container = container;\n this.slotName = name;\n this.slotAlias = alias;\n }\n\n getSteps(): (StepRunnerFunction | IPipelineSlot | PipelineStep)[] {\n return this.steps.map(x => this.container.get(x));\n }\n}\n\n/**\n * Class responsible for creating the navigation pipeline.\n */\nexport class PipelineProvider {\n\n /**@internal */\n static inject() { return [Container]; }\n /**@internal */\n container: Container;\n /**@internal */\n steps: (Function | PipelineSlot)[];\n\n constructor(container: Container) {\n this.container = container;\n this.steps = [\n BuildNavigationPlanStep,\n CanDeactivatePreviousStep, // optional\n LoadRouteStep,\n createPipelineSlot(container, PipelineSlotName.Authorize),\n CanActivateNextStep, // optional\n createPipelineSlot(container, PipelineSlotName.PreActivate, 'modelbind'),\n // NOTE: app state changes start below - point of no return\n DeactivatePreviousStep, // optional\n ActivateNextStep, // optional\n createPipelineSlot(container, PipelineSlotName.PreRender, 'precommit'),\n CommitChangesStep,\n createPipelineSlot(container, PipelineSlotName.PostRender, 'postcomplete')\n ];\n }\n\n /**\n * Create the navigation pipeline.\n */\n createPipeline(useCanDeactivateStep: boolean = true): Pipeline {\n let pipeline = new Pipeline();\n this.steps.forEach(step => {\n if (useCanDeactivateStep || step !== CanDeactivatePreviousStep) {\n pipeline.addStep(this.container.get(step));\n }\n });\n return pipeline;\n }\n\n /**@internal */\n _findStep(name: string): PipelineSlot {\n // Steps that are not PipelineSlots are constructor functions, and they will automatically fail. Probably.\n return this.steps.find(x => (x as PipelineSlot).slotName === name || (x as PipelineSlot).slotAlias === name) as PipelineSlot;\n }\n\n /**\n * Adds a step into the pipeline at a known slot location.\n */\n addStep(name: string, step: PipelineStep | Function): void {\n let found = this._findStep(name);\n if (found) {\n let slotSteps = found.steps;\n // prevent duplicates\n if (!slotSteps.includes(step)) {\n slotSteps.push(step);\n }\n } else {\n throw new Error(`Invalid pipeline slot name: ${name}.`);\n }\n }\n\n /**\n * Removes a step from a slot in the pipeline\n */\n removeStep(name: string, step: PipelineStep): void {\n let slot = this._findStep(name);\n if (slot) {\n let slotSteps = slot.steps;\n slotSteps.splice(slotSteps.indexOf(step), 1);\n }\n }\n\n /**\n * Clears all steps from a slot in the pipeline\n * @internal\n */\n _clearSteps(name: string = ''): void {\n let slot = this._findStep(name);\n if (slot) {\n slot.steps = [];\n }\n }\n\n /**\n * Resets all pipeline slots\n */\n reset(): void {\n this._clearSteps(PipelineSlotName.Authorize);\n this._clearSteps(PipelineSlotName.PreActivate);\n this._clearSteps(PipelineSlotName.PreRender);\n this._clearSteps(PipelineSlotName.PostRender);\n }\n}\n\n/**@internal */\nconst createPipelineSlot = (container: Container, name: PipelineSlotName, alias?: string): PipelineSlot => {\n return new PipelineSlot(container, name, alias);\n};\n","import * as LogManager from 'aurelia-logging';\nimport { Container } from 'aurelia-dependency-injection';\nimport { History, NavigationOptions } from 'aurelia-history';\nimport { Router } from './router';\nimport { PipelineProvider } from './pipeline-provider';\nimport { isNavigationCommand } from './navigation-commands';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { NavigationInstruction } from './navigation-instruction';\nimport { ViewPort, ConfiguresRouter, PipelineResult } from './interfaces';\nimport { RouterEvent } from './router-event';\nimport { RouterConfiguration } from './router-configuration';\n\n/**@internal */\ndeclare module 'aurelia-dependency-injection' {\n interface Container {\n viewModel?: any;\n }\n}\n\nconst logger = LogManager.getLogger('app-router');\n\n/**\n * The main application router.\n */\nexport class AppRouter extends Router {\n\n /**@internal */\n static inject() { return [Container, History, PipelineProvider, EventAggregator]; }\n\n events: EventAggregator;\n /**@internal */\n maxInstructionCount: number;\n /**@internal */\n _queue: NavigationInstruction[];\n /**@internal */\n isActive: boolean;\n\n constructor(container: Container, history: History, pipelineProvider: PipelineProvider, events: EventAggregator) {\n super(container, history); // Note the super will call reset internally.\n this.pipelineProvider = pipelineProvider;\n this.events = events;\n }\n\n /**\n * Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\n * Use with caution (actually, avoid using this). Do not use this to simply change your navigation model.\n */\n reset(): void {\n super.reset();\n this.maxInstructionCount = 10;\n if (!this._queue) {\n this._queue = [];\n } else {\n this._queue.length = 0;\n }\n }\n\n /**\n * Loads the specified URL.\n *\n * @param url The URL fragment to load.\n */\n loadUrl(url: string): Promise {\n return this\n ._createNavigationInstruction(url)\n .then(instruction => this._queueInstruction(instruction))\n .catch(error => {\n logger.error(error);\n restorePreviousLocation(this);\n });\n }\n\n /**\n * Registers a viewPort to be used as a rendering target for activated routes.\n *\n * @param viewPort The viewPort. This is typically a element in Aurelia default impl\n * @param name The name of the viewPort. 'default' if unspecified.\n */\n registerViewPort(viewPort: /*ViewPort*/ any, name?: string): Promise {\n // having strong typing without changing public API\n const $viewPort: ViewPort = viewPort;\n super.registerViewPort($viewPort, name);\n\n // beside adding viewport to the registry of this instance\n // AppRouter also configure routing/history to start routing functionality\n // There are situation where there are more than 1 element at root view\n // in that case, still only activate once via the following guard\n if (!this.isActive) {\n const viewModel = this._findViewModel($viewPort);\n if ('configureRouter' in viewModel) {\n // If there are more than one element at root view\n // use this flag to guard against configure method being invoked multiple times\n // this flag is set inside method configure\n if (!this.isConfigured) {\n // replace the real resolve with a noop to guarantee that any action in base class Router\n // won't resolve the configurePromise prematurely\n const resolveConfiguredPromise = this._resolveConfiguredPromise;\n this._resolveConfiguredPromise = () => {/**/};\n return this\n .configure(config =>\n Promise\n .resolve(viewModel.configureRouter(config, this))\n // an issue with configure interface. Should be fixed there\n // todo: fix this via configure interface in router\n .then(() => config) as any\n )\n .then(() => {\n this.activate();\n resolveConfiguredPromise();\n });\n }\n } else {\n this.activate();\n }\n }\n // when a viewport is added dynamically to a root view that is already activated\n // just process the navigation instruction\n else {\n this._dequeueInstruction();\n }\n\n return Promise.resolve();\n }\n\n /**\n * Activates the router. This instructs the router to begin listening for history changes and processing instructions.\n *\n * @params options The set of options to activate the router with.\n */\n activate(options?: NavigationOptions): void {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n // route handler property is responsible for handling url change\n // the interface of aurelia-history isn't clear on this perspective\n this.options = Object.assign({ routeHandler: this.loadUrl.bind(this) }, this.options, options);\n this.history.activate(this.options);\n this._dequeueInstruction();\n }\n\n /**\n * Deactivates the router.\n */\n deactivate(): void {\n this.isActive = false;\n this.history.deactivate();\n }\n\n /**@internal */\n _queueInstruction(instruction: NavigationInstruction): Promise {\n return new Promise((resolve) => {\n instruction.resolve = resolve;\n this._queue.unshift(instruction);\n this._dequeueInstruction();\n });\n }\n\n /**@internal */\n _dequeueInstruction(instructionCount: number = 0): Promise {\n return Promise.resolve().then(() => {\n if (this.isNavigating && !instructionCount) {\n // ts complains about inconsistent returns without void 0\n return void 0;\n }\n\n let instruction = this._queue.shift();\n this._queue.length = 0;\n\n if (!instruction) {\n // ts complains about inconsistent returns without void 0\n return void 0;\n }\n\n this.isNavigating = true;\n\n let navtracker: number = this.history.getState('NavigationTracker');\n let currentNavTracker = this.currentNavigationTracker;\n\n if (!navtracker && !currentNavTracker) {\n this.isNavigatingFirst = true;\n this.isNavigatingNew = true;\n } else if (!navtracker) {\n this.isNavigatingNew = true;\n } else if (!currentNavTracker) {\n this.isNavigatingRefresh = true;\n } else if (currentNavTracker < navtracker) {\n this.isNavigatingForward = true;\n } else if (currentNavTracker > navtracker) {\n this.isNavigatingBack = true;\n } if (!navtracker) {\n navtracker = Date.now();\n this.history.setState('NavigationTracker', navtracker);\n }\n this.currentNavigationTracker = navtracker;\n\n instruction.previousInstruction = this.currentInstruction;\n\n let maxInstructionCount = this.maxInstructionCount;\n\n if (!instructionCount) {\n this.events.publish(RouterEvent.Processing, { instruction });\n } else if (instructionCount === maxInstructionCount - 1) {\n logger.error(`${instructionCount + 1} navigation instructions have been attempted without success. Restoring last known good location.`);\n restorePreviousLocation(this);\n return this._dequeueInstruction(instructionCount + 1);\n } else if (instructionCount > maxInstructionCount) {\n throw new Error('Maximum navigation attempts exceeded. Giving up.');\n }\n\n let pipeline = this.pipelineProvider.createPipeline(!this.couldDeactivate);\n\n return pipeline\n .run(instruction)\n .then(result => processResult(instruction, result, instructionCount, this))\n .catch(error => {\n return { output: error instanceof Error ? error : new Error(error) } as PipelineResult;\n })\n .then(result => resolveInstruction(instruction, result, !!instructionCount, this));\n });\n }\n\n /**@internal */\n _findViewModel(viewPort: ViewPort): ConfiguresRouter | undefined {\n if (this.container.viewModel) {\n return this.container.viewModel;\n }\n\n if (viewPort.container) {\n let container = viewPort.container;\n\n while (container) {\n if (container.viewModel) {\n this.container.viewModel = container.viewModel;\n return container.viewModel;\n }\n\n container = container.parent;\n }\n }\n\n return undefined;\n }\n}\n\nconst processResult = (\n instruction: NavigationInstruction,\n result: PipelineResult,\n instructionCount: number,\n router: AppRouter\n): Promise => {\n if (!(result && 'completed' in result && 'output' in result)) {\n result = result || {} as PipelineResult;\n result.output = new Error(`Expected router pipeline to return a navigation result, but got [${JSON.stringify(result)}] instead.`);\n }\n\n let finalResult: PipelineResult = null;\n let navigationCommandResult = null;\n if (isNavigationCommand(result.output)) {\n navigationCommandResult = result.output.navigate(router);\n } else {\n finalResult = result;\n\n if (!result.completed) {\n if (result.output instanceof Error) {\n logger.error(result.output.toString());\n }\n\n restorePreviousLocation(router);\n }\n }\n\n return Promise.resolve(navigationCommandResult)\n .then(_ => router._dequeueInstruction(instructionCount + 1))\n .then(innerResult => finalResult || innerResult || result);\n};\n\nconst resolveInstruction = (\n instruction: NavigationInstruction,\n result: PipelineResult,\n isInnerInstruction: boolean,\n router: AppRouter\n): PipelineResult => {\n instruction.resolve(result);\n\n let eventAggregator = router.events;\n let eventArgs = { instruction, result };\n if (!isInnerInstruction) {\n router.isNavigating = false;\n router.isExplicitNavigation = false;\n router.isExplicitNavigationBack = false;\n router.isNavigatingFirst = false;\n router.isNavigatingNew = false;\n router.isNavigatingRefresh = false;\n router.isNavigatingForward = false;\n router.isNavigatingBack = false;\n router.couldDeactivate = false;\n\n let eventName: string;\n\n if (result.output instanceof Error) {\n eventName = RouterEvent.Error;\n } else if (!result.completed) {\n eventName = RouterEvent.Canceled;\n } else {\n let queryString = instruction.queryString ? ('?' + instruction.queryString) : '';\n router.history.previousLocation = instruction.fragment + queryString;\n eventName = RouterEvent.Success;\n }\n\n eventAggregator.publish(eventName, eventArgs);\n eventAggregator.publish(RouterEvent.Complete, eventArgs);\n } else {\n eventAggregator.publish(RouterEvent.ChildComplete, eventArgs);\n }\n\n return result;\n};\n\nconst restorePreviousLocation = (router: AppRouter): void => {\n let previousLocation = router.history.previousLocation;\n if (previousLocation) {\n router.navigate(previousLocation, { trigger: false, replace: true });\n } else if (router.fallbackRoute) {\n router.navigate(router.fallbackRoute, { trigger: true, replace: true });\n } else {\n logger.error('Router navigation failed, and no previous location or fallbackRoute could be restored.');\n }\n};\n","/**\n* The status of a Pipeline.\n*/\nexport const enum PipelineStatus {\n Completed = 'completed',\n Canceled = 'canceled',\n Rejected = 'rejected',\n Running = 'running'\n}\n","/**\n * A list of known router events used by the Aurelia router\n * to signal the pipeline has come to a certain state\n */\n// const enum is preserved in tsconfig\nexport const enum RouterEvent {\n Processing = 'router:navigation:processing',\n Error = 'router:navigation:error',\n Canceled = 'router:navigation:canceled',\n Complete = 'router:navigation:complete',\n Success = 'router:navigation:success',\n ChildComplete = 'router:navigation:child:complete'\n}\n","/**\n * Available pipeline slot names to insert interceptor into router pipeline\n */\n// const enum is preserved in tsconfig\nexport const enum PipelineSlotName {\n /**\n * Authorization slot. Invoked early in the pipeline,\n * before `canActivate` hook of incoming route\n */\n Authorize = 'authorize',\n /**\n * Pre-activation slot. Invoked early in the pipeline,\n * Invoked timing:\n * - after Authorization slot\n * - after canActivate hook on new view model\n * - before deactivate hook on old view model\n * - before activate hook on new view model\n */\n PreActivate = 'preActivate',\n /**\n * Pre-render slot. Invoked later in the pipeline\n * Invokcation timing:\n * - after activate hook on new view model\n * - before commit step on new navigation instruction\n */\n PreRender = 'preRender',\n /**\n * Post-render slot. Invoked last in the pipeline\n */\n PostRender = 'postRender'\n}\n",null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n",null,null,null,null,null,null,null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Container } from 'aurelia-dependency-injection';\r\nimport { DOM } from 'aurelia-pal';\r\nimport { TaskQueue } from 'aurelia-task-queue';\r\nimport { bindable, CompositionContext, CompositionEngine, customElement, noView, View, ViewResources, ViewSlot } from 'aurelia-templating';\r\n\r\n/**\r\n * Available activation strategies for the view and view-model bound to `` element\r\n *\r\n * @export\r\n * @enum {string}\r\n */\r\nexport enum ActivationStrategy {\r\n /**\r\n * Default activation strategy; the 'activate' lifecycle hook will be invoked when the model changes.\r\n */\r\n InvokeLifecycle = 'invoke-lifecycle',\r\n /**\r\n * The view/view-model will be recreated, when the \"model\" changes.\r\n */\r\n Replace = 'replace'\r\n}\r\n\r\n/**\r\n * Used to compose a new view / view-model template or bind to an existing instance.\r\n */\r\n@noView\r\n@customElement('compose')\r\nexport class Compose {\r\n\r\n /**@internal */\r\n static inject() {\r\n return [DOM.Element, Container, CompositionEngine, ViewSlot, ViewResources, TaskQueue];\r\n }\r\n\r\n /**\r\n * Model to bind the custom element to.\r\n *\r\n * @property model\r\n * @type {CustomElement}\r\n */\r\n @bindable model: any;\r\n /**\r\n * View to bind the custom element to.\r\n *\r\n * @property view\r\n * @type {HtmlElement}\r\n */\r\n @bindable view: any;\r\n /**\r\n * View-model to bind the custom element's template to.\r\n *\r\n * @property viewModel\r\n * @type {Class}\r\n */\r\n @bindable viewModel: any;\r\n\r\n /**\r\n * Strategy to activate the view-model. Default is \"invoke-lifecycle\".\r\n * Bind \"replace\" to recreate the view/view-model when the model changes.\r\n *\r\n * @property activationStrategy\r\n * @type {ActivationStrategy}\r\n */\r\n @bindable activationStrategy: ActivationStrategy = ActivationStrategy.InvokeLifecycle;\r\n\r\n /**\r\n * SwapOrder to control the swapping order of the custom element's view.\r\n *\r\n * @property view\r\n * @type {String}\r\n */\r\n @bindable swapOrder: any;\r\n\r\n /**\r\n *@internal\r\n */\r\n element: any;\r\n /**\r\n *@internal\r\n */\r\n container: any;\r\n /**\r\n *@internal\r\n */\r\n compositionEngine: any;\r\n /**\r\n *@internal\r\n */\r\n viewSlot: any;\r\n /**\r\n *@internal\r\n */\r\n viewResources: any;\r\n /**\r\n *@internal\r\n */\r\n taskQueue: any;\r\n /**\r\n *@internal\r\n */\r\n currentController: any;\r\n /**\r\n *@internal\r\n */\r\n currentViewModel: any;\r\n /**\r\n *@internal\r\n */\r\n changes: any;\r\n /**\r\n *@internal\r\n */\r\n owningView: View;\r\n /**\r\n *@internal\r\n */\r\n bindingContext: any;\r\n /**\r\n *@internal\r\n */\r\n overrideContext: any;\r\n /**\r\n *@internal\r\n */\r\n pendingTask: any;\r\n /**\r\n *@internal\r\n */\r\n updateRequested: any;\r\n\r\n /**\r\n * Creates an instance of Compose.\r\n * @param element The Compose element.\r\n * @param container The dependency injection container instance.\r\n * @param compositionEngine CompositionEngine instance to compose the element.\r\n * @param viewSlot The slot the view is injected in to.\r\n * @param viewResources Collection of resources used to compile the the view.\r\n * @param taskQueue The TaskQueue instance.\r\n */\r\n constructor(element, container, compositionEngine, viewSlot, viewResources, taskQueue) {\r\n this.element = element;\r\n this.container = container;\r\n this.compositionEngine = compositionEngine;\r\n this.viewSlot = viewSlot;\r\n this.viewResources = viewResources;\r\n this.taskQueue = taskQueue;\r\n this.currentController = null;\r\n this.currentViewModel = null;\r\n this.changes = Object.create(null);\r\n }\r\n\r\n /**\r\n * Invoked when the component has been created.\r\n *\r\n * @param owningView The view that this component was created inside of.\r\n */\r\n created(owningView: View) {\r\n this.owningView = owningView;\r\n }\r\n\r\n /**\r\n * Used to set the bindingContext.\r\n *\r\n * @param bindingContext The context in which the view model is executed in.\r\n * @param overrideContext The context in which the view model is executed in.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n let changes = this.changes;\r\n changes.view = this.view;\r\n changes.viewModel = this.viewModel;\r\n changes.model = this.model;\r\n if (!this.pendingTask) {\r\n processChanges(this);\r\n }\r\n }\r\n\r\n /**\r\n * Unbinds the Compose.\r\n */\r\n unbind() {\r\n this.changes = Object.create(null);\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n let returnToCache = true;\r\n let skipAnimation = true;\r\n this.viewSlot.removeAll(returnToCache, skipAnimation);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound model changes.\r\n * @param newValue The new value.\r\n * @param oldValue The old value.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n modelChanged(newValue, oldValue) {\r\n this.changes.model = newValue;\r\n requestUpdate(this);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound view changes.\r\n * @param newValue The new value.\r\n * @param oldValue The old value.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n viewChanged(newValue, oldValue) {\r\n this.changes.view = newValue;\r\n requestUpdate(this);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound view model changes.\r\n * @param newValue The new value.\r\n * @param oldValue The old value.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n viewModelChanged(newValue, oldValue) {\r\n this.changes.viewModel = newValue;\r\n requestUpdate(this);\r\n }\r\n}\r\n\r\nfunction isEmpty(obj) {\r\n for (const _ in obj) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction tryActivateViewModel(vm, model) {\r\n if (vm && typeof vm.activate === 'function') {\r\n return Promise.resolve(vm.activate(model));\r\n }\r\n}\r\n\r\nfunction createInstruction(composer: Compose, instruction: CompositionContext): CompositionContext {\r\n return Object.assign(instruction, {\r\n bindingContext: composer.bindingContext,\r\n overrideContext: composer.overrideContext,\r\n owningView: composer.owningView,\r\n container: composer.container,\r\n viewSlot: composer.viewSlot,\r\n viewResources: composer.viewResources,\r\n currentController: composer.currentController,\r\n host: composer.element,\r\n swapOrder: composer.swapOrder\r\n });\r\n}\r\n\r\nfunction processChanges(composer: Compose) {\r\n const changes = composer.changes;\r\n composer.changes = Object.create(null);\r\n\r\n if (needsReInitialization(composer, changes)) {\r\n // init context\r\n let instruction = {\r\n view: composer.view,\r\n viewModel: composer.currentViewModel || composer.viewModel,\r\n model: composer.model\r\n } as CompositionContext;\r\n\r\n // apply changes\r\n instruction = Object.assign(instruction, changes);\r\n\r\n // create context\r\n instruction = createInstruction(composer, instruction);\r\n\r\n composer.pendingTask = composer.compositionEngine.compose(instruction).then(controller => {\r\n composer.currentController = controller;\r\n composer.currentViewModel = controller ? controller.viewModel : null;\r\n });\r\n } else {\r\n // just try to activate the current view model\r\n composer.pendingTask = tryActivateViewModel(composer.currentViewModel, changes.model);\r\n if (!composer.pendingTask) { return; }\r\n }\r\n\r\n composer.pendingTask = composer.pendingTask\r\n .then(() => {\r\n completeCompositionTask(composer);\r\n }, reason => {\r\n completeCompositionTask(composer);\r\n throw reason;\r\n });\r\n}\r\n\r\nfunction completeCompositionTask(composer) {\r\n composer.pendingTask = null;\r\n if (!isEmpty(composer.changes)) {\r\n processChanges(composer);\r\n }\r\n}\r\n\r\nfunction requestUpdate(composer: Compose) {\r\n if (composer.pendingTask || composer.updateRequested) { return; }\r\n composer.updateRequested = true;\r\n composer.taskQueue.queueMicroTask(() => {\r\n composer.updateRequested = false;\r\n processChanges(composer);\r\n });\r\n}\r\n\r\nfunction needsReInitialization(composer: Compose, changes: any) {\r\n let activationStrategy = composer.activationStrategy;\r\n const vm = composer.currentViewModel;\r\n if (vm && typeof vm.determineActivationStrategy === 'function') {\r\n activationStrategy = vm.determineActivationStrategy();\r\n }\r\n\r\n return 'view' in changes\r\n || 'viewModel' in changes\r\n || activationStrategy === ActivationStrategy.Replace;\r\n}\r\n","import { ViewFactory, ViewSlot } from 'aurelia-templating';\r\n\r\n/**\r\n * For internal use only. May change without warning.\r\n */\r\nexport class IfCore {\r\n /**\r\n * @internal\r\n */\r\n viewFactory: ViewFactory;\r\n /**\r\n * @internal\r\n */\r\n viewSlot: ViewSlot;\r\n /**\r\n * @internal\r\n */\r\n view: any;\r\n /**\r\n * @internal\r\n */\r\n bindingContext: any;\r\n /**\r\n * @internal\r\n */\r\n overrideContext: any;\r\n /**\r\n * @internal\r\n */\r\n showing: boolean;\r\n /**\r\n * @internal\r\n */\r\n cache: boolean | string;\r\n\r\n constructor(viewFactory: ViewFactory, viewSlot: ViewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.view = null;\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n // If the child view is animated, `value` might not reflect the internal\r\n // state anymore, so we use `showing` for that.\r\n // Eventually, `showing` and `value` should be consistent.\r\n this.showing = false;\r\n this.cache = true;\r\n }\r\n\r\n bind(bindingContext, overrideContext) {\r\n // Store parent bindingContext, so we can pass it down\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext;\r\n }\r\n\r\n unbind() {\r\n if (this.view === null) {\r\n return;\r\n }\r\n\r\n this.view.unbind();\r\n\r\n // It seems to me that this code is subject to race conditions when animating.\r\n // For example a view could be returned to the cache and reused while it's still\r\n // attached to the DOM and animated.\r\n if (!this.viewFactory.isCaching) {\r\n return;\r\n }\r\n\r\n if (this.showing) {\r\n this.showing = false;\r\n this.viewSlot.remove(this.view, /*returnToCache:*/true, /*skipAnimation:*/true);\r\n } else {\r\n this.view.returnToCache();\r\n }\r\n\r\n this.view = null;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _show() {\r\n if (this.showing) {\r\n // Ensures the view is bound.\r\n // It might not be the case when the if was unbound but not detached, then rebound.\r\n // Typical case where this happens is nested ifs\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n return;\r\n }\r\n\r\n if (this.view === null) {\r\n this.view = (this.viewFactory as any).create();\r\n }\r\n\r\n if (!this.view.isBound) {\r\n this.view.bind(this.bindingContext, this.overrideContext);\r\n }\r\n\r\n this.showing = true;\r\n return this.viewSlot.add(this.view); // Promise or void\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _hide() {\r\n if (!this.showing) {\r\n return;\r\n }\r\n\r\n this.showing = false;\r\n let removed = this.viewSlot.remove(this.view); // Promise or View\r\n\r\n if (removed instanceof Promise) {\r\n return removed.then(() => {\r\n this._unbindView();\r\n });\r\n }\r\n\r\n this._unbindView();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _unbindView() {\r\n const cache = this.cache === 'false' ? false : !!this.cache;\r\n this.view.unbind();\r\n if (!cache) {\r\n this.view = null;\r\n }\r\n }\r\n}\r\n","import {BoundViewFactory, ViewSlot, bindable, customAttribute, templateController} from 'aurelia-templating';\r\nimport {inject} from 'aurelia-dependency-injection';\r\nimport {IfCore} from './if-core';\r\n\r\n/**\r\n * Binding to conditionally include or not include template logic depending on returned result\r\n * - value should be Boolean or will be treated as such (truthy / falsey)\r\n */\r\n@customAttribute('if')\r\n@templateController\r\n@inject(BoundViewFactory, ViewSlot)\r\nexport class If extends IfCore {\r\n @bindable({ primaryProperty: true }) condition: any;\r\n @bindable swapOrder: 'before'|'with'|'after';\r\n @bindable cache: boolean|string = true;\r\n\r\n /**@internal*/\r\n animating: any;\r\n /**@internal*/\r\n elseVm: any;\r\n\r\n /**\r\n * Binds the if to the binding context and override context\r\n * @param bindingContext The binding context\r\n * @param overrideContext An override context for binding.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n super.bind(bindingContext, overrideContext);\r\n if (this.condition) {\r\n this._show();\r\n } else {\r\n this._hide();\r\n }\r\n }\r\n\r\n /**\r\n * Invoked everytime value property changes.\r\n * @param newValue The new value\r\n */\r\n conditionChanged(newValue) {\r\n this._update(newValue);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _update(show) {\r\n if (this.animating) {\r\n return;\r\n }\r\n\r\n let promise;\r\n if (this.elseVm) {\r\n promise = show ? this._swap(this.elseVm, this) : this._swap(this, this.elseVm);\r\n } else {\r\n promise = show ? this._show() : this._hide();\r\n }\r\n\r\n if (promise) {\r\n this.animating = true;\r\n promise.then(() => {\r\n this.animating = false;\r\n if (this.condition !== this.showing) {\r\n this._update(this.condition);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _swap(remove, add) {\r\n switch (this.swapOrder) {\r\n case 'before':\r\n return Promise.resolve(add._show()).then(() => remove._hide());\r\n case 'with':\r\n return Promise.all([ remove._hide(), add._show() ]);\r\n default: // \"after\", default and unknown values\r\n let promise = remove._hide();\r\n return promise ? promise.then(() => add._show()) : add._show();\r\n }\r\n }\r\n}\r\n","import { inject } from 'aurelia-dependency-injection';\r\nimport { BoundViewFactory, customAttribute, templateController, ViewSlot } from 'aurelia-templating';\r\nimport { IfCore } from './if-core';\r\n\r\n@customAttribute('else')\r\n@templateController\r\n@inject(BoundViewFactory, ViewSlot)\r\nexport class Else extends IfCore {\r\n\r\n /**\r\n * @internal\r\n */\r\n ifVm: any;\r\n\r\n constructor(viewFactory, viewSlot) {\r\n super(viewFactory, viewSlot);\r\n this._registerInIf();\r\n }\r\n\r\n bind(bindingContext, overrideContext) {\r\n super.bind(bindingContext, overrideContext);\r\n // Render on initial\r\n if (this.ifVm.condition) {\r\n this._hide();\r\n } else {\r\n this._show();\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _registerInIf() {\r\n // We support the pattern
.\r\n // Obvisouly between the two, we must accepts text (spaces) and comments.\r\n // The `if` node is expected to be a comment anchor, because of `@templateController`.\r\n // To simplify the code we basically walk up to the first Aurelia predecessor,\r\n // so having static tags in between (no binding) would work but is not intended to be supported.\r\n let previous = (this.viewSlot as ViewSlot & { anchor: any}).anchor.previousSibling;\r\n while (previous && !previous.au) {\r\n previous = previous.previousSibling;\r\n }\r\n if (!previous || !previous.au.if) {\r\n throw new Error(\"Can't find matching If for Else custom attribute.\");\r\n }\r\n this.ifVm = previous.au.if.viewModel;\r\n this.ifVm.elseVm = this;\r\n }\r\n}\r\n","import {inject} from 'aurelia-dependency-injection';\r\nimport {BoundViewFactory, ViewSlot, customAttribute, templateController, ViewFactory} from 'aurelia-templating';\r\nimport {createOverrideContext} from 'aurelia-binding';\r\n\r\n/**\r\n * Creates a binding context for decandant elements to bind to.\r\n */\r\n@customAttribute('with')\r\n@templateController\r\n@inject(BoundViewFactory, ViewSlot)\r\nexport class With {\r\n\r\n /**@internal*/\r\n viewFactory: any;\r\n /**@internal*/\r\n viewSlot: any;\r\n /**@internal*/\r\n parentOverrideContext: any;\r\n /**@internal*/\r\n view: any;\r\n\r\n value: any;\r\n\r\n /**\r\n * Creates an instance of With.\r\n * @param viewFactory The factory generating the view.\r\n * @param viewSlot The slot the view is injected in to.\r\n */\r\n constructor(viewFactory: ViewFactory, viewSlot: ViewSlot) {\r\n this.viewFactory = viewFactory;\r\n this.viewSlot = viewSlot;\r\n this.parentOverrideContext = null;\r\n this.view = null;\r\n }\r\n\r\n /**\r\n * Binds the With with provided binding context and override context.\r\n * @param bindingContext The binding context.\r\n * @param overrideContext An override context for binding.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n this.parentOverrideContext = overrideContext;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n /**\r\n * Invoked everytime the bound value changes.\r\n * @param newValue The new value.\r\n */\r\n valueChanged(newValue) {\r\n let overrideContext = createOverrideContext(newValue, this.parentOverrideContext);\r\n let view = this.view;\r\n if (!view) {\r\n view = this.view = this.viewFactory.create();\r\n view.bind(newValue, overrideContext);\r\n this.viewSlot.add(view);\r\n } else {\r\n view.bind(newValue, overrideContext);\r\n }\r\n }\r\n\r\n /**\r\n * Unbinds With\r\n */\r\n unbind() {\r\n let view = this.view;\r\n this.parentOverrideContext = null;\r\n\r\n if (view) {\r\n view.unbind();\r\n }\r\n }\r\n}\r\n","import {\r\n createOverrideContext,\r\n BindingBehavior,\r\n ValueConverter,\r\n sourceContext,\r\n bindingMode,\r\n OverrideContext\r\n} from 'aurelia-binding';\r\n\r\nconst oneTime = bindingMode.oneTime;\r\n\r\n/**\r\n * Update the override context.\r\n * @param startIndex index in collection where to start updating.\r\n */\r\nexport function updateOverrideContexts(views, startIndex) {\r\n let length = views.length;\r\n\r\n if (startIndex > 0) {\r\n startIndex = startIndex - 1;\r\n }\r\n\r\n for (; startIndex < length; ++startIndex) {\r\n updateOverrideContext(views[startIndex].overrideContext, startIndex, length);\r\n }\r\n}\r\n\r\n/**\r\n * Creates a complete override context.\r\n * @param data The item's value.\r\n * @param index The item's index.\r\n * @param length The collections total length.\r\n * @param key The key in a key/value pair.\r\n */\r\nexport function createFullOverrideContext(repeat, data, index, length, key?: string): OverrideContext {\r\n let bindingContext = {};\r\n let overrideContext = createOverrideContext(bindingContext, repeat.scope.overrideContext);\r\n // is key/value pair (Map)\r\n if (typeof key !== 'undefined') {\r\n bindingContext[repeat.key] = key;\r\n bindingContext[repeat.value] = data;\r\n } else {\r\n bindingContext[repeat.local] = data;\r\n }\r\n updateOverrideContext(overrideContext, index, length);\r\n return overrideContext;\r\n}\r\n\r\n/**\r\n * Updates the override context.\r\n * @param context The context to be updated.\r\n * @param index The context's index.\r\n * @param length The collection's length.\r\n */\r\nexport function updateOverrideContext(overrideContext, index, length) {\r\n let first = (index === 0);\r\n let last = (index === length - 1);\r\n let even = index % 2 === 0;\r\n\r\n overrideContext.$index = index;\r\n overrideContext.$first = first;\r\n overrideContext.$last = last;\r\n overrideContext.$middle = !(first || last);\r\n overrideContext.$odd = !even;\r\n overrideContext.$even = even;\r\n}\r\n\r\n/**\r\n * Gets a repeat instruction's source expression.\r\n */\r\nexport function getItemsSourceExpression(instruction, attrName) {\r\n return instruction.behaviorInstructions\r\n .filter(bi => bi.originalAttrName === attrName)[0]\r\n .attributes\r\n .items\r\n .sourceExpression;\r\n}\r\n\r\n/**\r\n * Unwraps an expression to expose the inner, pre-converted / behavior-free expression.\r\n */\r\nexport function unwrapExpression(expression) {\r\n let unwrapped = false;\r\n while (expression instanceof BindingBehavior) {\r\n expression = expression.expression;\r\n }\r\n while (expression instanceof ValueConverter) {\r\n expression = expression.expression;\r\n unwrapped = true;\r\n }\r\n return unwrapped ? expression : null;\r\n}\r\n\r\n/**\r\n * Returns whether an expression has the OneTimeBindingBehavior applied.\r\n */\r\nexport function isOneTime(expression) {\r\n while (expression instanceof BindingBehavior) {\r\n if (expression.name === 'oneTime') {\r\n return true;\r\n }\r\n expression = expression.expression;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Forces a binding instance to reevaluate.\r\n */\r\nexport function updateOneTimeBinding(binding) {\r\n if (binding.call && binding.mode === oneTime) {\r\n binding.call(sourceContext);\r\n } else if (binding.updateOneTimeBindings) {\r\n binding.updateOneTimeBindings();\r\n }\r\n}\r\n\r\n/**\r\n * Returns the index of the element in an array, optionally using a matcher function.\r\n */\r\nexport function indexOf(array, item, matcher, startIndex?: number) {\r\n if (!matcher) {\r\n // native indexOf is more performant than a for loop\r\n return array.indexOf(item);\r\n }\r\n const length = array.length;\r\n for (let index = startIndex || 0; index < length; index++) {\r\n if (matcher(array[index], item)) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n}\r\n","import {createFullOverrideContext, updateOverrideContexts, updateOverrideContext, indexOf} from './repeat-utilities';\r\nimport {mergeSplice} from 'aurelia-binding';\r\nimport { Repeat } from './repeat';\r\n\r\n/**\r\n * A strategy for repeating a template over an array.\r\n */\r\nexport class ArrayRepeatStrategy {\r\n /**\r\n * Gets an observer for the specified collection.\r\n * @param observerLocator The observer locator instance.\r\n * @param items The items to be observed.\r\n */\r\n getCollectionObserver(observerLocator, items) {\r\n return observerLocator.getArrayObserver(items);\r\n }\r\n\r\n /**\r\n * Handle the repeat's collection instance changing.\r\n * @param repeat The repeater instance.\r\n * @param items The new array instance.\r\n */\r\n instanceChanged(repeat, items) {\r\n const $repeat = repeat as Repeat;\r\n const itemsLength = items.length;\r\n\r\n // if the new instance does not contain any items,\r\n // just remove all views and don't do any further processing\r\n if (!items || itemsLength === 0) {\r\n $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n return;\r\n }\r\n\r\n const children = $repeat.views();\r\n const viewsLength = children.length;\r\n\r\n // likewise, if we previously didn't have any views,\r\n // simply make them and return\r\n if (viewsLength === 0) {\r\n this._standardProcessInstanceChanged($repeat, items);\r\n return;\r\n }\r\n\r\n if ($repeat.viewsRequireLifecycle) {\r\n const childrenSnapshot = children.slice(0);\r\n const itemNameInBindingContext = $repeat.local;\r\n const matcher = $repeat.matcher();\r\n\r\n // the cache of the current state (it will be transformed along with the views to keep track of indicies)\r\n let itemsPreviouslyInViews = [];\r\n const viewsToRemove = [];\r\n\r\n for (let index = 0; index < viewsLength; index++) {\r\n const view = childrenSnapshot[index];\r\n const oldItem = view.bindingContext[itemNameInBindingContext];\r\n\r\n if (indexOf(items, oldItem, matcher) === -1) {\r\n // remove the item if no longer in the new instance of items\r\n viewsToRemove.push(view);\r\n } else {\r\n // or add the item to the cache list\r\n itemsPreviouslyInViews.push(oldItem);\r\n }\r\n }\r\n\r\n let updateViews;\r\n let removePromise;\r\n\r\n if (itemsPreviouslyInViews.length > 0) {\r\n removePromise = $repeat.removeViews(viewsToRemove, true, !$repeat.viewsRequireLifecycle);\r\n updateViews = () => {\r\n // update views (create new and move existing)\r\n for (let index = 0; index < itemsLength; index++) {\r\n const item = items[index];\r\n const indexOfView = indexOf(itemsPreviouslyInViews, item, matcher, index);\r\n let view;\r\n\r\n if (indexOfView === -1) { // create views for new items\r\n const overrideContext = createFullOverrideContext($repeat, items[index], index, itemsLength);\r\n $repeat.insertView(index, overrideContext.bindingContext, overrideContext);\r\n // reflect the change in our cache list so indicies are valid\r\n itemsPreviouslyInViews.splice(index, 0, undefined);\r\n } else if (indexOfView === index) { // leave unchanged items\r\n view = children[indexOfView];\r\n itemsPreviouslyInViews[indexOfView] = undefined;\r\n } else { // move the element to the right place\r\n view = children[indexOfView];\r\n $repeat.moveView(indexOfView, index);\r\n itemsPreviouslyInViews.splice(indexOfView, 1);\r\n itemsPreviouslyInViews.splice(index, 0, undefined);\r\n }\r\n\r\n if (view) {\r\n updateOverrideContext(view.overrideContext, index, itemsLength);\r\n }\r\n }\r\n\r\n // remove extraneous elements in case of duplicates,\r\n // also update binding contexts if objects changed using the matcher function\r\n this._inPlaceProcessItems($repeat, items);\r\n };\r\n } else {\r\n // if all of the items are different, remove all and add all from scratch\r\n removePromise = $repeat.removeAllViews(true, !$repeat.viewsRequireLifecycle);\r\n updateViews = () => this._standardProcessInstanceChanged($repeat, items);\r\n }\r\n\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(updateViews);\r\n } else {\r\n updateViews();\r\n }\r\n } else {\r\n // no lifecycle needed, use the fast in-place processing\r\n this._inPlaceProcessItems($repeat, items);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessInstanceChanged(repeat, items) {\r\n for (let i = 0, ii = items.length; i < ii; i++) {\r\n let overrideContext = createFullOverrideContext(repeat, items[i], i, ii);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _inPlaceProcessItems(repeat, items) {\r\n let itemsLength = items.length;\r\n let viewsLength = repeat.viewCount();\r\n // remove unneeded views.\r\n while (viewsLength > itemsLength) {\r\n viewsLength--;\r\n repeat.removeView(viewsLength, true, !repeat.viewsRequireLifecycle);\r\n }\r\n // avoid repeated evaluating the property-getter for the \"local\" property.\r\n let local = repeat.local;\r\n // re-evaluate bindings on existing views.\r\n for (let i = 0; i < viewsLength; i++) {\r\n let view = repeat.view(i);\r\n let last = i === itemsLength - 1;\r\n let middle = i !== 0 && !last;\r\n let bindingContext = view.bindingContext;\r\n let overrideContext = view.overrideContext;\r\n // any changes to the binding context?\r\n if (bindingContext[local] === items[i]\r\n && overrideContext.$middle === middle\r\n && overrideContext.$last === last) {\r\n // no changes. continue...\r\n continue;\r\n }\r\n // update the binding context and refresh the bindings.\r\n bindingContext[local] = items[i];\r\n overrideContext.$middle = middle;\r\n overrideContext.$last = last;\r\n repeat.updateBindings(view);\r\n }\r\n // add new views\r\n for (let i = viewsLength; i < itemsLength; i++) {\r\n let overrideContext = createFullOverrideContext(repeat, items[i], i, itemsLength);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n\r\n /**\r\n * Handle the repeat's collection instance mutating.\r\n * @param repeat The repeat instance.\r\n * @param array The modified array.\r\n * @param splices Records of array changes.\r\n */\r\n instanceMutated(repeat, array, splices) {\r\n if (repeat.__queuedSplices) {\r\n for (let i = 0, ii = splices.length; i < ii; ++i) {\r\n let {index, removed, addedCount} = splices[i];\r\n mergeSplice(repeat.__queuedSplices, index, removed, addedCount);\r\n }\r\n // Array.prototype.slice is used here to clone the array\r\n repeat.__array = array.slice(0);\r\n return;\r\n }\r\n\r\n // Array.prototype.slice is used here to clone the array\r\n let maybePromise = this._runSplices(repeat, array.slice(0), splices);\r\n if (maybePromise instanceof Promise) {\r\n let queuedSplices = repeat.__queuedSplices = [];\r\n\r\n let runQueuedSplices = () => {\r\n if (!queuedSplices.length) {\r\n repeat.__queuedSplices = undefined;\r\n repeat.__array = undefined;\r\n return;\r\n }\r\n\r\n let nextPromise = this._runSplices(repeat, repeat.__array, queuedSplices) || Promise.resolve();\r\n queuedSplices = repeat.__queuedSplices = [];\r\n nextPromise.then(runQueuedSplices);\r\n };\r\n\r\n maybePromise.then(runQueuedSplices);\r\n }\r\n }\r\n\r\n /**\r\n * Run a normalised set of splices against the viewSlot children.\r\n * @param repeat The repeat instance.\r\n * @param array The modified array.\r\n * @param splices Records of array changes.\r\n * @return {Promise|undefined} A promise if animations have to be run.\r\n * @pre The splices must be normalised so as:\r\n * * Any item added may not be later removed.\r\n * * Removals are ordered by asending index\r\n * @internal\r\n */\r\n _runSplices(repeat, array, splices) {\r\n let removeDelta = 0;\r\n let rmPromises = [];\r\n\r\n for (let i = 0, ii = splices.length; i < ii; ++i) {\r\n let splice = splices[i];\r\n let removed = splice.removed;\r\n\r\n for (let j = 0, jj = removed.length; j < jj; ++j) {\r\n // the rmPromises.length correction works due to the ordered removal precondition\r\n let viewOrPromise = repeat.removeView(splice.index + removeDelta + rmPromises.length, true);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n }\r\n removeDelta -= splice.addedCount;\r\n }\r\n\r\n if (rmPromises.length > 0) {\r\n return Promise.all(rmPromises).then(() => {\r\n let spliceIndexLow = this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n });\r\n }\r\n\r\n let spliceIndexLow = this._handleAddedSplices(repeat, array, splices);\r\n updateOverrideContexts(repeat.views(), spliceIndexLow);\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _handleAddedSplices(repeat, array, splices) {\r\n let spliceIndex: number;\r\n let spliceIndexLow: number;\r\n let arrayLength = array.length;\r\n for (let i = 0, ii = splices.length; i < ii; ++i) {\r\n let splice = splices[i];\r\n let addIndex = spliceIndex = splice.index;\r\n let end = splice.index + splice.addedCount;\r\n\r\n if (typeof spliceIndexLow === 'undefined' || spliceIndexLow === null || spliceIndexLow > splice.index) {\r\n spliceIndexLow = spliceIndex;\r\n }\r\n\r\n for (; addIndex < end; ++addIndex) {\r\n let overrideContext = createFullOverrideContext(repeat, array[addIndex], addIndex, arrayLength);\r\n repeat.insertView(addIndex, overrideContext.bindingContext, overrideContext);\r\n }\r\n }\r\n\r\n return spliceIndexLow;\r\n }\r\n}\r\n","import {createFullOverrideContext, updateOverrideContexts} from './repeat-utilities';\r\n\r\n/**\r\n * A strategy for repeating a template over a Map.\r\n */\r\nexport class MapRepeatStrategy {\r\n /**\r\n * Gets a Map observer.\r\n * @param items The items to be observed.\r\n */\r\n getCollectionObserver(observerLocator, items) {\r\n return observerLocator.getMapObserver(items);\r\n }\r\n\r\n /**\r\n * Process the provided Map entries.\r\n * @param items The entries to process.\r\n */\r\n instanceChanged(repeat, items) {\r\n let removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(() => this._standardProcessItems(repeat, items));\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessItems(repeat, items) {\r\n let index = 0;\r\n let overrideContext;\r\n\r\n items.forEach((value, key) => {\r\n overrideContext = createFullOverrideContext(repeat, value, index, items.size, key);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n ++index;\r\n });\r\n }\r\n\r\n /**\r\n * Handle changes in a Map collection.\r\n * @param map The underlying Map collection.\r\n * @param records The change records.\r\n */\r\n instanceMutated(repeat, map, records) {\r\n let key;\r\n let i;\r\n let ii;\r\n let overrideContext;\r\n let removeIndex;\r\n let addIndex;\r\n let record;\r\n let rmPromises = [];\r\n let viewOrPromise;\r\n\r\n for (i = 0, ii = records.length; i < ii; ++i) {\r\n record = records[i];\r\n key = record.key;\r\n switch (record.type) {\r\n case 'update':\r\n removeIndex = this._getViewIndexByKey(repeat, key);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n overrideContext = createFullOverrideContext(repeat, map.get(key), removeIndex, map.size, key);\r\n repeat.insertView(removeIndex, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'add':\r\n addIndex = repeat.viewCount() <= map.size - 1 ? repeat.viewCount() : map.size - 1;\r\n overrideContext = createFullOverrideContext(repeat, map.get(key), addIndex, map.size, key);\r\n repeat.insertView(map.size - 1, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'delete':\r\n if (record.oldValue === undefined) { return; }\r\n removeIndex = this._getViewIndexByKey(repeat, key);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n break;\r\n case 'clear':\r\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n break;\r\n default:\r\n continue;\r\n }\r\n }\r\n\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(() => {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n } else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getViewIndexByKey(repeat, key) {\r\n let i: number;\r\n let ii: number;\r\n let child;\r\n\r\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\r\n child = repeat.view(i);\r\n if (child.bindingContext[repeat.key] === key) {\r\n return i;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/**\r\n * A strategy for repeating a template over null or undefined (does nothing)\r\n */\r\nexport class NullRepeatStrategy {\r\n instanceChanged(repeat, items) {\r\n repeat.removeAllViews(true);\r\n }\r\n\r\n getCollectionObserver(observerLocator, items) {\r\n // empty\r\n }\r\n}\r\n","import {createFullOverrideContext, updateOverrideContexts} from './repeat-utilities';\r\n\r\n/**\r\n * A strategy for repeating a template over a number.\r\n */\r\nexport class NumberRepeatStrategy {\r\n /**\r\n * Return the strategies collection observer. In this case none.\r\n */\r\n getCollectionObserver() {\r\n return null;\r\n }\r\n\r\n /**\r\n * Process the provided Number.\r\n * @param value The Number of how many time to iterate.\r\n */\r\n instanceChanged(repeat, value) {\r\n let removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(() => this._standardProcessItems(repeat, value));\r\n return;\r\n }\r\n this._standardProcessItems(repeat, value);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessItems(repeat, value) {\r\n let childrenLength = repeat.viewCount();\r\n let i;\r\n let ii;\r\n let overrideContext;\r\n let viewsToRemove;\r\n\r\n value = Math.floor(value);\r\n viewsToRemove = childrenLength - value;\r\n\r\n if (viewsToRemove > 0) {\r\n if (viewsToRemove > childrenLength) {\r\n viewsToRemove = childrenLength;\r\n }\r\n\r\n for (i = 0, ii = viewsToRemove; i < ii; ++i) {\r\n repeat.removeView(childrenLength - (i + 1), true, !repeat.viewsRequireLifecycle);\r\n }\r\n\r\n return;\r\n }\r\n\r\n for (i = childrenLength, ii = value; i < ii; ++i) {\r\n overrideContext = createFullOverrideContext(repeat, i, i, ii);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n }\r\n\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n}\r\n","import {createFullOverrideContext, updateOverrideContexts} from './repeat-utilities';\r\n\r\n/**\r\n * A strategy for repeating a template over a Set.\r\n */\r\nexport class SetRepeatStrategy {\r\n /**\r\n * Gets a Set observer.\r\n * @param items The items to be observed.\r\n */\r\n getCollectionObserver(observerLocator, items) {\r\n return observerLocator.getSetObserver(items);\r\n }\r\n\r\n /**\r\n * Process the provided Set entries.\r\n * @param items The entries to process.\r\n */\r\n instanceChanged(repeat, items) {\r\n let removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n if (removePromise instanceof Promise) {\r\n removePromise.then(() => this._standardProcessItems(repeat, items));\r\n return;\r\n }\r\n this._standardProcessItems(repeat, items);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _standardProcessItems(repeat, items) {\r\n let index = 0;\r\n let overrideContext;\r\n\r\n items.forEach(value => {\r\n overrideContext = createFullOverrideContext(repeat, value, index, items.size);\r\n repeat.addView(overrideContext.bindingContext, overrideContext);\r\n ++index;\r\n });\r\n }\r\n\r\n /**\r\n * Handle changes in a Set collection.\r\n * @param repeat The repeat instance.\r\n * @param set The underlying Set collection.\r\n * @param records The change records.\r\n */\r\n instanceMutated(repeat, set, records) {\r\n let value;\r\n let i;\r\n let ii;\r\n let overrideContext;\r\n let removeIndex;\r\n let record;\r\n let rmPromises = [];\r\n let viewOrPromise;\r\n\r\n for (i = 0, ii = records.length; i < ii; ++i) {\r\n record = records[i];\r\n value = record.value;\r\n switch (record.type) {\r\n case 'add':\r\n let size = Math.max(set.size - 1, 0);\r\n overrideContext = createFullOverrideContext(repeat, value, size, set.size);\r\n repeat.insertView(size, overrideContext.bindingContext, overrideContext);\r\n break;\r\n case 'delete':\r\n removeIndex = this._getViewIndexByValue(repeat, value);\r\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\r\n if (viewOrPromise instanceof Promise) {\r\n rmPromises.push(viewOrPromise);\r\n }\r\n break;\r\n case 'clear':\r\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\r\n break;\r\n default:\r\n continue;\r\n }\r\n }\r\n\r\n if (rmPromises.length > 0) {\r\n Promise.all(rmPromises).then(() => {\r\n updateOverrideContexts(repeat.views(), 0);\r\n });\r\n } else {\r\n updateOverrideContexts(repeat.views(), 0);\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getViewIndexByValue(repeat, value) {\r\n let i;\r\n let ii;\r\n let child;\r\n\r\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\r\n child = repeat.view(i);\r\n if (child.bindingContext[repeat.local] === value) {\r\n return i;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n","import { ArrayRepeatStrategy } from './array-repeat-strategy';\r\nimport { MapRepeatStrategy } from './map-repeat-strategy';\r\nimport { NullRepeatStrategy } from './null-repeat-strategy';\r\nimport { NumberRepeatStrategy } from './number-repeat-strategy';\r\nimport { Repeat } from './repeat';\r\nimport { SetRepeatStrategy } from './set-repeat-strategy';\r\n\r\n/**\r\n * A strategy is for repeating a template over an iterable or iterable-like object.\r\n */\r\nexport interface RepeatStrategy {\r\n instanceChanged(repeat: Repeat, items: any): void;\r\n instanceMutated(repeat: Repeat, items: any, changes: any): void;\r\n getCollectionObserver(observerLocator: any, items: any): any;\r\n}\r\n\r\n/**\r\n * Locates the best strategy to best repeating a template over different types of collections.\r\n * Custom strategies can be plugged in as well.\r\n */\r\nexport class RepeatStrategyLocator {\r\n\r\n /**@internal*/\r\n matchers: any[];\r\n /**@internal*/\r\n strategies: any[];\r\n\r\n /**\r\n * Creates a new RepeatStrategyLocator.\r\n */\r\n constructor() {\r\n this.matchers = [];\r\n this.strategies = [];\r\n\r\n this.addStrategy(items => items === null || items === undefined, new NullRepeatStrategy() as RepeatStrategy);\r\n this.addStrategy(items => items instanceof Array, new ArrayRepeatStrategy());\r\n this.addStrategy(items => items instanceof Map, new MapRepeatStrategy());\r\n this.addStrategy(items => items instanceof Set, new SetRepeatStrategy());\r\n this.addStrategy(items => typeof items === 'number', new NumberRepeatStrategy() as Partial as RepeatStrategy);\r\n }\r\n\r\n /**\r\n * Adds a repeat strategy to be located when repeating a template over different collection types.\r\n * @param strategy A repeat strategy that can iterate a specific collection type.\r\n */\r\n addStrategy(matcher: (items: any) => boolean, strategy: RepeatStrategy) {\r\n this.matchers.push(matcher);\r\n this.strategies.push(strategy);\r\n }\r\n\r\n /**\r\n * Gets the best strategy to handle iteration.\r\n */\r\n getStrategy(items: any): RepeatStrategy {\r\n let matchers = this.matchers;\r\n\r\n for (let i = 0, ii = matchers.length; i < ii; ++i) {\r\n if (matchers[i](items)) {\r\n return this.strategies[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","/**\r\n* Behaviors that do not require the composition lifecycle callbacks when replacing\r\n* their binding context.\r\n*/\r\nexport const lifecycleOptionalBehaviors = ['focus', 'if', 'else', 'repeat', 'show', 'hide', 'with'];\r\n\r\nfunction behaviorRequiresLifecycle(instruction) {\r\n let t = instruction.type;\r\n let name = t.elementName !== null ? t.elementName : t.attributeName;\r\n return lifecycleOptionalBehaviors.indexOf(name) === -1 && (t.handlesAttached || t.handlesBind || t.handlesCreated || t.handlesDetached || t.handlesUnbind)\r\n || t.viewFactory && viewsRequireLifecycle(t.viewFactory)\r\n || instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\r\n}\r\n\r\nfunction targetRequiresLifecycle(instruction) {\r\n // check each behavior instruction.\r\n let behaviors = instruction.behaviorInstructions;\r\n if (behaviors) {\r\n let i = behaviors.length;\r\n while (i--) {\r\n if (behaviorRequiresLifecycle(behaviors[i])) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n // check the instruction's view factory (if it has one).\r\n return instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\r\n}\r\n\r\nexport function viewsRequireLifecycle(viewFactory) {\r\n // already analyzed?\r\n if ('_viewsRequireLifecycle' in viewFactory) {\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n\r\n // set prop to avoid infinite recursion.\r\n viewFactory._viewsRequireLifecycle = false;\r\n\r\n // access inner view factory.\r\n if (viewFactory.viewFactory) {\r\n viewFactory._viewsRequireLifecycle = viewsRequireLifecycle(viewFactory.viewFactory);\r\n return viewFactory._viewsRequireLifecycle;\r\n }\r\n\r\n // template uses animation?\r\n if (viewFactory.template.querySelector('.au-animate')) {\r\n viewFactory._viewsRequireLifecycle = true;\r\n return true;\r\n }\r\n\r\n // target instructions require lifecycle?\r\n for (let id in viewFactory.instructions) {\r\n if (targetRequiresLifecycle(viewFactory.instructions[id])) {\r\n viewFactory._viewsRequireLifecycle = true;\r\n return true;\r\n }\r\n }\r\n\r\n // safe to skip lifecycle.\r\n viewFactory._viewsRequireLifecycle = false;\r\n return false;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { View } from 'aurelia-templating';\r\n\r\n/**\r\n* An abstract base class for elements and attributes that repeat\r\n* views.\r\n*/\r\nexport class AbstractRepeater {\r\n constructor(options) {\r\n Object.assign(this, {\r\n local: 'items',\r\n viewsRequireLifecycle: true\r\n }, options);\r\n }\r\n\r\n /**\r\n * Returns the number of views the repeater knows about.\r\n *\r\n * @return the number of views.\r\n */\r\n viewCount(): number {\r\n throw new Error('subclass must implement `viewCount`');\r\n }\r\n\r\n /**\r\n * Returns all of the repeaters views as an array.\r\n *\r\n * @return The repeater's array of views;\r\n */\r\n views(): any[] {\r\n throw new Error('subclass must implement `views`');\r\n }\r\n\r\n /**\r\n * Returns a single view from the repeater at the provided index.\r\n *\r\n * @param index The index of the requested view.\r\n * @return {View|ViewSlot} The requested view.\r\n */\r\n view(index: number): any {\r\n throw new Error('subclass must implement `view`');\r\n }\r\n\r\n /**\r\n * Returns the matcher function to be used by the repeater, or null if strict matching is to be performed.\r\n *\r\n * @return The requested matcher function.\r\n */\r\n matcher(): Function | null {\r\n throw new Error('subclass must implement `matcher`');\r\n }\r\n\r\n /**\r\n * Adds a view to the repeater, binding the view to the\r\n * provided contexts.\r\n *\r\n * @param {Object} bindingContext The binding context to bind the new view to.\r\n * @param {Object} overrideContext A secondary binding context that can override the primary context.\r\n */\r\n addView(bindingContext, overrideContext): any {\r\n throw new Error('subclass must implement `addView`');\r\n }\r\n\r\n /**\r\n * Inserts a view to the repeater at a specific index, binding the view to the\r\n * provided contexts.\r\n *\r\n * @param {Number} index The index at which to create the new view at.\r\n * @param {Object} bindingContext The binding context to bind the new view to.\r\n * @param {Object} overrideContext A secondary binding context that can override the primary context.\r\n */\r\n insertView(index, bindingContext, overrideContext): any {\r\n throw new Error('subclass must implement `insertView`');\r\n }\r\n\r\n /**\r\n * Moves a view across the repeater.\r\n *\r\n * @param {Number} sourceIndex The index of the view to be moved.\r\n * @param {Number} sourceIndex The index where the view should be placed at.\r\n */\r\n moveView(sourceIndex, targetIndex): any {\r\n throw new Error('subclass must implement `moveView`');\r\n }\r\n\r\n /**\r\n * Removes all views from the repeater.\r\n * @param {Boolean} returnToCache Should the view be returned to the view cache?\r\n * @param {Boolean} skipAnimation Should the removal animation be skipped?\r\n * @return {Promise|null}\r\n */\r\n removeAllViews(returnToCache?: boolean, skipAnimation?: boolean): any {\r\n throw new Error('subclass must implement `removeAllViews`');\r\n }\r\n\r\n /**\r\n * Removes an array of Views from the repeater.\r\n *\r\n * @param {Array} viewsToRemove The array of views to be removed.\r\n * @param {Boolean} returnToCache Should the view be returned to the view cache?\r\n * @param {Boolean} skipAnimation Should the removal animation be skipped?\r\n */\r\n removeViews(viewsToRemove: Array, returnToCache?: boolean, skipAnimation?: boolean): any {\r\n throw new Error('subclass must implement `removeView`');\r\n }\r\n\r\n /**\r\n * Removes a view from the repeater at a specific index.\r\n *\r\n * @param {Number} index The index of the view to be removed.\r\n * @param {Boolean} returnToCache Should the view be returned to the view cache?\r\n * @param {Boolean} skipAnimation Should the removal animation be skipped?\r\n */\r\n removeView(index: number, returnToCache?: boolean, skipAnimation?: boolean): any {\r\n throw new Error('subclass must implement `removeView`');\r\n }\r\n\r\n /**\r\n * Forces a particular view to update it's bindings, called as part of\r\n * an in-place processing of items for better performance\r\n *\r\n * @param {Object} view the target view for bindings updates\r\n */\r\n updateBindings(view: View) {\r\n throw new Error('subclass must implement `updateBindings`');\r\n }\r\n}\r\n","/*eslint no-loop-func:0, no-unused-vars:0*/\r\nimport {inject} from 'aurelia-dependency-injection';\r\nimport {ObserverLocator, BindingExpression} from 'aurelia-binding';\r\nimport {\r\n BoundViewFactory,\r\n TargetInstruction,\r\n ViewSlot,\r\n ViewResources,\r\n customAttribute,\r\n bindable,\r\n templateController,\r\n View,\r\n ViewFactory\r\n} from 'aurelia-templating';\r\nimport {RepeatStrategyLocator} from './repeat-strategy-locator';\r\nimport {\r\n getItemsSourceExpression,\r\n unwrapExpression,\r\n isOneTime,\r\n updateOneTimeBinding\r\n} from './repeat-utilities';\r\nimport {viewsRequireLifecycle} from './analyze-view-factory';\r\nimport {AbstractRepeater} from './abstract-repeater';\r\n\r\nconst matcherExtractionMarker = '__marker_extracted__';\r\n\r\n/**\r\n * Binding to iterate over iterable objects (Array, Map and Number) to genereate a template for each iteration.\r\n */\r\n@customAttribute('repeat')\r\n@templateController\r\n@inject(BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, ObserverLocator, RepeatStrategyLocator)\r\nexport class Repeat extends AbstractRepeater {\r\n\r\n /**\r\n * Setting this to `true` to enable legacy behavior, where a repeat would take first `matcher` binding\r\n * any where inside its view if there's no `matcher` binding on the repeated element itself.\r\n *\r\n * Default value is true to avoid breaking change\r\n * @default true\r\n */\r\n static useInnerMatcher = true;\r\n\r\n /**\r\n * List of items to bind the repeater to.\r\n *\r\n * @property items\r\n */\r\n @bindable items;\r\n /**\r\n * Local variable which gets assigned on each iteration.\r\n *\r\n * @property local\r\n */\r\n @bindable local;\r\n /**\r\n * Key when iterating over Maps.\r\n *\r\n * @property key\r\n */\r\n @bindable key;\r\n /**\r\n * Value when iterating over Maps.\r\n *\r\n * @property value\r\n */\r\n @bindable value;\r\n\r\n /**@internal*/\r\n viewFactory: any;\r\n /**@internal*/\r\n instruction: any;\r\n /**@internal*/\r\n viewSlot: any;\r\n /**@internal*/\r\n lookupFunctions: any;\r\n /**@internal*/\r\n observerLocator: any;\r\n /**@internal*/\r\n strategyLocator: any;\r\n /**@internal*/\r\n ignoreMutation: boolean;\r\n /**@internal*/\r\n sourceExpression: any;\r\n /**@internal*/\r\n isOneTime: any;\r\n /**@internal*/\r\n viewsRequireLifecycle: any;\r\n /**@internal*/\r\n scope: { bindingContext: any; overrideContext: any; };\r\n /**@internal*/\r\n matcherBinding: any;\r\n /**@internal*/\r\n collectionObserver: any;\r\n /**@internal*/\r\n strategy: any;\r\n /**@internal */\r\n callContext: 'handleCollectionMutated' | 'handleInnerCollectionMutated';\r\n\r\n /**\r\n * Creates an instance of Repeat.\r\n * @param viewFactory The factory generating the view\r\n * @param instruction The instructions for how the element should be enhanced.\r\n * @param viewResources Collection of resources used to compile the the views.\r\n * @param viewSlot The slot the view is injected in to.\r\n * @param observerLocator The observer locator instance.\r\n * @param collectionStrategyLocator The strategy locator to locate best strategy to iterate the collection.\r\n */\r\n constructor(viewFactory, instruction, viewSlot, viewResources, observerLocator, strategyLocator) {\r\n super({\r\n local: 'item',\r\n viewsRequireLifecycle: viewsRequireLifecycle(viewFactory)\r\n });\r\n\r\n this.viewFactory = viewFactory;\r\n this.instruction = instruction;\r\n this.viewSlot = viewSlot;\r\n this.lookupFunctions = viewResources.lookupFunctions;\r\n this.observerLocator = observerLocator;\r\n this.key = 'key';\r\n this.value = 'value';\r\n this.strategyLocator = strategyLocator;\r\n this.ignoreMutation = false;\r\n this.sourceExpression = getItemsSourceExpression(this.instruction, 'repeat.for');\r\n this.isOneTime = isOneTime(this.sourceExpression);\r\n this.viewsRequireLifecycle = viewsRequireLifecycle(viewFactory);\r\n }\r\n\r\n call(context, changes) {\r\n this[context](this.items, changes);\r\n }\r\n\r\n /**\r\n * Binds the repeat to the binding context and override context.\r\n * @param bindingContext The binding context.\r\n * @param overrideContext An override context for binding.\r\n */\r\n bind(bindingContext, overrideContext) {\r\n this.scope = { bindingContext, overrideContext };\r\n const instruction = this.instruction;\r\n if (!(matcherExtractionMarker in instruction)) {\r\n instruction[matcherExtractionMarker] = this._captureAndRemoveMatcherBinding();\r\n }\r\n this.matcherBinding = instruction[matcherExtractionMarker];\r\n this.itemsChanged();\r\n }\r\n\r\n /**\r\n * Unbinds the repeat\r\n */\r\n unbind() {\r\n this.scope = null;\r\n this.items = null;\r\n this.matcherBinding = null;\r\n this.viewSlot.removeAll(true, true);\r\n this._unsubscribeCollection();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _unsubscribeCollection() {\r\n if (this.collectionObserver) {\r\n this.collectionObserver.unsubscribe(this.callContext, this);\r\n this.collectionObserver = null;\r\n this.callContext = null;\r\n }\r\n }\r\n\r\n /**\r\n * Invoked everytime the item property changes.\r\n */\r\n itemsChanged() {\r\n this._unsubscribeCollection();\r\n\r\n // still bound?\r\n if (!this.scope) {\r\n return;\r\n }\r\n\r\n let items = this.items;\r\n this.strategy = this.strategyLocator.getStrategy(items);\r\n if (!this.strategy) {\r\n throw new Error(`Value for '${this.sourceExpression}' is non-repeatable`);\r\n }\r\n\r\n if (!this.isOneTime && !this._observeInnerCollection()) {\r\n this._observeCollection();\r\n }\r\n this.ignoreMutation = true;\r\n this.strategy.instanceChanged(this, items);\r\n this.observerLocator.taskQueue.queueMicroTask(() => {\r\n this.ignoreMutation = false;\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _getInnerCollection() {\r\n let expression = unwrapExpression(this.sourceExpression);\r\n if (!expression) {\r\n return null;\r\n }\r\n return expression.evaluate(this.scope, null);\r\n }\r\n\r\n /**\r\n * Invoked when the underlying collection changes.\r\n */\r\n handleCollectionMutated(collection, changes) {\r\n if (!this.collectionObserver) {\r\n return;\r\n }\r\n if (this.ignoreMutation) {\r\n return;\r\n }\r\n this.strategy.instanceMutated(this, collection, changes);\r\n }\r\n\r\n /**\r\n * Invoked when the underlying inner collection changes.\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n handleInnerCollectionMutated(collection, changes) {\r\n if (!this.collectionObserver) {\r\n return;\r\n }\r\n // guard against source expressions that have observable side-effects that could\r\n // cause an infinite loop- eg a value converter that mutates the source array.\r\n if (this.ignoreMutation) {\r\n return;\r\n }\r\n this.ignoreMutation = true;\r\n let newItems = this.sourceExpression.evaluate(this.scope, this.lookupFunctions);\r\n this.observerLocator.taskQueue.queueMicroTask(() => this.ignoreMutation = false);\r\n\r\n // call itemsChanged...\r\n if (newItems === this.items) {\r\n // call itemsChanged directly.\r\n this.itemsChanged();\r\n } else {\r\n // call itemsChanged indirectly by assigning the new collection value to\r\n // the items property, which will trigger the self-subscriber to call itemsChanged.\r\n this.items = newItems;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _observeInnerCollection() {\r\n let items = this._getInnerCollection();\r\n let strategy = this.strategyLocator.getStrategy(items);\r\n if (!strategy) {\r\n return false;\r\n }\r\n this.collectionObserver = strategy.getCollectionObserver(this.observerLocator, items);\r\n if (!this.collectionObserver) {\r\n return false;\r\n }\r\n this.callContext = 'handleInnerCollectionMutated';\r\n this.collectionObserver.subscribe(this.callContext, this);\r\n return true;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n _observeCollection() {\r\n let items = this.items;\r\n this.collectionObserver = this.strategy.getCollectionObserver(this.observerLocator, items);\r\n if (this.collectionObserver) {\r\n this.callContext = 'handleCollectionMutated';\r\n this.collectionObserver.subscribe(this.callContext, this);\r\n }\r\n }\r\n\r\n /**\r\n * Capture and remove matcher binding is a way to cache matcher binding + reduce redundant work\r\n * caused by multiple unnecessary matcher bindings\r\n * @internal\r\n */\r\n _captureAndRemoveMatcherBinding() {\r\n const viewFactory: ViewFactory = this.viewFactory.viewFactory;\r\n if (viewFactory) {\r\n const template = viewFactory.template;\r\n const instructions = viewFactory.instructions as Record;\r\n // legacy behavior enabled when Repeat.useInnerMathcer === true\r\n if (Repeat.useInnerMatcher) {\r\n return extractMatcherBindingExpression(instructions);\r\n }\r\n // if the template has more than 1 immediate child element\r\n // it's a repeat put on a